ここで実際にBIG-IP ASMを使用してパラメータのチェックを行う方法とその手順を説明する。実際に設定を追加していく方法はいくつか存在するが、ここではまず手入力による追加を紹介する。
オブジェクト(ファイル名)はオブジェクトタイプ(拡張子)にひも付くため、事前にオブジェクトタイプを登録しておかなければならない。オブジェクトタイプが登録してある場合は、以下のような画面で新しいオブジェクトを登録する。Enhanced Standardモード以上のモードではオブジェクトレベルでのチェックを行わない正規表現での例外設定をすることも可能である。
登録したオブジェクトへの到達方法(Flow)を設定する。Flowで設定する内容は、どのオブジェクトからのリンクとして到達するかとその際に使用されるメソッドである。前述のとおりAPC Phase 2では画面遷移をチェックすることができるが、その際にはReferrer Objectという項目のObject Pathを設定する。これによってオブジェクトへの到達元に制限を加えることができる。
Object Pathに入力が行われると、BIG-IP ASMはリクエストのReferrerヘッダをチェックして、設定されているReferrer以外が含まれるリクエストをブロックする。APC Phase 2より下のモードでは画面遷移はチェックしないためすべてをEntry Point(最初のページという意味)として設定し、管理者はメソッドのみを選択する。
以下は/test/register.php3というオブジェクトに対するGETおよびPOSTのFlowを登録した直後のオブジェクト設定画面で、この後Flowごとにパラメータの設定を行っていく。
オブジェクトに対して上記で設定したメソッドでデータを送る際にチェックするパラメータを設定する。
パラメータ設定はFlow設定の一部である。オブジェクトに到達するまでのFlowの一部としてパラメータが存在するという考え方である。オブジェクトへのリクエストに含まれるものはFlowとして定義される。それぞれのパラメータに対して個別に以下のようなタイプを設定できる。
1.Don't check value
値のチェックは行わない。Enhanced Standardではチェックしないパラメータは登録しなくてよいので、この設定は実質使用されない。
2.Static content value
プルダウンやラジオボタンなどの、あらかじめ選択肢が決まっているものに使用し、設定画面にはその選択肢をすべて登録する。登録されたもの以外の入力があった場合はviolation(違反)として扱う。
3.Dynamic content value
パラメータの値がレスポンスページ内のどこかに含まれており、次のリクエストにおいてその値が改ざんされずに送られてきているかどうかをチェックする際に使用する。レスポンスの検索方法はいくつかあるが、以下の設定例はレスポンスボディから値を検索するものである。このDynamic contentにおける動作については後述する。
4.Dynamic parameter name
パラメータ名が動的に変化する場合に使用する設定。パラメータにセッションIDなどの動的な値を含むときに使用する。
5.User-Input value
ユーザーが入力して値を決定するパラメータに適した設定。この設定を選択した際には以下のようなリストが表示され、ここでシステム一意のチェックとは別にそのパラメータ固有の設定を行うことができる。入力文字のタイプ(フリーテキスト、メールアドレス、数字)や入力フィールドの長さを設定できることに加え、入力可能な文字を正規表現で設定することもできる。
このほかに、入力可能なメタキャラクタや正規表現を以下のように個別に選択して通過させることができる。このように、パラメータ単位で入力メタキャラクタをコントロールすることが、冒頭に挙げたようなStandardモードではできないことである。
Copyright © ITmedia, Inc. All Rights Reserved.