ADC

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

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

注意:

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

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

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

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

注:

このサポートは HTTP リクエストにのみ適用されます。

PCRE形式の正規表現にまだ慣れていない場合は、次のリソースを使用して基本を学んだり、特定の問題を解決したりすることができます。

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

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

  1. Security > Citrix Web App Firewall > Signaturesに移動します。
  2. 詳細ペインで、設定するシグニチャオブジェクトを選択し、「開く」をクリックします。
  3. 画面中央の「フィルター結果」ウィンドウの下にある「署名オブジェクトの変更」ダイアログボックスで、「追加」をクリックして署名ルールを作成するか、既存の署名ルールを選択して「開く」をクリックします。

    注:

    変更できるのは、追加した署名ルールだけです。デフォルトの署名ルールは変更できません。

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

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

    • パターンが、挿入された SQL コード、Web フォームへの攻撃、クロスサイトスクリプト、または不適切な URL など、リクエストの要素や機能と一致するように意図されている場合は、「リクエスト」を選択します。
    • クレジットカード番号やセーフオブジェクトなど、レスポンス要素や特徴と一致するようにパターンが意図されている場合は、「 レスポンス」を選択します。
  6. ロケーションエリアで、このパターンで調べる要素を定義します。 Location 領域には、HTTP リクエストまたはレスポンスのどの要素でこのパターンを調べるべきかが記述されています。ロケーションエリアに表示される選択肢は、選択したパターンタイプによって異なります。パターンタイプとして「リクエスト」を選択した場合、HTTP リクエストに関連する項目が表示されます。「レスポンス」を選択した場合、HTTP レスポンスに関連する項目が表示されます。 さらに、「エリア」ドロップダウンリストから値を選択すると、「ロケーション」エリアの残りの部分がインタラクティブに変化します。このセクションに表示される可能性のあるすべての構成項目は次のとおりです。

    • エリア。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. ウェブフォームのオリジン URL。
      • HTTP_POST _BODY。HTTP 投稿本文とそれに含まれる Web フォームデータ。
      • HTTP_RAW_COOKIE. 「Cookie:」という名前の部分を含むすべての HTTP リクエストクッキー。 注意:HTTP レスポンスの「Set-Cookie:」ヘッダーは検索しません。
      • HTTP _RAW _HEADER。HTTP ヘッダー全体。個々のヘッダーは改行文字 (\ n) またはキャリッジリターン/ラインフィード文字列 (\ r\ n) で区切られています。
      • HTTP_RAW_RESP_HEADER. URL 変換が行われた後のレスポンスヘッダーの名前と値の部分を含むレスポンスヘッダー全体、および完全なレスポンスステータス。HTTP_RAW_HEADER と同様に、個々のヘッダーは改行文字 (\ n) またはキャリッジリターン/ラインフィード文字列 (\ r\ n) で区切られます。
      • 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をチェックします。
      • フィールド名。 エリア選択で指定された要素にあるフォームフィールド名を調べます。Any. すべての URL をチェックします。
      • リテラル。リテラル文字列を含む URL をチェックします。「リテラル」を選択すると、テキストボックスが表示されます。テキストボックスに必要なリテラル文字列を入力します。
      • PCRE。PCRE形式の正規表現と一致するURLをチェックします。この選択肢を選択すると、正規表現ウィンドウが表示されます。ウィンドウに正規表現を入力します。 正規表現トークンを使用して一般的な正規表現要素を挿入することも 、正規表現エディターを使用して必要な正規表現を作成することもできます。
      • 式。Citrix ADC のデフォルト表現と一致するURLをチェックします。
  7. 「パターン」領域で、パターンを定義します。パターンは、一致させたいパターンを定義するリテラル文字列または PCRE形式の正規表現です。パターンエリアには次の要素が含まれます: - マッチ署名に使用できる検索方法のドロップダウンリスト。このリストは、パターンタイプがリクエストかレスポンスかによって異なります。

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

    注:

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

    • 注入。指定された場所に挿入された SQL を検索するように Web App Firewall に指示します。Web App Firewall にはすでに SQL インジェクションのパターンが含まれているため、パターンウィンドウは非表示になります。

    • CrossSiteScripting. Web App Firewall に、指定された場所でクロスサイトスクリプトを探すように指示します。Web App Firewall にはすでにクロスサイトスクリプトのパターンが含まれているため、パターンウィンドウは非表示になります。

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

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

    回答の一致タイプ:

    -  Literal. A literal string
    -  PCRE. A PCRE-format regular expression.
    

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

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

    注:

    Expression マッチタイプはレスポンス側のシグネチャには使用できません。

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

    このウィンドウでは、一致させたいパターンを入力し、追加データを入力します。

    • リテラル。検索する文字列をテキスト領域に入力します。
    • 世話人。テキスト領域に正規表現を入力します。必要な正規表現をより簡単に作成するには Regex Editor を使用し、一般的な正規表現要素をカーソルに挿入するには Regex Tokens を使用してください。UTF-8 文字を有効にするには、「UTF-8」をクリックします。
    • 式。テキスト領域に Citrix ADC の詳細表現を入力します。プレフィックスを使用して式の最初の用語を選択するか、演算子を使用して一般的な演算子をカーソルに挿入します。[追加] をクリックすると [式の追加] ダイアログボックスが開き、必要な正規表現の作成がさらに容易になります。「評価」をクリックすると、エクスプレッションの効果を判断するのに役立つアドバンストエクスプレッションエバリュエーターが開きます。
    • オフセット。このパターンでマッチングを開始する前にスキップする文字数。このフィールドを使用して、最初の文字以外の任意の時点で文字列の検査を開始します。
    • 深さ。一致するかどうかを調べる開始点から何文字か。このフィールドを使用して、大きな文字列の検索を特定の文字数に制限します。
    • 最小長さ。検索する文字列は、指定されたバイト数以上の長さでなければなりません。短い文字列は一致しません。
    • 最大長。検索する文字列の長さは、指定されたバイト数以下でなければなりません。長い文字列は一致しません。
    • 検索方法。fastmatchというラベルの付いたチェックボックス。fastmatch はリテラルパターンに対してのみ有効にできるため、パフォーマンスが向上します。
  8. [OK] をクリックします。
  9. 上記の 4 つの手順を繰り返して、さらにパターンを追加または変更します。
  10. パターンの追加または変更が終了したら、「 OK」 をクリックして変更を保存し、「署名」ペインに戻ります。

注意:

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

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