Upgrade to Pro — share decks privately, control downloads, hide ads and more …

脆弱性スキャナのOWASP ZAPを コードベースで扱ってみる / OWASP ZAP on a code base

task4233
August 08, 2022

脆弱性スキャナのOWASP ZAPを コードベースで扱ってみる / OWASP ZAP on a code base

GUIベースで利用することの多いOWASP ZAPを各言語から呼び出して活用する方法について話します。

## Links
Burp SuiteのAlerts: https://portswigger.net/kb/issues
OWASP ZAPのAlerts: https://www.zaproxy.org/docs/alerts/
ZAPのActions: https://github.com/zaproxy/action-api-scan
ZAPの本実装: https://github.com/zaproxy/zaproxy
ZAPのクライアントライブラリ: https://github.com/zaproxy?q=zap-api-
ZAPのAPIドキュメント: https://www.zaproxy.org/docs/api
StackHawk: https://www.stackhawk.com/

task4233

August 08, 2022
Tweet

More Decks by task4233

Other Decks in Technology

Transcript

  1. 脆弱性スキャナのOWASP ZAPを コードベースで扱ってみる セキュリティ・キャンプ LT大会 2022/08/05 Dクラス チューター @task4233

  2. 本LTで伝えたいこと ・脆弱性スキャナは対象のURLに脆弱性がないか  確認するためのツール ・脆弱性スキャナは(クローリング&)スキャンで構成される ・OWASP ZAPはカスタマイズ性の高い脆弱性スキャナのOSS 2

  3. ところであなたは誰ですか? ・最近インターン先で脆弱性スキャナを  書いてる人 ・2019年のセキュリティ・キャンプで  脆弱性・マルウェア解析トラックに参加 ・@task4233 ・散歩とGoが好き ・https://task4233.dev 3

  4. 脆弱性スキャナとは? ・脆弱性スキャナは対象のURLに脆弱性がないか確認する  ためのツール ・PortSwiggerのBurp SuiteとOWASPのZAPが有名 ・主要な脆弱性は網羅されている(Burp Suite, OWASP ZAP) 製品

    価格 機能面の強み(主観) Burp Suite ・Community Editionは無料 ・Professionalは$399/年 ・ZAPよりもドキュメントが豊富 ・通信のInterceptができるので、手動で診断したい時に  ZAPよりも便利 ZAP ・無料  (Apache-2.0 Licenseなので   商用利用も可能) ・実装が全て公開されているので カスタマイズ性が高い ・Burp Suiteよりも手軽かつ包括的にスキャンできる 4
  5. 脆弱性スキャナとは? ・脆弱性スキャナは対象のURLに脆弱性がないか確認する  ためのツール ・PortSwiggerのBurp SuiteとOWASPのZAPが有名 ・主要な脆弱性は網羅されている(Burp Suite, OWASP ZAP) 製品

    価格 機能面の強み(主観) Burp Suite ・Community Editionは無料 ・Professionalは$399/年 ・ZAPよりもドキュメントが豊富 ・通信のInterceptができるので、手動で診断したい時に  ZAPよりも便利 ZAP ・無料  (Apache-2.0 Licenseなので   商用利用も可能) ・実装が全て公開されているので カスタマイズ性が高い ・Burp Suiteよりも手軽かつ包括的にスキャンできる 5
  6. 脆弱性スキャナの仕組み概要 URLのクローリング 1. 対象ページにHTTPリクエスト 2. HTTPレスポンスに含まれるURLを更にクローリング スキャン 1. 対象ページに悪意のある挙動を起こす可能性のキーワードや  

    ペイロードを含めてリクエスト  例) https://victim.com/?q=' のようなもの 2. レスポンスに影響があれば脆弱性があると判断する 6
  7. OWASP ZAPでスキャンする流れ 1. OWASP ZAP(GUI)を開く 2. Automated Scanを選択する 3. 診断対象のURLを入力する

    4. Attackをクリックする   (target domainのクローリング&スキャン実行) 7
  8. OWASP ZAPでスキャンする 1. OWASP ZAP(GUI)を開く 2. Automated Scanを選択する 3. 診断対象のURLを入力する

    4. Attackをクリックする   (target domainのクローリング&スキャン実行) →自動化したい!!! 8
  9. 手軽に実行できるGitHub Actions https://github.com/zaproxy/action-api-scan ・OWASP ZAPをGitHub Actionsで実行してくれる君 ・URLのクローリングにAjax Spiderが使えない 9

  10. OWASP ZAPの2種類のクローラ Native SpiderとAjaxSpiderの2種類がある Native Spider ・静的なHTMLをHTTPリクエストで取得するだけ ・最近増えてきているSPAのページは包括的にクロールできない Ajax Spider

    ・AjaxベースのページもクロールできるCrawljaxをベースに  したクローラ →AjaxSpiderを使いたいので、ZAPの仕組みを深掘ってみる 10
  11. ZAPの仕組み ・ZAPデーモンに対してクライアントアプリ(GUI)からHTTP  リクエストを飛ばしているだけ  (https://github.com/zaproxy/zaproxy) ・自分でZAPデーモンを操作すれば良い! 11

  12. 提供されているZAPクライアントライブラリ ・提供されているクライアントライブラリ →Python/Java/Go/.NET/Node.js/PHP(PR参照) ・ドキュメントはあって無いようなものなので、実装を読んで  雰囲気で実装する (Doxygenで生成すれば良いと思ってる開発者多すぎませんか🤔) 12

  13. できました 13

  14. まとめ ・脆弱性スキャナは対象のURLに脆弱性がないか  確認するためのツール ・脆弱性スキャナは(クローリング&)スキャンで構成される ・OWASP ZAPはカスタマイズ性の高い脆弱性スキャナのOSS 14

  15. 余談 ZAPの魔改造 ・スキャナを自分で書く ・既にある実装を高速化してセルフビルドする ZAPを魔改造して提供されているサービスもある ・StackHawk ・Pro: $35/月, Enterprise: $49/月

    →自作SaaSの狙い目かも? 15