VAddyでは脆弱性検査を実行する前にクロールを実行(テストシナリオを作成)する必要がありますが、その際は以下の点に留意すると効率的なクロールデータが作成できます。
関連リンク
・クロールとは何ですか?
・なぜ事前にクロールしなければいけないのですか?
網羅的にクロールする
VAddyではクロール時にProxy経由で記録したHTTPリクエストのパラメータを元に検査を実行するため、検査したい画面のパラメータが網羅されるようにクロールをするのが望ましいです。
ここで言うパラメータというのは例えば /foo?id=123 のようなidというパラメータや、フォームの入力項目を指します。JSONデータも検査対象にできますのでパラメータに該当します。
重複するパラメータはクロール不要
VAddyはクロール時のHTTPリクエストを元に検査を行いますので、入力画面側のパラメータが同じでお客様のWebサーバ側で処理するコードも同じであれば、1画面だけクロールすれば大丈夫です。
同様に、異なる画面であっても裏は同じソースコードが実行されるケースの場合(例えばカテゴリごとに検索画面が違うが裏の実装は同じ)、それは1つのパターンの画面だけクロールすれば大丈夫です。
入力された値によってパラメータが変化する場合
選択された項目によってフォームの項目数が変わる場合のように、送信時にパラメータが変化する場合は、全てのパラメータがカバーできるようにそれぞれクロールするのが望ましいです。
ただし、画面には表示されていなくてもhiddenなどでHTTPリクエストが送信されている場合は、その項目もクロールに記録され検査対象となります。
検査で使うクロールデータ
クロールデータにはHTTPリクエストとレスポンスデータが入っています。
検査では、クロールデータの中のHTTPリクエストを使って送信します。その際に、GETやPOSTのパラメータの値を検査データに差し替えます。
シンプルな例でいくと、GETパラメータが/index.php?foo=bar
だった場合はシングルクォートを入れて/index.php?foo=bar'
というような形です。
検査データに差し替えて送信した時のHTTPレスポンスデータを解析して、クロール時に受け取ったレスポンスデータと大きく異なる場合は、さらに詳しい検査を実行していき、脆弱性の有無を判断します。