Webアプリケーション開発者によるセキュリティレベルの検証作業をサポートすることを目的として、 ratproxy と呼ばれるオープンソース型ツールが先日Googleからリリースされた。これはWeb 2.0およびAJAXアプリケーションを対象に構築された非破壊型の検査ツールであり、セキュリティ上の問題点が可読性に優れた形式にてレポートされるようになっている。
ratproxyの実体は、手元のWebブラウザと試験対象のアプリケーションとの間に介在する形で動作するローカルプログラムである。その動作原理は、アプリケーションから出されるリクエストと返されるレスポンスを追跡し、それを基に独自に変換したトランザクションを適用することで、一般的な攻撃に対して当該アプリケーションがどのような反応をするかを検証するというシステムになっている。例えばローレベルテストでは、下記のものを含めた包括的な試験が実施される。
- 潜在的な危険性を有すJSON風のレスポンス
- 秘匿性の高いコンテンツに対して有害なキャッシングヘッダ
- 疑わしいクロスドメインの信頼関係
- 不充分なXSRF対策に関係するクエリ
- 疑惑ないし確証のあるXSSおよびデータ注入ベクタ
その他にも多数の試験が実施されるが、そのすべてはパッケージに同梱されたmessages.listに一覧されるようになっている。
ratproxyのパッケージはソースコードと関連ドキュメントで構成されているが、その他にflare-distと呼ばれるAdobe Flashコンテンツ試験用のオプションコンポーネントが1つ含まれている。また標準的なMakeファイルも同梱されているが、設定スクリプトは用意されていない。このプログラムをビルドするには、通常の手順に従ってmakeを実行すればいい。
$ make cc ratproxy.c -o ratproxy -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE http.c mime.c ssl.c -lcrypto -lssl *** WARNING: flare-dist/flare bianry is not operational. *** Please see flare-dist/README and update it for your OS.
ここでの実行例では警告メッセージが出されているが、これはMac OS X上でコンパイルを試みたのに、パッケージ中に用意されるFlash試験用コンポーネントのflash-distがLinuxバージョンとなっているためである。実際、今回私が行うテストには不要ではあったが、OS X対応版のflash-distも入手できるようにされている。こうしたコンパイル結果として生成されるのが、ratproxyという単一のバイナリファイルである。
