GitHub_ActionsとZAPによる脆弱性診断の自動化

1.9K Views

July 19, 24

スライド概要

GitHub ActionsとZAPを活用した 脆弱性診断の自動化について解説します。
CI/CDパイプラインに脆弱性診断を統合して開発プロセスの効率化とセキュリティ向上を両立する方法を、実践的なデモを交えながら紹介します。

profile-image

脆弱性診断研究会 主宰 セキュリティエンジニア

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

GitHub Actionsと ZAPによる 脆弱性診断の⾃動化 GMOサイバーセキュリティ byイエラエ株式会社 脆弱性診断研究会 松本隆則 2024年7⽉19⽇(⾦)

2.

はじめに GitHub ActionsとZAPを活⽤した 脆弱性診断の⾃動化について解説します。 CI/CDパイプラインに脆弱性診断を統合して開発プロ セスの効率化とセキュリティ向上を両⽴する⽅法を、 実践的なデモを交えながら紹介します。 © 2024 脆弱性診断研究会 Security Testing Workshop 2

3.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 3

4.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 4

5.

本セッションの目的・目標 • GitHub ActionsとZAPで脆弱性診断を 実⾏する⽅法を知る • GitHub ActionsとZAPで脆弱性診断を 実⾏する場合のメリット/デメリットを知る © 2024 脆弱性診断研究会 Security Testing Workshop 5

6.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 6

7.

自己紹介 松本 隆則 @nilfigo(ニルフィ)(X(Twitter), Facebook) • 脆弱性診断研究会 主宰 • ZAP Evangelist • GMOサイバーセキュリティ byイエラエ株式会社 • セキュリティジェネラリスト • • アセスメントサービス部 診断1課(Webアプリケーション診断) 教育課(兼務) © 2024 脆弱性診断研究会 Security Testing Workshop 7

8.

脆弱性診断研究会 • Webアプリケーション脆弱性の診断手法や 脆弱性診断ツールの使用法などを研究するコミュニティ • コワーキングスペース茅場町Co-Edo様にて 2014年8月に最初のセミナーを開催(初回参加者:ひとり…) • 2024年7月現在で90回以上のハンズオンセミナーを実施 © 2024 脆弱性診断研究会 Security Testing Workshop 8

9.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 9

10.

小ネタ OWASPとZAP © 2024 脆弱性診断研究会 Security Testing Workshop 10

11.

OWASP The Open Web Application Security Project ↓ The Open Worldwide Application Security Project 2023年2月にダブリンで開催されたOWASPのカンファレンス 「Global AppSec 2023」で変更が発表された模様。 © 2024 脆弱性診断研究会 Security Testing Workshop 11

12.

ZAP(Zed Attack Proxy) OWASP ZAP ※ → ZAP 2023年8月にOWASPからSSP(The Software Security Project)へZAPプロジェクトが移籍 © 2024 脆弱性診断研究会 Security Testing Workshop 12

13.

宣伝:GMOイエラエで働こう! l 新卒、第⼆新卒、中途 ⼤歓迎! l 10年前からフルリモートワーク実施! l 10年前からフルフレックス制!(部署や職種により) l ⼊社後の研修+OJTでスキルアップ! l 社内インターン制度で⾃主的な異動が可能! © 2024 脆弱性診断研究会 Security Testing Workshop 13

14.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 14

15.

GitHub Actionsとは • GitHubが提供するCI/CD※プラットフォーム。 • リポジトリ内でコードの品質管理や⾃動テスト、 デプロイなどを⾃動化する仕組み ※継続的インテグレーション/継続的デリバリー © 2024 脆弱性診断研究会 Security Testing Workshop 15

16.

GitHub Actionsとは • ⾃動化機能 • • • コードのビルドやテスト、デプロイなどを⾃動化 GitHubとの統合 • 追加の設定なしで利⽤可能 • pull requestやissueなどと連携して動作 実⾏環境 • LinuxやWindows、macOSなどの仮想マシンで実⾏可能 © 2024 脆弱性診断研究会 Security Testing Worksho 16

17.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 17

18.

ZAPとは • ZAP = Zed Attack Proxy • • 脆弱性診断⽤プロキシツール • • https://www.zaproxy.org/ プロキシとして動作して、ブラウザとWebアプリケーション 間の通信の閲覧および改変が可能 オープンソース(Apache License 2.0) • 商⽤・⾮商⽤問わず無償で利⽤可能 © 2024 脆弱性診断研究会 Security Testing Workshop 18

19.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 19

20.

自動診断の仕組み 1. GitHubのリポジトリでソースコードを管理 2. リポジトリのActionsワークフローに ZAPのアクションを定義 3. ソースコードを修正してpushやpull requestなどを実⾏ 4. ワークフローが起動してZAPのアクションが実⾏される 5. 結果がissueとして登録される © 2024 脆弱性診断研究会 Security Testing Workshop 20

21.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 21

22.

自動診断のデモ 1. 診断対象アプリをローカル環境で動作確認 2. アプリのソースコードを修正してリポジトリに反映 3. Actionsのワークフローが実⾏される 4. issueを確認 © 2024 脆弱性診断研究会 Security Testing Workshop 22

23.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 23

24.

メリット • ソースコードを修正するだけで 脆弱性診断を実施できる • 結果がissueとして登録されるので、 脆弱性を無視するのが難しくなる © 2024 脆弱性診断研究会 Security Testing Workshop 24

25.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 25

26.

デメリット • 「抜け漏れ」が発⽣する • ワークフロー完了に時間が掛かる • 脆弱性の知識や経験が必要となる • ZAPそのものの知識が必要となる © 2024 脆弱性診断研究会 Security Testing Workshop 26

27.

「抜け漏れ」が発生する クローリング(Spider)と⾃動診断(Active Scan) それぞれに「抜け漏れ」が発⽣する可能性あり • クローリング: 診断対象漏れ • ⾃動診断: © 2024 脆弱性診断研究会 Security Testing Workshop 脆弱性指摘漏れ 27

28.

ワークフロー完了に時間が掛かる 診断対象アプリの規模が⼤きいと、 クローリングと⾃動診断に多⼤な時間が掛かる。 © 2024 脆弱性診断研究会 Security Testing Workshop 28

29.

脆弱性の知識や経験が必要となる • 検出された脆弱性が本当に存在するのか確認が必要 • 存在する場合、リスクや対応⽅法について判断が必要 • 直ちに修正すべきなのか • リスクを許容できるのか © 2024 脆弱性診断研究会 Security Testing Workshop 29

30.

ZAPそのものの知識が必要となる 効果的にクローリングおよび⾃動診断を実施するためには、 ZAPの仕組みや設定などを把握する必要がある。 © 2024 脆弱性診断研究会 Security Testing Workshop 30

31.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 31

32.

まとめ 誰でも⼿軽に脆弱性診断を実⾏できるが完璧ではない。 しかし、何もしないよりはずっとマシ! © 2024 脆弱性診断研究会 Security Testing Workshop 32

33.

目次 1. 本セッションの⽬的・⽬標 6. ⾃動診断の仕組み 2. ⾃⼰紹介 7. ⾃動診断のデモ 3. ⼩ネタ・宣伝 8. メリット 4. GitHub Actionsとは 9. デメリット 5. ZAPとは 10. まとめ 11. 質疑応答 © 2024 脆弱性診断研究会 Security Testing Workshop 33