Web App Firewall

シグニチャルールパターン

パターンを追加したり、既存のパターンを変更して、シグニチャが一致した場合に攻撃を特徴付ける文字列または式を指定できます。攻撃によって発生するパターンを検出するには、Web サーバー上のログを調べます。ツールを使用してリアルタイムで接続データを観察したり、攻撃に関するサードパーティのレポートから文字列や式を取得したりできます。

注意:

シグネチャルールに追加する新しいパターンは、既存のパターンと AND 関係になります。潜在的な攻撃がシグニチャと一致するためにすべてのパターンと一致する必要がないようにするには、既存のシグニチャルールにパターンを追加しないでください。

各パターンは、単純な文字列、PCRE形式の正規表現、または組み込みの SQL インジェクションまたはクロスサイトスクリプティングパターンで構成できます。正規表現に基づくパターンを追加する前に、PCRE-形式の正規表現を理解しておく必要があります。PCRE 式は複雑で強力です。それらの仕組みを理解できない場合は、意図せず自分が望まなかったもの( 偽陽性)に一致するパターン、または自分が望むもの(偽**陰性)に一致しないパターンを作成できます。

デフォルト以外のコンテンツタイプのカスタム署名パターン

Citrix ADC Web App Firewall(WAF)で、正規化されたコンテンツを検査するための新しい場所がサポートされるようになりました。デフォルトでは、WAF はデフォルト以外のコンテンツタイプのエンコードされたペイロードをブロックしません。これらのコンテンツタイプがホワイトリストに登録され、設定済みのアクションが適用されない場合、SQL およびクロスサイトスクリプティング保護チェックでは、エンコードされたペイロードでの SQL 攻撃またはクロスサイトスクリプティング攻撃はフィルタリングされません。この問題を解決するために、ユーザはこの新しい場所(HTTP_CANON_POST_BODY)を使用してカスタムシグニチャルールを作成できます。このルールでは、エンコードされたペイロードでデフォルト以外のコンテンツタイプを調べます。SQL またはクロスサイトスクリプティング攻撃がある場合、ポストボディの正規化後にトラフィックをブロックします。

注:

このサポートは、HTTP 要求にのみ適用されます。

