やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

ratproxy

Googleさんが ratproxy という、Webアプリケーションの
セキュリティ検査ツールを公開しました。
同社が開発時に使っているものらしく、それをオープンソース化したそうです。

・ITproの紹介記事
ttp://itpro.nikkeibp.co.jp/article/NEWS/20080704/310148/

ダウンロードサイト
ttp://code.google.com/p/ratproxy/

プロキシとして動作し、ブラウザからこれを経由してWebアプリケーションに
アクセスすることにより、アクセスしたWebアプリケーション内に、
クロスサイト・スクリプティングになりうる部分がないかを
検査するというものみたいです。
Webアプリケーションを開発するときのテストツールの一つとして、
利用するのかなと。

なんか面白そうだったので、とりあえず、わかった範囲をメモ。
あくまでも、触りながらやっつけで作ったメモなので、
動作保証はなしということで ^^;


UNIX系のOSで動かすものらしい(Windowsではcygwinがいる!?)。
 →とりあえず、CentOS5.1でやってみた。


・使う前にmakeがある。gcc, openssl-devel がいるっぽいので yum で入れた。
 openssl もいるかも(既に入っていたので、これについては無視)。


・解凍とMake
$ tar zxfv ratproxy-1.51.tar.gz
$ cd ratproxy
$ make
cc ratproxy.c -o ratproxy -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE http.c mime.c ssl.c -lcrypto -lssl
$


・ratproxyの起動
$ ./ratproxy -r -w (ファイル名).log -p (ポート番号)
ratproxy version 1.51-beta by <lcamtuf@google.com>

[!] WARNING: Running with no 'friendly' domains specified. Many cross-domain
checks will not work. Please consult the documentation for advice.

[*] Proxy configured successfully. Have fun, and please do not be evil.
[+] Accepting connections on port (ポート番号)/tcp (local only)...

(終了するときはCtrl + Cで)


・コマンド中の引数フラグの意味。フラグの種類は、他にもたくさんあるっぽい。

-r
起動したratproxyをリモートの端末が使うことを許す。
これをつけなければ、ratproxyを起動した端末からし
接続ができない。

-w
ログを書き込むファイル名を指定。

-p
プロキシが使うポート番号を指定。指定しなければ、
デフォルト8080が設定される!?


・ブラウザのプロキシ設定
ratproxyのIPアドレスとポートを設定した後、
対象のWebアプリケーションを閲覧する。
閲覧が終了すれば、プロキシを停止する。


・作成したログをHTML化する。
$ ./ratproxy-report.sh (ファイル名).log > (ファイル名).html
作成したHTMLファイルをWebから見える適当なディレクトリに置いた
(ローカルでもいい!?)後、ブラウザでHTMLファイルを見る。
レポートは表示されましたが、読み方と意味については、今のところ不明…。


・rapproxy関連の記事は大半が英語。そんな中、下記サイトが、
とても参考になりました。
ttp://dotred5.blogspot.com/2008/07/ratproxy.html