この記事は機械翻訳されています.免責事項
Cookie整合性チェック
Cookie の一貫性チェックは、ユーザーから返された Cookie を調べ、Web サイトがそのユーザーに対して設定した Cookie と一致することを確認します。変更された Cookie が見つかると、リクエストが Web サーバーに転送される前にリクエストから削除されます。また、Cookie の暗号化、Cookie のプロキシ、または Cookie へのフラグの追加によって、処理するすべてのサーバー Cookie を変換するように Cookie の一貫性チェックを構成することもできます。このチェックはリクエストとレスポンスに適用されます。
攻撃者は通常、以前に認証されたユーザーになりすまして機密性の高い個人情報にアクセスしたり、バッファオーバーフローを引き起こしたりするために Cookie を改ざんします。バッファオーバーフローチェックは、長い Cookie を使用してバッファオーバーフローを起こそうとする試みから保護します。Cookie の整合性チェックでは、最初のシナリオに焦点を当てます。
ウィザードまたは GUI を使用する場合、[Cookie 整合性チェックの変更] ダイアログボックスの [ 全般] タブで、次のアクションを有効または無効にできます。
- ブロック
- ログ
- 使い方
- 統計
- トランスフォーム。有効にすると、Transform アクションによってすべての Cookie が次の設定で指定されているとおりに変更されます。
-
サーバーの Cookie を暗号化します。応答をクライアントに転送する前に、Cookie の一貫性チェック緩和リストに記載されているものを除き、Web サーバーによって設定された Cookie を暗号化します。暗号化された Cookie は、クライアントが後続の要求を送信すると復号化され、復号化された Cookie は保護された Web サーバに転送される前に要求に再挿入されます。次の暗号化タイプの 1 つを指定します。
- なし。Cookie を暗号化または復号化しないでください。デフォルト。
- 復号化のみ。暗号化された Cookie のみを復号化します。Cookieは暗号化しないでください。
- セッションのみを暗号化します。セッション Cookie のみを暗号化します。永続的な Cookie は暗号化しないでください。暗号化された Cookie をすべて復号化します。
- すべてを暗号化します。セッションCookieと永続的なCookieの両方を暗号化します。暗号化された Cookie をすべて復号化します。 注:Cookie を暗号化する場合、Web App Firewall は Cookie に HttpOnly フラグを追加します。このフラグは、スクリプトが Cookie にアクセスしたり解析したりすることを防ぎます。したがって、このフラグは、スクリプトベースのウイルスやトロイの木馬が復号化された Cookie にアクセスし、その情報を使用してセキュリティを侵害することを防ぎます。これは、[サーバーの Cookie の暗号化] パラメーター設定とは別に処理される [Cookie に追加するフラグ] パラメーター設定に関係なく行われます。
-
サーバーの Cookie を暗号化します。応答をクライアントに転送する前に、Cookie の一貫性チェック緩和リストに記載されているものを除き、Web サーバーによって設定された Cookie を暗号化します。暗号化された Cookie は、クライアントが後続の要求を送信すると復号化され、復号化された Cookie は保護された Web サーバに転送される前に要求に再挿入されます。次の暗号化タイプの 1 つを指定します。
-
プロキシサーバーのCookie。Cookie の一貫性チェックの緩和リストに記載されているものを除き、Web サーバーによって設定されたすべての非永続的 (セッション) Cookie をプロキシします。Cookie は、既存の Web App Firewall セッション Cookie を使用してプロキシされます。Web App Firewall は、保護された Web サーバーによって設定されたセッション Cookie を取り除き、応答をクライアントに転送する前にローカルに保存します。クライアントが後続のリクエストを送信すると、Web App Firewall はセッション Cookie をリクエストに再挿入してから、保護された Web サーバーにリクエストを転送します。次のいずれかの設定を指定します。
- なし。Cookieをプロキシしない。デフォルト。
- セッションのみ。セッション Cookie のみプロキシする。永続的な Cookie をプロキシしない注:Cookie プロキシを有効にした後で無効にした場合 ([セッションのみ] に設定した後でこの値を [なし] に設定)、Cookie プロキシを無効にする前に確立されたセッションに対して Cookie プロキシが維持されます。したがって、Web App Firewall がユーザーセッションを処理している間は、この機能を安全に無効にできます。
-
Cookieに追加するフラグ。変換中に Cookie にフラグを追加します。次のいずれかの設定を指定します。
- なし。Cookieにフラグを追加しないでください。デフォルト。
- HTTP のみ。httpOnly フラグをすべてのCookieに追加します。HttpOnly フラグをサポートするブラウザでは、このフラグが設定された Cookie にスクリプトからアクセスすることはできません。
- セキュア。SSL 接続でのみ送信される Cookie に Secure フラグを追加します。Secure フラグをサポートするブラウザは、フラグ付きの Cookie をセキュアでない接続で送信しません。
- [すべて]。すべての Cookie に HttpOnly フラグを追加し、SSL 接続でのみ送信される Cookie に Secure フラグを追加します。
コマンドラインインターフェイスを使用する場合は、次のコマンドを入力して Cookie 整合性チェックを設定できます。
set appfw profile <name> -cookieConsistencyAction [**block**] [**learn**] [**log**] [**stats**] [**none**]
set appfw profile <name> -cookieTransforms ([**ON**] | [**OFF**])
set appfw profile <name> -cookieEncryption ([**none**] | [**decryptOnly**] | [**encryptSession**] | [**encryptAll**])
set appfw profile <name> -cookieProxying ([**none**] | [**sessionOnly**])
-
set appfw profile <name> -addCookieFlags ([**none**] | [**httpOnly**] | [**secure**] | [**all**]
)
Cookie 整合性チェックの緩和を指定するには、GUI を使用する必要があります。[Cookie 整合性チェックの変更] ダイアログボックスの [チェック] タブで、[追加] をクリックして [Cookie 整合性チェック緩和の追加] ダイアログボックスを開くか、既存のリラクゼーションを選択して [開く] をクリックして [Cookie 整合性チェック緩和の変更] ダイアログボックスを開きます。どちらのダイアログボックスにも、リラクゼーションを構成するための同じオプションが表示されます。
Cookie整合性チェック緩和の例を以下に示します。
-
ログオンフィールド。次の式は、文字列 logon_ で始まり、その後に 2 文字以上 15 文字以下の文字または数字の文字列が続くすべての Cookie 名を除外します。
^logon_[0-9A-Za-z]{2,15}$
-
ログオンフィールド (特殊文字)。次の式では、文字列 türkçe-logon_ で始まり、その後に 2 文字以上 15 文字以下の文字または数字の文字列が続くすべての Cookie 名が除外されます。
^txC3xBCrkxC3xA7e-logon_[0-9A-Za-z]{2,15}$
-
任意の文字列。sc-item_という文字列にユーザーがショッピングカートに追加した商品の ID ([0-9a-zA-Z] +)、2 つ目のアンダースコア (_)、最後に希望する商品の数
([1-9][0-9]?)
が続くクッキーをユーザーが変更できるようにします。^sc-item_[0-9A-Za-z]+_[1-9][0-9]?$
注意:正規表現は強力です。特に PCRE 形式の正規表現に慣れていない場合は、作成した正規表現をすべて再確認してください。例外として追加する URL を正確に定義し、それ以外は何も定義していないことを確認してください。ワイルドカード、特にドットとアスタリスク(.*)メタキャラクタとワイルドカードの組み合わせを不注意に使用すると、意図しないWebコンテンツへのアクセスをブロックしたり、Cookieの一貫性チェックでそうしない攻撃を許可したりするなど、望ましくない結果が得られる可能性があります。ブロックされています。