テストの実施における注意事項

Attention!! このツールは、サイトを実際に攻撃し、脆弱性が無いかを確認するツールです。 必ずローカル環境の Docker でのみ使用し、稼動中のサイトには決して使用しないでください。 意図せずデータが更新されたり、削除される場合があります。
テストは自己責任で実施し、株式会社イーシーキューブ及び、関連する開発コミュニティは一切の責任を負いかねますのであらかじめご了承ください。

OWASP ZAP でのテスト実施において、いくつか考慮しなくてはならないことがあります。 これらの点をしっかり抑えておかないと、 OWASP ZAP の動的スキャンも不十分に終わってしまい、脆弱性を検出できない結果となってしまいます。

プロテクトモードを使用する

OWASP ZAP を起動したら、まず プロテクトモード に設定しましょう。 プロテクトモードにすることにより、脆弱性に対する検査がコンテキスト内の許可URLに限定されます。

プロテクトモードを使用すること

Attention! 標準モード、攻撃モードでは意図せず外部サイトを攻撃してしまう可能性があります。

アンチCSRFトークンの自動生成機能

アンチCSRFトークンの自動生成機能は、うまく動作しない場合があります。 OWASP ZAP でもβ版の機能です。 CSRFトークンの不一致に関するエラーは、Local Proxes を使用した手動探索時と、動的スキャンは同一セッションを使用することで回避できます。

手動探索と、動的スキャンは同一セッションを利用

Local Proxes を使用した手動探索時と、動的スキャン時は同一セッションを使用する必要があります。 動的スキャンを実施する場合は、有効な CSRF トークンを使用していることを確認し、確実に攻撃が届いていることを確認しましょう。

スパイダーの使用

スパイダーを使用すると、動的スキャン時にセッションを引き継げず、CSRFトークンが変化してしまい、テストが失敗してしまいます。 スパイダーによる自動探索を使用したテストは、 GET でのリクエストのみ使用可能です。

POST のフォーム

前述のセッション及び CSRF トークンの課題から、 POST で submit するフォームはすべて手動探索した方が確実です。

特殊な遷移パターン

mode=confirm, mode=complete のように、 POST のパラメータで遷移を制御しているURLは、上位階層から、まとめて動的スキャンできません。 履歴などからパラメータごとに個別に動的スキャンする必要があります。

sequence アドオンについて

sequence アドオンを使用することで、複数画面遷移のテストができます。 しかし、日本語入力に十分に対応していない模様です。お気に入りの削除機能など、日本語入力を伴わず、かつテスト対象のURLが変化しないケースのみに使用しましょう。

管理画面の動的スキャンについて

管理画面は、ログアウトしない限り CSRF トークンが変化しないため、連続して動的スキャン可能です。 しかし、動的スキャンが長時間に及ぶと、何らかの原因で失敗してしまう確率が高くなります。

機能ごとに手動探索、動的スキャンを繰替えした方が確実です。

ベータ版、アルファ版のアドオン

追加の XSS, SQLインジェクションの検査項目など、ベータ版、アルファ版のアドオンを入れると、大量の検査項目が生成されます。 その結果、動的スキャンが長時間に及び、セッションが変更されてしまい、失敗する可能性が高くなります。

テスト結果のみを過信しない

OWASP ZAP にも限界があり、発見できない脆弱性もあります。 1回のテスト結果のみを過信せず、継続的な調査を実施しましょう。