2010年12月9日木曜日

Googleが開発した脆弱性診断ツールを使ってみた


ratproxyはWebアプリケーションの脆弱性を“受動的”に検査するためのツールです。



動作的にはratproxyがプロクシサーバとなり、ブラウザでratproxy経由で診断サイトにアクセスすることで診断します。



脆弱性診断ツールの種類


脆弱性診断を行うツールは、WebScarab、Paros、Burp、ProxMonなどがあります。



これらのツールは“能動的”に脆弱性を探し出します。



能動的とは、予め脆弱性となりうるパラメータやパターンなどを診断サイトに対し実行します。



これらは機械的に実行されるので、診断サイトに大きな負荷がかかったり大量のログが出力されます。



ratproxyのインストール


OSはCentOS 64bitです。


openssl-develがインストールされていないとエラーがでるので予めインストールしておきます。



yum install openssl-devel





ratproxyのダウンロード


ダウンロード後解凍し、makeします。



wget http://ratproxy.googlecode.com/files/ratproxy-1.58.tar.gz


tar -zxvf ratproxy-1.58.tar.gz


cd ratproxy


make



これでratproxyを利用する準備が整いました。



起動


r:リモートアクセスを許可


w:ログを出力


lextifscgjm:ログを詳細に表示するためのオプション群(ドキュメント参照)



ratproxyドキュメント



特にrオプションは、ratproxyをVMにインストールしホストマシンからratproxy経由で診断サイトをアクセスする場合は必須です。


デフォルトでポート8080が利用されますが、pオプションでポート指定も可能です。



./ratproxy -r -w test.log -lextifscgjm




VMをNATで構築している場合はポートフォワーディングを行うことを忘れないでください。



ブラウザにプロキシを入力


各ブラウザのプロキシ設定でratproxyのIPとポート番号を入力します。


そして、診断対象のサイトにアクセスします。



ログ解析


起動時にwオプションで指定したログを解析することでHTMLとして出力できます。




./ratproxy-report.sh test.log >report.html




ログの細かい見方については、messages.listにて記載されています。



結果


ratproxyはログ解析結果を見ていただければわかるのですが、ratproxy経由でアクセスすることで通過する通信を監視しそこから発見できる脆弱性を表示するだけのツールなのでWebScarabのように大量に解析結果が表示されるわけではありません。



逆にratproxyで発見できるHIGHなどの脆弱性は安易に実行される可能性があります。



最後にratproxyのドキュメントを読んでわかったのですが“能動的手法”を補う物であるのでratproxyとWebScarabなどの能動的脆弱性診断ツールを使うとより効果的でしょう。



0 件のコメント:

コメントを投稿