ADC

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 は、既存の 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}$
     <!--NeedCopy-->
    
  • ログオンフィールド (特殊文字)。次の式では、文字列 türkçe-logon_ で始まり、その後に 2 文字以上 15 文字以下の文字または数字の文字列が続くすべての Cookie 名が除外されます。

     ^txC3xBCrkxC3xA7e-logon_[0-9A-Za-z]{2,15}$
     <!--NeedCopy-->
    
  • 任意の文字列。sc-item_という文字列にユーザーがショッピングカートに追加した商品の ID ([0-9a-zA-Z] +)、2 つ目のアンダースコア (_)、最後に希望する商品の数([1-9][0-9]?)が続くクッキーをユーザーが変更できるようにします。

     ^sc-item_[0-9A-Za-z]+_[1-9][0-9]?$
     <!--NeedCopy-->
    

注意:正規表現は強力です。特に PCRE 形式の正規表現に慣れていない場合は、作成した正規表現をすべて再確認してください。例外として追加する URL を正確に定義し、それ以外は何も定義していないことを確認してください。ワイルドカード、特にドットとアスタリスク(.*)メタキャラクタとワイルドカードの組み合わせを不注意に使用すると、意図しないWebコンテンツへのアクセスをブロックしたり、Cookieの一貫性チェックでそうしない攻撃を許可したりするなど、望ましくない結果が得られる可能性があります。ブロックされています。

Cookie整合性チェック

この記事の概要