2025年7月22日火曜日

zaproxy を使って自分のローカルアプリにペネトレーションをかける方法

zaproxy を使って自分のローカルアプリにペネトレーションをかける方法

概要

ローカルで動作しているアプリにペネトレーションテストを簡単にかける方法を紹介します
簡単なベースラインスキャンと時間のかかるフルスキャンを実行する方法を紹介します
また zaproxy は基本 GUI で操作しますが今回は CLI (docker) を使った方法を紹介します

環境

  • macOS 15.5
  • docker 28.3.2
  • zaproxy 2.16.1

アプリ起動

何でも OK です
今回は docker からスキャンをかけるのでホスト側では 0.0.0.0 などでバインドするようにしましょう

  • bundle exec rackup config.ru -o 0.0.0.0

ベースラインスキャン

  • mkdir zaproxy_test
  • cd zaproxy_test
  • docker run -v $(pwd):/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t http://host.docker.internal:9292 -g gen.conf -r testreport.html

実行は 1 分程度で完了します
レポートは testreport.html をブラウザで開けば OK です

High は対策必須としてできれば Medium/Low も対策しましょう

フルスキャン

完了までに1時間ほどかかります
またローカルマシンの負荷もかかるので注意しましょう

  • docker run -v $(pwd):/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t http://host.docker.internal:9292 -g gen.conf -r testreport.html

完了後は testreport.html を開けば OK です
ベースラインスキャンに比べてレポートも詳細になっています

最後に

zaproxy を使って自分のサービスにペネトレーションテストを実行する方法を紹介しました
かなり簡単に実施できるので CI などに組み込んでもいいかなと思います
Github Actions にはフルスキャンをかけるアクションもあります

参考サイト

0 件のコメント:

コメントを投稿