最近,Webサーバーを狙った攻撃が増えている。Webサイトの改ざんや,Webサーバーの背後にあるデータベースのデータを盗むといったものだ。Webアプリケーション・ファイアウォールは,こうした攻撃からWebサーバーを守る。
Webサーバーをターゲットとした攻撃には,Webサイトに悪意のあるスクリプトを埋め込む「クロスサイト・スクリプティング」や,WebブラウザのHTTPリクエストにSQLコマンドを忍び込ませてデータベースから不正にデータを盗む「SQLインジェクション」などがある。こうした攻撃は,Webブラウザの入力フォームなどから入力されたデータを悪用する。そこでWebアプリケーション・ファイアウォールは,Webブラウザから送られてくるデータの内容を解析して,攻撃とみなしたパケットを廃棄する(図8)。
Webブラウザの入力文字をチェック
多くのWebアプリケーション・ファイアウォールが搭載しているのが,正常な通信とみなしたデータをホワイトリストに登録していく方法である。基本ルールを管理者が設定して動作させ,その後,機器が正常と判断した通信のやりとりの内容を学習していく。こうして作られたホワイトリストの内容から外れる通信を遮断するしくみである。不正アクセスかどうか判定できなかったときはアラートを上げておき,あとで管理者が判定することで判定精度を上げていく。
例えば,「名字のローマ字表記」の入力フォームの基本ルールとして「アルファベット15文字までを許可する」と決めておく。こうしておけば,「&」や「;」といった攻撃に使われる可能性のある特殊記号を含む通信が遮断される。ただし,長い名字の人ならアルファベット15文字を超える可能性もある。こうしたケースでは100%攻撃とは断言できないため,管理者が手動で判断する。
ホワイトリスト形式とは逆に,ブラックリストを使った攻撃検出を併用する機器もある。メーカーが配布する攻撃コードが記述されたシグネチャを使って,広く流行している典型的な攻撃を検出して遮断する方法である。