セキュリティレベルの選択
WAFの多くは、運用要件やセキュリティ要件に合わせていくつかの段階の中からセキュリティレベルを選択できる。ASMの場合は、3段階のセキュリティレベルがあり以下のようなチェックを行う。
1a.Standardモード
- プロトコル準拠(HTTPの正確さ)
- オブジェクトタイプのチェック(HTML、JSP、GIFなど)
- ディレクトリのチェック(例えば「GIFは/imagesディレクトリにあること」など)
- 長さのチェック(URL、cookie、クエリストリングなど)
- キャラクタのチェック(「テキストエリアには[a-zA-Z0-9.,-] のみ許可」など)
- cookieのチェック(クライアントによって変更されてはならないcookieの設定)
- シグネチャ(「はブロックする」など)
1b.Enhanced Standardモード
(Standardモードより厳しくAPC Phase 1より柔軟)
- 指定したオブジェクトに対してのみAPC Phase 1相当のチェックを行う
2.APC Phase 1
- Standardモードのチェックすべて
- オブジェクトのチェック(すべてのオブジェクトの登録が必要)
- パラメータのチェック(「"acct_num"パラメータは数字8文字でなくてはならない」など)
3.APC Phase 2
- APC Phase 1のチェックすべて
- 画面遷移のチェック
セキュリティレベルを高くすると、設定(初期設定やメンテナンスなど)にかかる工数も増加する。ASMの場合であれば、オブジェクトタイプ単位での設定だけを行えばよいStandard モードの設定が約1日で完了するのに対し、APC Phase 1では、サイトに存在するすべてのオブジェクトと、それに入力する全パラメータを登録する必要があるため約1週間を要する(オブジェクト数やパラメータ数などサイトの規模に大きく依存するが)。
さらにセキュリティレベルの高いAPC Phase 2を設定するには、すべての画面遷移をポリシーとして設定するため、もっと多くの期間を要する。なお、APCで運用している場合はサイトの構成変更によって生じたオブジェクトの増減に応じたメンテナンスを行わなくてはならない。
導入期間が最短のStandardモードでも以下の攻撃を防ぐことができる。これらをASMがどのように防御するのかを見ていくことにする。
- SQLインジェクション
- クロスサイトスクリプティング
- cookieポイズニング
- バッファオーバーフロー
- 強制ブラウジング
SQLインジェクションとクロスサイトスクリプティング対策
SQLインジェクションとクロスサイトスクリプティングを防ぐために、Webアプリケーション一意のメタキャラクタチェックを行う。
また、ASMの場合は部分的にネガティブセキュリティモデルを用いており、これによってSQLインジェクションならびにクロスサイトスクリプティングを防ぐことができる。WAFにはあらかじめこれらの攻撃のパターンが登録されており、ヘッダ全体、クエリストリング、POSTデータに対してパターンマッチを行うことによって攻撃から防御する。
cookieポイズニング対策
ASMの場合、Webサーバからのレスポンスに含まれるcookie(オリジナルcookie)のフィンガープリントを取得し、オリジナルcookieとともにクライアントへ送信する。次に、そのクライアントから送られてくるリクエストには、オリジナルcookieとASM cookieが含まれているので、同一のアルゴリズムでオリジナルcookieのフィンガープリントを取得し、オリジナルcookieが改ざんされていないかどうかを検証する。これによってcookieの不正変更からWebアプリケーションを防御する。
Copyright © ITmedia, Inc. All Rights Reserved.