概要
ローカルで動作しているアプリにペネトレーションテストを簡単にかける方法を紹介します
簡単なベースラインスキャンと時間のかかるフルスキャンを実行する方法を紹介します
また 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 件のコメント:
コメントを投稿