3.1K Views
July 19, 24
スライド概要
GitHub ActionsとZAPを活用した脆弱性診断の自動化について解説します。
CI/CDパイプラインに脆弱性診断を統合して開発プロセスの効率化とセキュリティ向上を両立する方法を、実践的なデモを交えながら紹介します。
GitHub Actionsと ZAPによる 脆弱性診断の⾃動化 GMOサイバーセキュリティ byイエラエ株式会社 脆弱性診断研究会 松本隆則 2024年7⽉19⽇(⾦)
はじめに GitHub ActionsとZAPを活⽤した 脆弱性診断の⾃動化について解説します。 CI/CDパイプラインに脆弱性診断を統合して開発プロ セスの効率化とセキュリティ向上を両⽴する⽅法を、 実践的なデモを交えながら紹介します。 © 2024 脆弱性診断研究会 Security Testing Workshop 2
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 3
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 4
本セッションの目的・目標 • GitHub ActionsとZAPで脆弱性診断を 実⾏する⽅法を知る • GitHub ActionsとZAPで脆弱性診断を 実⾏する場合のメリット/デメリットを知る © 2024 脆弱性診断研究会 Security Testing Workshop 5
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 6
自己紹介 松本 隆則 @nilfigo(ニルフィ)(X(Twitter), Facebook) • 脆弱性診断研究会 主宰 • ZAP Evangelist • GMOサイバーセキュリティ byイエラエ株式会社 • セキュリティジェネラリスト • • アセスメントサービス部 診断1課(Webアプリケーション診断) 教育課(兼務) © 2024 脆弱性診断研究会 Security Testing Workshop 7
脆弱性診断研究会 • Webアプリケーション脆弱性の診断手法や 脆弱性診断ツールの使用法などを研究するコミュニティ • コワーキングスペース茅場町Co-Edo様にて 2014年8月に最初のセミナーを開催(初回参加者:ひとり…) • 2024年7月現在で90回以上のハンズオンセミナーを実施 © 2024 脆弱性診断研究会 Security Testing Workshop 8
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 9
小ネタ OWASPとZAP © 2024 脆弱性診断研究会 Security Testing Workshop 10
OWASP The Open Web Application Security Project ↓ The Open Worldwide Application Security Project 2023年2月にダブリンで開催されたOWASPのカンファレンス 「Global AppSec 2023」で変更が発表された模様。 © 2024 脆弱性診断研究会 Security Testing Workshop 11
ZAP(Zed Attack Proxy) OWASP ZAP ※ → ZAP 2023年8月にOWASPからSSP(The Software Security Project)へZAPプロジェクトが移籍 © 2024 脆弱性診断研究会 Security Testing Workshop 12
宣伝:GMOイエラエで働こう! l 新卒、第⼆新卒、中途 ⼤歓迎! l 10年前からフルリモートワーク実施! l 10年前からフルフレックス制!(部署や職種により) l ⼊社後の研修+OJTでスキルアップ! l 社内インターン制度で⾃主的な異動が可能! © 2024 脆弱性診断研究会 Security Testing Workshop 13
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 14
GitHub Actionsとは • GitHubが提供するCI/CD※プラットフォーム。 • リポジトリ内でコードの品質管理や⾃動テスト、 デプロイなどを⾃動化する仕組み ※継続的インテグレーション/継続的デリバリー © 2024 脆弱性診断研究会 Security Testing Workshop 15
GitHub Actionsとは • ⾃動化機能 • • • コードのビルドやテスト、デプロイなどを⾃動化 GitHubとの統合 • 追加の設定なしで利⽤可能 • pull requestやissueなどと連携して動作 実⾏環境 • LinuxやWindows、macOSなどの仮想マシンで実⾏可能 © 2024 脆弱性診断研究会 Security Testing Worksho 16
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 17
ZAPとは • ZAP = Zed Attack Proxy • • 脆弱性診断⽤プロキシツール • • https://www.zaproxy.org/ プロキシとして動作して、ブラウザとWebアプリケーション 間の通信の閲覧および改変が可能 オープンソース(Apache License 2.0) • 商⽤・⾮商⽤問わず無償で利⽤可能 © 2024 脆弱性診断研究会 Security Testing Workshop 18
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 19
自動診断の仕組み 1. GitHubのリポジトリでソースコードを管理 2. リポジトリのActionsワークフローに ZAPのアクションを定義 3. ソースコードを修正してpushやpull requestなどを実⾏ 4. ワークフローが起動してZAPのアクションが実⾏される 5. 結果がissueとして登録される © 2024 脆弱性診断研究会 Security Testing Workshop 20
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 21
自動診断のデモ 1. 診断対象アプリをローカル環境で動作確認 2. アプリのソースコードを修正してリポジトリに反映 3. Actionsのワークフローが実⾏される 4. issueを確認 © 2024 脆弱性診断研究会 Security Testing Workshop 22
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 23
メリット • ソースコードを修正するだけで 脆弱性診断を実施できる • 結果がissueとして登録されるので、 脆弱性を無視するのが難しくなる © 2024 脆弱性診断研究会 Security Testing Workshop 24
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 25
デメリット • 「抜け漏れ」が発⽣する • ワークフロー完了に時間が掛かる • 脆弱性の知識や経験が必要となる • ZAPそのものの知識が必要となる © 2024 脆弱性診断研究会 Security Testing Workshop 26
「抜け漏れ」が発生する クローリング(Spider)と⾃動診断(Active Scan) それぞれに「抜け漏れ」が発⽣する可能性あり • クローリング: 診断対象漏れ • ⾃動診断: © 2024 脆弱性診断研究会 Security Testing Workshop 脆弱性指摘漏れ 27
ワークフロー完了に時間が掛かる 診断対象アプリの規模が⼤きいと、 クローリングと⾃動診断に多⼤な時間が掛かる。 © 2024 脆弱性診断研究会 Security Testing Workshop 28
脆弱性の知識や経験が必要となる • 検出された脆弱性が本当に存在するのか確認が必要 • 存在する場合、リスクや対応⽅法について判断が必要 • 直ちに修正すべきなのか • リスクを許容できるのか © 2024 脆弱性診断研究会 Security Testing Workshop 29
ZAPそのものの知識が必要となる 効果的にクローリングおよび⾃動診断を実施するためには、 ZAPの仕組みや設定などを把握する必要がある。 © 2024 脆弱性診断研究会 Security Testing Workshop 30
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 31
まとめ 誰でも⼿軽に脆弱性診断を実⾏できるが完璧ではない。 しかし、何もしないよりはずっとマシ! © 2024 脆弱性診断研究会 Security Testing Workshop 32
目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 33