署名ルールパターンを追加
シグネチャが一致する場合、パターンを追加するか、既存のパターンを変更して攻撃を特徴付ける文字列または式を指定できます。攻撃が示すパターンを検出するには、ウェブサーバーのログを調べることができます。ツールを使用してリアルタイムで接続データを観察したり、攻撃に関するサードパーティのレポートから文字列や式を取得したりできます。
重要
:シグニチャルールに追加する新しいパターンは、既存のパターンと AND 関係になります。潜在的な攻撃がすべてのパターンをシグニチャと一致させたくない場合は、既存のシグニチャルールにパターンを追加しないでください。
各パターンは、単純な文字列、PCRE 形式の正規表現、組み込みの SQL インジェクションまたはクロスサイトスクリプティングパターンで構成できます。正規表現に基づくパターンを追加する前に、PCRE形式の正規表現を理解していることを確認する必要があります。PCRE 表現は複雑で強力です。その仕組みを理解していないと、意図せず望んでいないものと一致するパターン( 偽陽性)や、望んでいたものと一致しない(偽陰性**)パターンを作成してしまう可能性があります。
デフォルト以外のコンテンツタイプのカスタム署名パターン
NetScaler Web App Firewall(WAF)は、正規化されたコンテンツを検査する新しい場所をサポートするようになりました。デフォルトでは、WAF はデフォルト以外のコンテンツタイプのエンコードされたペイロードをブロックしません。これらのコンテンツタイプがホワイトリストに登録され、設定済みのアクションが適用されていない場合、SQL およびクロスサイトスクリプティング保護チェックは、エンコードされたペイロード内の SQL 攻撃またはクロスサイトスクリプティング攻撃をフィルタリングしません。この問題を解決するには、ユーザーはこの新しい場所 (HTTP_CANON_POST_BODY) でカスタム署名ルールを作成して、エンコードされたペイロードにデフォルト以外のコンテンツタイプがないかを調べ、SQL 攻撃やクロスサイトスクリプティング攻撃を受けた場合は、投稿本文の正規化後にトラフィックをブロックします。
注:
このサポートは HTTP リクエストにのみ適用されます。
PCRE形式の正規表現にまだ慣れていない場合は、次のリソースを使用して基本を学んだり、特定の問題を解決したりすることができます。
- 「正規表現の習得」、第3版。著作権 (c) 2006 ジェフリー・フリードルオライリー・メディア、ISBN: 9780596528126。
- 「正規表現クックブック」。著作権 (c) 2009 年、ヤン・ゴイヴァールツとスティーブン・レヴィサンオライリー・メディア、ISBN: 9780596520687
- PCRE マニュアルページ/仕様
- PCRE マンページ/仕様
- ウィキペディア PCRE エントリ
- PCRE メーリングリスト
ASCII以外の文字をPCRE形式の正規表現でエンコードする必要がある場合、Citrix ADCプラットフォームは16進数のUTF-8コードのエンコードをサポートしています。詳細については、 PCRE 文字エンコーディング形式を参照してください。
シグネチャルールパターンの設定
署名を編集するときに、ルールパターンを追加または編集できます。シグニチャルールを追加または変更するには、「 シグニチャを編集してルールを追加または変更する」を参照してください。
-
タイプ -パターンが一致させたい接続のタイプを選択します。
- リクエスト -挿入された SQL コード、Web フォームへの攻撃、クロスサイトスクリプト、または不適切な URL などのリクエスト要素または機能を照合します。
- レスポンス -クレジットカード番号やセーフオブジェクトなどのレスポンス要素や特徴と一致します。
-
場所 - このパターンで調べるエリアを選択してください 。この領域には、HTTP リクエストまたはレスポンスのどの要素でこのパターンを調べるべきかが記載されています。選択したパターンタイプに応じて、 オプションがエリアリストに表示されます 。選択したパターンタイプによって異なります。
リクエストパターンタイプには 、HTTP リクエストに関連する項目が表示されます。
- HTTP_ANY. HTTP 接続のすべての部分。
-
HTTP_COOKIE. 任意のクッキー変換が実行された後、HTTPリクエストヘッダー内のすべてのクッキー。
注
:HTTP レスポンスの「Set-Cookie:」ヘッダーは検索しません。
-
HTTP_FORM_FIELD. URL デコード、パーセントデコード、および余分な空白の削除後のフォームフィールドとその内容。
<Location>
タグを使用して、検索するフォームフィールド名のリストをさらに制限できます。 - HTTP _HEADER。クロスサイトスクリプティングまたは URL デコード変換後の HTTP ヘッダーの値部分。
- HTTP _METHOD。HTTP リクエストメソッド。
- HTTP_URL. UTF-* 文字セットへの変換、URL のデコード、空白の除去、相対 URL の絶対値への変換後の、HTTP ヘッダー内の URL の値部分(クエリポートまたはフラグメントポートは除く)。HTML エンティティのデコードは含まれません。
- 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 レスポンスに関連する項目が表示されます。
- 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 ステータスメッセージ。
エリアリストからオプションを選択すると、選択したエリアのオプションが動的に変更されます 。
- Any. フィールド名または URL をチェックします。
- リテラル。リテラル文字列を含むフィールド名または URL をチェックします。「リテラル」を選択すると、テキストボックスが表示されます。テキストボックスに必要なリテラル文字列を入力します。
- PCRE。PCRE形式の正規表現と一致するフィールド名またはURLをチェックします。この選択肢を選択すると、正規表現ウィンドウが表示されます。ウィンドウに正規表現を入力します。 正規表現トークンを使用して一般的な正規表現要素をカーソルに挿入することも 、「正規表現エディター」をクリックして正規表現エディターダイアログボックスを表示することもできます。このダイアログボックスでは、必要な正規表現をより簡単に作成できます。
- Expression:NetScaler のデフォルト式と一致するフィールド名または URL をチェックします。
-
パターン - パターンは、照合するパターンを定義するリテラル文字列または PCRE 形式の正規表現です。 リストからマッチタイプを選択します 。
- リテラル。リテラル文字列。
-
PCRE。PCRE 形式の正規表現。
注
PCRE を選択すると、パターンウィンドウの下にある正規表現ツールが有効になります。これらのツールは、他のほとんどのタイプのパターンには役に立ちません。
-
Expression:Citrix ADCのデフォルト表現言語の式は、Citrix ADCアプライアンスでWeb App Firewallポリシーを作成するための表現言語と同じです。Citrix ADC式言語は、もともとポリシールール用に開発されたものですが、柔軟性の高い汎用言語で、署名パターンの定義にも使用できます。
エクスプレッションを選択すると、NetScaler エクスプレッションエディターがパターンウィンドウの下に表示されます。式エディタとその使用方法の詳細については、「[式の追加] ダイアログボックスを使用してファイアウォールルール (式) を追加するには」を参照してください。
-
SQL インジェクション。指定された場所に挿入された SQL を検索するように Web App Firewall に指示します。
-
CrossSiteScripting. Web App Firewall に、指定された場所でクロスサイトスクリプトを探すように指示します。
-
コマンドインジェクション。指定された場所に挿入された悪意のあるコマンドを探すようにCitrix Web App Firewallに指示します。
-
SQL インジェクション/グラマー。指定された場所に挿入されたSQL文法を探すようにCitrix Web App Firewallに指示します。特に、
Select
やFrom
などのよく使われる単語がHTTPリクエストで使われている場合はなおさらです。 - コマンドインジェクション/文法。指定された場所に挿入された悪意のあるコマンド文法を検索するようにCitrix Web App Firewallに指示します。特に、HTTPリクエストで「Exit」などの一般的に使用される単語が使用されている場合。
さらに設定を行う場合は、以下を指定してください。
- オフセット。このパターンでマッチングを開始する前にスキップする文字数。このフィールドを使用して、最初の文字以外の任意の時点で文字列の検査を開始します。
- 深さ。一致するかどうかを調べる開始点から何文字か。このフィールドを使用して、大きな文字列の検索を特定の文字数に制限します。
- 最小長さ。検索する文字列は、指定されたバイト数以上の長さでなければなりません。短い文字列は一致しません。
- 最大長。検索する文字列の長さは、指定されたバイト数以下でなければなりません。長い文字列は一致しません。
-
検索方法。
fastmatch
ラベルの付いたチェックボックス。パフォーマンスを向上させるには、リテラルパターンでのみfastmatch
を有効にできます。
注
「 署名ルールパターン 」ペインで「 OK」 をクリックするまで、変更は保存されません。変更を破棄しない限り、[OK] をクリックせずにこれらのダイアログボックスを閉じないでください。