この記事で下記の知識を得ることができます。
- 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 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による簡易侵入テスト
対象となるブラウザを選択するうえ、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を拾い上げます。
次に動的スキャンを仕掛けますが、モードを必ずプロテクトモードにしてください。そうすると、コンテキストに含める対象のサイトのみ、攻撃対象となります。そうでなければ、スパイダーにて検知した全サイトが攻撃される可能性があります。あらかじめ注意してください。
右クリックし、「攻撃」ー「動的スキャン」
動的スキャンが完了すると、静的スキャンより多くの脆弱性を見つけることができました。
### レポートの出力
「レポート」ー「HTML」の順にクリックすると、レポートを任意の名前でダウンロードすることができます。