前回まで、主な脆弱性の検査方法について説明してきた。前回の最後にも説明したとおり、アプリケーションの脆弱性検査を手動で行うには、非常に大きな手間とある程度の技術や知識が必要となる。
また、手動による検査では検査する人の技術レベルに依存しがちだ。このため、検査の水準を一定に、低コストで実施できる自動検査ツールの利用も進んでいる。
そこで今回は、「IBM Rational AppScan」を例として、自動検査ツールについて説明しよう。
自動検査ツールの原理
検査を行う時に必要な情報は、ウェブアプリケーションを利用するときに、ブラウザからサーバへ送信されるHTTPリクエストだ。HTTPリクエストには、以下のものが含まれている。
- 接続先のURL
- HTTPリクエストヘッダ
- Cookie - パラメータ
多くの検査ツールは、これらの情報を取得するために、ブラウザとサーバとの間のProxyとして動作する。ブラウザからサーバへ送信されるHTTPリクエストを受け取り、送信されるCookieやクエリパラメータ、POSTボディパラメータなどを解析することで、ウェブアプリケーションで使用されているパラメータ(パラメータ名と値)やURLなどの情報を取得できる。
![探査時の動作](/story_media/20369216/CNETJ/080311_web_01.jpg)
こうして得られたパラメータやURLなどの情報をもとに、各パラメータの値をひとつずつ検査パターンに書き換えてからリクエストを送信し、テストを行う。
![テスト時の動作](/story_media/20369216/CNETJ/080311_web_02.jpg)