以前、OWASP ZAP に追加された attack mode の概要 というエントリを書きましたが、このATTACK modeを使った簡単なセキュリティ検査の手順をメモしておきます。この機能を使えば、ウェブアプリケーションの開発中にZAPが勝手に脆弱性スキャンしてくれます。
※ この機能が追加される バージョン 2.4 はまだリリースされていないのですが、こちら から ZAP Weekly をダウンロードすれば試すことができます。
概要
基本的には、ウェブアプリケーション開発時にウェブブラウザのプロキシとして ZAP を指定おくだけです。この時、ZAP 側で コンテキストというものを設定して、ATTACK mode にしておけば、アクセスしたURLに対して勝手に脆弱性をスキャンしてくれます。
ATTACK mode について
OWASP ZAP に追加された attack mode の概要 に書いた通りなのですが、今までのバージョンでもZAPをブラウザのプロキシにしておけば、ブラウザからアクセスしたURLに対して Passive Scan というスキャンは行われていました。ただ、この Passive Scan は、ウェブアプリケーションに対して軽い内容の検査しか行われません。しかし、今回 ATTACK mode ができたおかげで、インジェクション系の検査等を行う Active Scan まで勝手に実行してくれるようになりました。ATTACK mode で検査する項目を個別に設定することもできます。
手順
- 開発中のウェブアプリケーションにブラウザでアクセスできるような状態にしておきます。
- ZAP を起動します。
- こちら から ZAP Weekly をダウンロードすれば 2.4 の機能を試すことができます。
- Mac で ZAP Weekly を使う場合、もしくはLinuxを使う場合は、ターミナルから zap.sh を実行して下さい。(Windowsの場合は zap.bat)
- ブラウザのプロキシ設定で、ZAP を設定します。
- この時指定するIPとポート番号は、ZAP側で [Tools] -> [Options…] -> [Local proxy] から設定できます。
- 開発中のウェブアプリケーションにブラウザでアクセスします。
- アクセスしたURLが ZAPのSites(サイト)タブ上に現れるので、右クリックしてURL(の正規表現文字列)をコンテキストに登録します。
- ZAP を ATTACK mode にします。
- 開発を続けます。
- ブラウザでアクセスしたURLに対して、随時 ZAPが脆弱性スキャンしてくれます。
- どこかのタイミングで、ZAP のアラートタブを開き、検知された脆弱性情報を確認します。
- 問題のありそうな情報に対しては、詳細を調査して対応します。
- 誤検知や重要度の低い情報もあると思います。
ATTACK mode 専用の検査項目を作成する(オプション)
- [Anylyze]メニュー -> [Scan Policy Manager…] を選択します。
- [Add]ボタンをクリックします。
- お好みの項目を設定します。
- [Tools]メニュー -> [Options] を選択し、[Active Scan]をクリックします。
メモ
- 検査項目にもよりますが、Active Scan により大量のアクセスが発生します。
- その際、パラメータとしていろいろな値が送信されますが、基本的には被害を与えるような値は使用されません。もし変な値がデータベースに登録されて困るようなら、最近のフレームワークだと migration 機能がありますので、この種の機能を使ってデータをリセットしましょう。
- Seleniumでテスト書けば、そのテスト内からアクセスしたURLに対しても脆弱性スキャン(Active Scan)してくれます(使用するブラウザのプロキシ設定を記述する必要があります)。
最終更新日: 2015-3-19