Owasp ZAPによる侵入テストについて


この記事で下記の知識を得ることができます。

  • Owasp ZAPとは
  • Owasp ZAPによる侵入テストをローカル環境にて構築する方法
  • Owasp ZAPによる簡易侵入テスト

Owasp ZAPとは

世界中で最もよく利用されるフリーウェブアプリケーションセキュリティツールです。
詳細は下記リンクに記載されています。
https://owasp.org/www-project-zap/

IPAでも取り上げています。
https://www.ipa.go.jp/about/technicalwatch/20131212.html

ほかにいろんな有償、無償の脆弱性診断ツールがございますが、拡張性、技術情報、応用情報を考えると、Owasp ZAPはおすすめの一つです。

Owasp ZAPによる侵入テストをローカル環境にて構築する方法

環境

ソフト インストール
Windows 10
Docker Desktop https://docs.docker.com/docker-for-windows/install/
Git bash https://gitforwindows.org/
Firefox (Proxy設定用) https://www.mozilla.org/ja/firefox/
Owasp ZAP 2.9.0 https://www.zaproxy.org/download/
Webgoat 8.0 Dokcerによるダウンロード(後述)

環境構築

Docker desktopをダブルクリックします。

Git bashをダブルクリックします。

Docker hubから脆弱性アプリケーションのイメージをダウンロードします。
$ docker pull webgoat/webgoat-8.0

コンテナを起動します。
$ docker run -itd -p 127.0.0.1:10080:8080 webgoat/webgoat-8.0

下記のサイトへアクセスすれば、ログイン画面が表示されます。
http://localhost:10080/WebGoat/login

Owasp ZAPによる簡易侵入テスト

Owasp ZAPをダブルクリックします。

開始をクリックします。

Manual exploreをクリックします。

対象となるブラウザを選択するうえ、Launch browserをクリックします。
*事前に対象ブラウザのProxy設定をOwasp ZAPプロキシと同様な設定をしてください。

http://localhost:10080/WebGoat/login 
へアクセスすると、Owasp ZAPは監視されるので、履歴やサイトなどに情報が表示されます。

Register new userをクリックし、適宜Userを作成してください。

User登録後、Webgoatに入ります。適宜操作し、Owasp ZAPに画面遷移などを記録させます。

Owasp ZAPの画面に戻り、アラートをクリックすると、ある程度の脆弱性が検知することができました。これは静的スキャンによる検知で、あくまでも一般的なリクエストとレスポンスを見て、Owasp ZAPがその脆弱性の可能性を提示しています。

 動的スキャン

対象となるリンクを右クリックし、コンテクストに含めるを選んで、セッションプロパティが表示されます。

対象となるログインURLを入力します。
https://localhost:10080/WebGoat/

Login Request POST Dataに下記のパラメータを入力します。
username={%username%}&password={%password%}
* ログイン画面に複数のパラメータがあるとき、可変ではなく、固定にする設定も可能です。例えば、merchantName=merchant&username={%username%}&password={%password%}

Logged out responseには下記のパラメータを入力します。
\Q/WebGoat/login\E

ユーザをクリックします。

先ほど登録したユーザを追加します。

その後、OKをクリックし、ダイヤログを閉じます。

右クリックし、「攻撃」ー「スパイダー」の順にクリックします。

追加されたユーザーを選択し、「スキャンを開始」をクリックすると、Webgoatサイトの操作で検知したリクエスト及びレスポンスをベースに、攻撃対象となるURLを拾い上げます。

たくさんのURLが検知しました。

次に動的スキャンを仕掛けますが、モードを必ずプロテクトモードにしてください。そうすると、コンテキストに含める対象のサイトのみ、攻撃対象となります。そうでなければ、スパイダーにて検知した全サイトが攻撃される可能性があります。あらかじめ注意してください。

右クリックし、「攻撃」ー「動的スキャン」
動的スキャンが完了すると、静的スキャンより多くの脆弱性を見つけることができました。

 レポートの出力

「レポート」ー「HTML」の順にクリックすると、レポートを任意の名前でダウンロードすることができます。