OWASPZAP セーフモード をSelenium連携で実行してみた


OWASP ZAPについて

Webアプリケーションの脆弱性を見付けるための簡単に使える統合ペネトレーションテストツールです。
幅広いセキュリティの経験を持った人々に使って貰えるようにデザインされており、
またペネトレーションテストをしたことがない開発者や機能テスターにとっても理想的なものになっています。

OWASP ZAP の実行モードについて

 ペネトレーションテストツール「OWASP ZAP」。スキャン実行を行う上でモードが4つあります。
 
 ・セーフモード(Safe mode)
  OWASP ZAPとプロキシ設定を内容を合わせたブラウザでサーバーと通信した情報を解析し、脆弱性を検査する。
  ※検証対象のWEBアプリケーションサーバーからのリクエスト内容を解析するのみなので破壊的なスキャンは行われない。
 
 ・プロテクトモード(Protected mode)
  スコープ(Context内)で定義されたURLに対してのみ破壊的なスキャンを実行することが出来る。

 ・標準モード(Standard mode)
  指定したURLに対して破壊的スキャンを実行する。

 ・攻撃モード(Active mode)
  対象サイトのURL以外でもスパイダーやAJAXスパイダーで検知したリンク先も含めて破壊的スキャンを実行する。

今回記事にするセーフモードについて

 ・メリット
 セーフモードは導入が容易に出来ます。

 破壊的スキャン(プロテクト/標準/攻撃モード)では検証対象に影響を与える可能性があり、
 計画や影響範囲の想定などが必要なので導入に時間がかかる事があります。

 ・デメリット
 セーフモードのスキャンはサーバーからのレスポンス内容の解析となるので可能性の検知です。
 その為、実際に攻撃(リクエスト)を行っていないので破壊的スキャンの検知結果より精度低いです。

 また破壊的スキャンはスパイダー、AJAXスパイダーなどの自動スキャンが可能ですが
 セーフスキャンでは検証ブラウザで実際画面操作が必要な為、手動でのスキャンとなります。

セーフスキャンでの自動実行

 セーフモードのデメリットで紹介した手動実行について、
 テスト自動化ツール「Selenium」でセーフスキャンでの自動実行を以下で試してみました。

※上記Gifの左上がOWASP ZAP、左下がSelenium IDE。
 右側はSeleniumでテストスクリプトを実行させて、OWASPZAPとプロキシ設定を合わせているブラウザ。

上記により、Seleniumのテストスクリプトで想定した画面に対して
自動でOWASP ZAPのセーフモードスキャンで自動スキャンを行わせます。

まとめ

他のツールを利用し、ツールのデメリットを改善する事が実感できて楽しかったです。
またペネトレーションテストを触ることでテストの幅が広がっていい経験になりました。