はじめまして。テストが大好きなSE、"みず"です。
今回は私が使っているペネトレーションテスト(※)&ブラックボックステストの補助ツール「Paros」を紹介します。

※本来は、防弾ベストの銃弾への耐性をチェックするテストのこと。転じて、ソフトウェアやネットワークのテスト時に、"実際に攻撃をするテスト"を指す。今回の場合、対象がWEBのシステムなので、"リクエストに予期せぬデータを入れて攻撃を行うテスト"という意味で使っています


まずParosがどんなツールか説明します。ParosはWebテストツールの一種であり、脆弱性スキャナです。脆弱性スキャナということは、セキュリティ的に脆弱なところはないかどうかチェックしてくれるツールです。Parosの場合は、リクエストデータに様々なPOSTデータやGETデータを持たせ、チェックする仕組みになっています。

Parosのメイン機能は「脆弱性のスキャン」なのですが、実はスキャナとして使ったことはありません。「毎回トークンを発行しているページでは使えない」とか、「ページ単体のチェックしかしないので影響範囲全てをカバー出来る訳ではない(※)」などが理由です。

※【例】入力ページ→入力内容確認ページ→結果ページという遷移を取る場合、結果ページまでカバー出来ない


ではどこが便利なツールなのかというと、「ログの機能」です。
Parosは、プロキシとして動いてURLとURL毎の入力項目を取得し、入力項目にいろいろな値を入れてスキャンするという仕組みなのでログの機能を持っています。
このログ機能、かなりテストに便利なのです(σ'∀')σ*+.*

Parosの使える機能を紹介すると、、、

■リクエストとレスポンスを保存

Parosはリクエストヘッダーとレスポンスヘッダー、レスポンスのコンテンツのデータをログとして保存してくれています。ブラウザのようにタグ通りの表示はしてくれませんが、HTMLタグが見れるので"戻る"を禁止しているシステムで前のページの文言を調べたい時などに重宝します。テストのログとして使ってます。

paros_01

■URL毎にログの履歴が見れる

Parosをプロキシとして立ち上げてログを取らせると、URLの一覧が出てきます。
これが、URL毎のリクエストとレスポンスのログです。
Live HTTP Headersを使っていると、以前のリクエストヘッダーを探すのに非常に困りますがParosだとURLから探せるので便利です。

paros_02

■URL毎にステータスコードが見れる

URL毎のステータスコードが横に表示されるので、異常なステータスコードが返って来るURLやプログラムがすぐに分かります。
200 OK以外が出ていれば気付けるので、画像呼び出しのスペルミスなどが簡単に見つけられます。

paros_03


■リクエストを編集して再送信できる

リクエストを編集して再送信できます。POSTデータも書き換えられるので、プルダウンやチェックボックスを持つフォームの異常値のチェックに使えます。
HTMLを取得してHTMLタグの内容を編集して送る、もしくは、プログラムを作ってリクエストを送信する、こういった面倒な作業をせずにテストが出来ます。
paros_04


■プロキシ認証に対応

「社内から外部への通信には、プロキシ認証があるから無理」とテストツールの導入を諦めていた人に朗報です。Parosはプロキシ認証に対応しています。
(プロキシに対応しているツールはあっても、プロキシ認証に対応しているペネトレーションテストツールはなかなか見つかりません)
ちなみに、プロキシサーバーの指定、プロキシのID・パスワードの設定は、Tools→Option→Conectionから行えます。

paros_05


■Windows環境でも動きます

Javaなのでランタイムが入っていれば、WindowsでもLinuxでも動きます。
OSによらず使えるので、便利です。

英語なので取っ付きにくいかもしれませんが一度使ってみると、いろいろ問題を見つけられて手放せなくなります。是非使って、ご自身のプログラムを可愛がってあげてください。
Parosではなくとも、WebScarabなどこういったプロキシ型のWebアプリケーションテスト補助ツールは幾つか存在します。機能や使い勝手、好みの応じてより良い開発ライフを送ってください^^!

最後に、使う際の注意です。
実際に攻撃を行うツールですので、取扱には注意してください。
ご自身の管理しているサーバーに対して使ってください。