PCRE-形式の正規表現に慣れていない場合は、次のリソースを使用して基本を学習したり、特定の問題に関するヘルプを参照したりできます。

  • 「正規表現のマスタリング」第3版。ジェフリー・フリードルによる著作権 (c) 2006. オライリー・メディア, ISBN: 9780596528126.
  • 「正規表現クックブック」. 著作権 (c) 2009 ヤン・ゴイバーツとスティーブン・レビサンによる. オライリーメディア, ISBN:
  • PCRE マニュアルページ/仕様 (テキスト/公式):"<http://www.pcre.org/pcre.txt>"
  • PCREのマニュアルページ/仕様 (HTML/gammon.edu.au):"<http://www.gammon.com.au/pcre/index.html>"
  • Wikipedia PCRE entry: “[http://en.wikipedia.org/wiki/PCRE](http://en.wikipedia.org/wiki/pcre)”
  • PCRE メーリングリスト (exim.org によって実行):<http://lists.exim.org/mailman/listinfo/pcre-dev>"

非ASCII文字をPCRE形式の正規表現でエンコードする必要がある場合、Citrix ADCプラットフォームでは16進数のUTF-8コードのエンコードがサポートされます。詳しくは、「PCRE 文字エンコーディング形式」を参照してください。

シグニチャルールパターンを設定するには

  1. [セキュリティ] > [アプリケーションファイアウォール] > [署名] に移動します。
  2. 詳細ウィンドウで、構成するシグニチャオブジェクトを選択し、[開く] をクリックします。
  3. [シグニチャオブジェクトの変更] ダイアログボックスで、画面の中央の [フィルタされた結果] ウィンドウの下にある [追加] をクリックしてシグニチャルールを作成するか、既存のシグニチャルールを選択して [開く] をクリックします。

    注:

    変更できるのは、追加したシグニチャルールだけです。デフォルトのシグニチャルールは変更できません。

    操作に応じて、[ローカル署名規則の追加] または [ローカル署名規則の変更] ダイアログボックスが表示されます。両方のダイアログボックスの内容は同じです。

  4. ダイアログボックスの「 パターン」ウィンドウで 、「追加」( Add ) をクリックして新しいパターンを追加するか、「追加」( Add ) ボタンの下のリストから既存のパターンを選択して「開く」( Open ) をクリックします。アクションに応じて、 [新しい署名規則パターンの作成] ダイアログボックスまたは [署名規則パターンの編集] ダイアログボックスが表示されます。両方のダイアログボックスの内容は同じです。
  5. [パターンタイプ] ドロップダウンリストで、パターンが一致させる接続のタイプを選択します。

    • 挿入された SQL コード、Web フォームへの攻撃、クロスサイトスクリプト、不適切な URL など、リクエストの要素または機能に一致するパターンがある場合は、[Request] を選択します。
    • パターンが応答要素または機能 (クレジットカード番号や安全なオブジェクトなど) を一致させる場合は、[Response] を選択します。
  6. [位置] 領域で、このパターンで調べる要素を定義します。 [Location] 領域には、このパターンを調べるための HTTP 要求または応答の要素が表示されます。「位置」(Location) エリアに表示される選択肢は、選択したパターンタイプによって異なります。パターンタイプとして [Request] を選択した場合、HTTP リクエストに関連する項目が表示されます。[応答] を選択すると、HTTP 応答に関連する項目が表示されます。 さらに、「エリア」(Area) ドロップダウンリストから値を選択すると、「位置」(Location) 領域の残りの部分がインタラクティブに変更されます。このセクションに表示される可能性のあるすべての構成項目を次に示します。

    • エリア。HTTP 接続の特定の部分を記述する要素のドロップダウンリスト。選択肢は次のとおりです。
      • HTTP_ANY. HTTP 接続のすべての部分。
      • HTTP_COOKIE. 任意のクッキー変換が実行された後、HTTPリクエストヘッダー内のすべてのクッキー。 注:HTTP応答 “Set-Cookie:” ヘッダーを検索しません。
      • HTTP_FORM_FIELD. URL デコード、パーセントデコード、および余分な空白の削除後のフォームフィールドとその内容。<Location>タグを使用すると、検索するフォームフィールド名のリストをさらに制限できます。
      • HTTP_HEADER. クロスサイトスクリプティングまたは URL デコード変換後の HTTP ヘッダーの値部分。
      • HTTP_METHOD. HTTP リクエストメソッド。
      • HTTP_ORIGIN_URL. Web フォームのオリジン URL。
      • HTTP_POST_BODY. HTTPポスト本文とそれに含まれる Web フォームデータ。
      • HTTP_RAW_COOKIE. 「クッキー:」名部分を含むすべての HTTP リクエストクッキー。 注:HTTP応答 “Set-Cookie:” ヘッダーを検索しません。
      • HTTP_RAW_HEADER. HTTPヘッダー全体。個々のヘッダーは改行文字(n)または改行/改行文字列(rn)で区切られます。
      • HTTP_RAW_RESP_HEADER. URL 変換が完了した後の応答ヘッダーの名前と値の部分、および完全な応答状態を含む、応答ヘッダー全体。HTTP_RAW_HEADER と同様に、個々のヘッダーは改行文字 (n) または改行/改行文字列 (rn) で区切られます。
      • HTTP_RAW_SET_COOKIE. URL 変換が実行された後の Set-Cookie ヘッダー全体 注:URL 変換では、Set-Cookie ヘッダーのドメイン部分とパス部分の両方を変更できます。
      • HTTP_RAW_URL. クエリまたはフラグメント部分を含む、URL 変換が実行される前のリクエスト URL 全体。
      • HTTP_RESP_HEADER. URL 変換が実行された後の完全な応答ヘッダーの値部分。
      • HTTP_RESP_BODY. HTTP 応答本文
      • HTTP_SET_COOKIE. HTTP応答ヘッダーのすべての「Set-Cookie」ヘッダー。
      • HTTP_STATUS_CODE. HTTP ステータスコード。
      • HTTP_STATUS_MESSAGE. HTTP ステータスメッセージ。
      • HTTP_URL. UTF-* 文字セットへの変換、URL デコード、空白の除外、および相対 URL の絶対値への変換後の HTTP ヘッダー内の URL の値部分。クエリポートまたはフラグメントポートを除く。HTML エンティティのデコードは含まれません。
      • [URL]をクリックします。[ Area] 設定で指定された要素内で見つかった URL を検査します。次のいずれかの設定を選択します。
      • Any. すべての URL をチェックします。
      • リテラル。リテラル文字列を含む URL をチェックします。[リテラル] を選択すると、テキストボックスが表示されます。テキストボックスにリテラル文字列を入力します。
      • PCRE PCRE形式の正規表現に一致する URL をチェックします。この選択を選択すると、正規表現ウィンドウが表示されます。ウィンドウに正規表現を入力します。正規表現トークン を使用すると、カーソル位置に共通の正規表現要素を挿入できます。または、[正規表現エディタ] をクリックして [正規表現エディタ] ダイアログボックスを表示して、必要な正規表現の作成を支援できます。
      • 式。Citrix ADC デフォルト式と一致するURLをチェックします。
      • フィールド名。[ Area] 選択で指定された要素で見つかったフォームフィールド名を調べます。Any. すべての URL をチェックします。
      • リテラル。リテラル文字列を含む URL をチェックします。[リテラル] を選択すると、テキストボックスが表示されます。テキストボックスにリテラル文字列を入力します。
      • PCRE PCRE形式の正規表現に一致する URL をチェックします。この選択を選択すると、正規表現ウィンドウが表示されます。ウィンドウに正規表現を入力します。正規表現トークン を使用して一般的な正規表現要素を挿入するか、正規表現エディタを使用して必要な正規表現を構築することができます。
      • 式。Citrix ADC デフォルト式と一致するURLをチェックします。
  7. [パターン] 領域で、パターンを定義します。パターンは、一致させるパターンを定義するリテラル文字列または PCRE形式の正規表現です。[パターン] 領域には、次の要素が含まれます。 - 一致。署名に使用できる検索方法のドロップダウンリスト。このリストは、パターンタイプが [要求] か [応答] かによって異なります。

    リクエストマッチタイプ PCRE。PCRE形式の正規表現。

    注:

    PCRE を選択すると、パターンウィンドウの下にある正規表現ツールが有効になります。これらのツールは、他のほとんどのタイプのパターンには役に立ちません。

    • Injection. 指定された場所に挿入された SQL を探すように Web App Firewall に指示します。Web App Firewall に SQL インジェクションのパターンが既にあるため、[パターン] ウィンドウが消えます。

    • CrossSiteScripting. Web App Firewall に、指定した場所でクロスサイトスクリプトを検索するように指示します。Web App Firewall にクロスサイトスクリプトのパターンが既に存在するため、[パターン] ウィンドウが消えます。

    • 。Citrix ADCのデフォルト表現言語の表現は、Citrix ADCアプライアンスでWeb App Firewall ポリシーを作成する場合と同じ表現言語です。Citrix ADC式言語は、もともとポリシールール用に開発されたものですが、柔軟性の高い汎用言語で、署名パターンの定義にも使用できます。

    [式]を選択すると、[パターン]ウィンドウの下にCitrix ADC式エディターが表示されます。エクスプレッションエディタ (Expression Editor) とその使用方法の詳細については、「[式の追加] ダイアログボックスを使用してファイアウォールルール (式) を追加するには」を参照してください。

    回答の一致タイプ:

    -  Literal. リテラル文字列
    -  PCRE PCRE形式の正規表現。
    

    PCRE を選択すると、パターンウィンドウの下にある正規表現ツールが有効になります。これらのツールは、他のほとんどのタイプのパターンには役に立ちません。

    • Credit Card. サポートされている 6 種類のクレジットカード番号のいずれかに一致する組み込みパターン。

    注:

    [式] 一致タイプは、応答側の署名では使用できません。

    • パターンウィンドウ (ラベルなし)

    このウィンドウで、照合するパターンを入力し、追加データを入力します。

    • リテラル。検索する文字列をテキスト領域で入力します。
    • CRE. テキスト領域に正規表現を入力します。正規表現エディタを使用して必要な正規表現を作成するか、正規表現トークンを使用して一般的な正規表現要素をカーソル位置に挿入します。UTF-8 文字を有効にするには、[UTF-8] をクリックします。
    • 式。テキスト領域にCitrix ADCの詳細式を入力します。[Prefix] を使用して式の最初の用語を選択するか、[Operator] を使用して一般的な演算子をカーソル位置に挿入します。[追加] をクリックして [式の追加] ダイアログボックスを開き、必要な正規表現の作成についてさらに支援します。「評価」(Evaluate) をクリックして「高度な式評価子」(Advanced Expression Evaluator) を開き、式の効果を判断します。
    • [オフセット]: このパターンで一致を開始する前にスキップする文字数。このフィールドを使用して、最初の文字以外のポイントで文字列の検査を開始します。
    • 奥行き。一致するかどうかを調べる開始点からの文字数。このフィールドを使用して、大きな文字列の検索を特定の文字数に制限します。
    • 最小長さ。検索する文字列は、指定したバイト数以上でなければなりません。短い文字列は一致しません。
    • 最大長さ。検索する文字列は、指定したバイト数を超えないようにしてください。長い文字列は一致しません。
    • 検索方法。ファストマッチというラベルの付いたチェックボックス。パフォーマンスを向上させるために、リテラルパターンに対してのみファストマッチを有効にすることができます。
  8. [OK] をクリックします。
  9. 上記の 4 つの手順を繰り返して、さらにパターンを追加または変更します。
  10. パターンの追加または変更が完了したら、[OK] をクリックして変更を保存し、[署名] ウィンドウに戻ります。

注意:

[ローカル署名規則 の追加] または [ローカル署名規則の変更] ダイアログボックスで [OK] をクリックするまで、変更は保存されません。変更を破棄しない限り、[OK] をクリックせずにこれらのダイアログボックスを閉じないでください。

シグニチャルールパターン