この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、Cisco Anomaly Guard Module(Guard モジュール)フィルタの設定方法について説明します。
• 概要
ゾーン フィルタは、Guard が特定のトラフィック フローを処理する方法を定義します。ユーザは、フィルタを設定して、カスタマイズされたトラフィック誘導や DDoS 攻撃の防止メカニズムをさまざまに設計することができます。
Guard モジュールでは、次のタイプのフィルタが使用されます。
• ユーザ フィルタ :ユーザ フィルタは、特定のトラフィック フローを関連する Guard の保護モジュールに誘導します。このフィルタは、異常なトラフィックや悪意のあるトラフィックが検出されたときに Guard が最初に実行するアクションを定義します。ゾーン設定には、多様なタイプの攻撃を処理できるオンデマンドの保護用に設定された、デフォルトのユーザ フィルタのセットが含まれています。ユーザ フィルタを変更すると、Guard の保護モジュールの機能をカスタマイズし、攻撃の疑いがある場合のトラフィック フロー処理規則を設定できます。詳細については、「ユーザ フィルタの設定」を参照してください。
• バイパス フィルタ :バイパス フィルタは、特定のトラフィック フローが Guard の保護メカニズムによって処理されないように防止します。
信頼されたトラフィックが Guard の保護メカニズムを通らないように誘導し、そのトラフィックを直接ゾーンに転送できます。
詳細については、「バイパス フィルタの設定」を参照してください。
• フレックスコンテンツ フィルタ :フレックスコンテンツ フィルタは、特定のトラフィック フローをカウントまたはドロップします。フレックスコンテンツ フィルタは、バークリー パケット フィルタとパターン フィルタを組み合せたもので、IP ヘッダーと TCP ヘッダーのフィールドに基づいたフィルタリングやペイロード コンテンツに基づいたフィルタリングなどの非常に柔軟なフィルタリング機能、および複雑なブール式をユーザに提供します。詳細については、「フレックスコンテンツ フィルタの設定」を参照してください。
• 動的フィルタ :動的フィルタは、特定のトラフィック フローを関連する Guard の保護モジュールに誘導します。Guard は、トラフィック フローを分析した結果として動的フィルタを作成します。この一連のフィルタは、ゾーンのトラフィックおよび特定の DDoS 攻撃に合せて継続的に調整されます。動的フィルタは有効期間が限定されており、攻撃が終了すると消去されます。詳細については、「動的フィルタの設定」を参照してください。
表 7-1 に、Guard モジュールのフィルタ システムを示します。
ユーザのアクションや、リモートのネットワーク検知 DDoS 要素(Cisco Traffic Anomaly Detector Module など)によってゾーンの保護がイネーブルになると、Guard はゾーンのトラフィックを分析します。
Guard は、ゾーンに流れるトラフィックのレートを監視します。定義済みのレートを超過するトラフィックはドロップされ、正当なトラフィックはゾーンに転送されます。Guard は、ゾーンのトラフィックの統計分析を行い、クローズドループのフィードバック サイクルを制御して、動的に変化するゾーンのトラフィック特性や変化する DDoS 攻撃のタイプに合せて保護措置を調整します。
トラフィック フローの統計分析を行うために、Guard は、特定のトラフィック タイプの処理に関する定義を持っています。これらの定義をポリシーといいます。ポリシーは、トラフィック フローを持続的に測定し、特定のトラフィック フローが悪意のあるものまたは異常であると判断すると、そのフローに対してアクションを実行します。このアクションは、フローがポリシーのしきい値を超過すると発生します。
Guard モジュールは異常なトラフィックを識別すると、次のように動作します。
1. 攻撃を処理するアクションが設定された動的フィルタの作成を開始する。Guard モジュールは、デフォルトでは、すべてのトラフィックをユーザ フィルタに誘導する最初の動的フィルタを追加します。Guard モジュールが十分な時間をかけて攻撃を分析するまでの間、ユーザ フィルタは新たに発生する DDoS 攻撃に対して最初の防御策を提供します。
2. Guard モジュール内部のトラフィック フローを変更する。異常なトラフィックは、破線で示されているように、コンパレータに流れます。コンパレータは、動的フィルタとユーザ フィルタから入力を受け取ります。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、 提案された中で最も強力な保護措置を選択します。 そして、認証のためにトラフィックを関連する保護モジュールに誘導します。
動的フィルタは有効期間が限定されており、攻撃が終了すると消去されます。デフォルトでは、ユーザがゾーンの保護を非アクティブにするまで Guard モジュールはゾーンを保護します。
フィルタが処理するトラフィック フローを設定する必要があります。 表 7-1 に、フィルタのフローの引数を説明します。
詳細については、「バイパス フィルタの設定」、「ユーザ フィルタの設定」、および「動的フィルタの設定」の各項を参照してください。
表 7-2 に、フィルタの show コマンドのフィールドを説明します。
詳細については、「バイパス フィルタの表示」、「ユーザ フィルタの表示」、および「動的フィルタの表示」を参照してください。
|
|
---|---|
フィルタが断片化されたトラフィックを処理するかどうかを指定します。 • yes :フィルタは断片化されたトラフィックを処理します。 |
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
フレックスコンテンツ フィルタを使用すると、パケット ヘッダーのフィールドまたはパケット ペイロードのパターンに基づいて、ゾーン トラフィックをフィルタリングできます。着信トラフィックに現れているパターンに基づいて攻撃を識別できます。それらのパターンでは、既知のワームまたは一定のパターンを持つフラッド攻撃が識別可能です。ただし、フレックスコンテンツ フィルタはリソースを大量に消費します。フレックスコンテンツ フィルタはパフォーマンスに影響を及ぼす可能性があるため、十分に注意して使用することをお勧めします。特定のポートに送信される TCP トラフィックなど、動的フィルタによって識別できる特定の攻撃からの保護にフレックスコンテンツ フィルタを使用する場合は、動的フィルタを使用してトラフィックをフィルタリングすることをお勧めします。
フレックスコンテンツ フィルタは、目的のパケット フローをカウントまたはドロップする場合、および特定の悪意のあるトラフィックの送信元を識別する場合に使用します。
フレックスコンテンツ フィルタは、バークリー パケット フィルタとパターン フィルタを組み合せたもので、豊富なフィルタリング機能を持っています。
フレックスコンテンツ フィルタは、行番号の昇順でアクティブになります。したがって、新しいフレックスコンテンツ フィルタを追加する場合には、リストの適切な位置に配置することが重要です。
トラフィックが drop アクションを持つフレックスコンテンツ フィルタに一致すると、Guard モジュールはフレックスコンテンツ フィルタのアクティブ化を停止します。
フレックスコンテンツ フィルタを設定するには、次の手順を実行します。
ステップ 1 フレックスコンテンツ フィルタのリストを表示して、リスト内で新しいフィルタを追加する位置を確認します。詳細については、「フレックスコンテンツ フィルタの表示」を参照してください。
ステップ 2 現在の行番号が連続したものである場合は、新しいフレックスコンテンツ フィルタを挿入できるようにフレックスコンテンツ フィルタの番号を順に増加させます。次のコマンドを入力します。
]]
表 7-3 に、 flex-filter renumber コマンドの引数を示します。
|
|
---|---|
(オプション)フレックスコンテンツ フィルタ リストの新しい開始番号を示す 1 ~ 9,999 の整数。デフォルトは 10 です。 |
|
(オプション)フレックスコンテンツ フィルタの各行番号の増分を指定する 1 ~ 999 の整数。デフォルトは 10 です。 |
ステップ 3 (オプション)進行中の攻撃または以前記録した攻撃のパターン式をフィルタリングする場合、Guard モジュールをアクティブ化し、 show packet-dump signatures コマンドを使用して攻撃のシグニチャを生成することができます。詳細については、「パケットダンプ キャプチャ ファイルからの攻撃シグニチャの生成」を参照してください。
ステップ 4 新しいフレックスコンテンツ フィルタを追加します。次のコマンドを入力します。
表 7-4 に、 flex-filter コマンドの引数とキーワードを示します。
|
|
---|---|
1 ~ 9,999 の固有な番号。行番号はフィルタの ID で、これによって複数のフレックスコンテンツ フィルタの優先順位が定義されます。Guard モジュールは、行番号の昇順でフィルタを操作します。 |
|
フィルタの状態をイネーブルに設定します。フィルタはトラフィックに関連付けられ、一致が検出されるとアクションを実行します。 |
|
特定のプロトコルのフローを処理します。すべてのプロトコルを示すには、アスタリスク( * )を使用します。0 ~ 255 の整数を入力します。 指定可能なプロトコル番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
特定の宛先ポートに向かうトラフィックを処理します。0 ~ 65,535 の整数を入力します。特定のポート番号を定義するには、特定のプロトコル番号を定義する必要があります。 すべての宛先ポートを示すには、アスタリスク( * )を使用します。プロトコル番号を 6(TCP)または 17(UDP)に設定する場合のみ、アスタリスクを使用できます。 指定可能なポート番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
パケット ペイロードの先頭から、パターン マッチングを開始する位置までのオフセット(バイト単位)。デフォルトは 0(ペイロードの先頭)です。このオフセットは、 pattern フィールドに適用されます。0 ~ 1800 の整数を入力します。 show packet-dump signatures コマンドの出力からパターンをコピーする場合は、この引数をコマンドの出力の Start Offset フィールドからコピーします。 |
|
パケット ペイロードの先頭から、パターン マッチングを終了する位置までのオフセット(バイト単位)。デフォルトは、パケット長(ペイロードの末尾)です。このオフセットは、 pattern フィールドに適用されます。0 ~ 1800 の整数を入力します。 show packet-dump signatures コマンドの出力からパターンをコピーする場合は、この引数をコマンドの出力の End Offset フィールドからコピーします。 |
|
パケットと照合する式を指定します。式はバークリー パケット フィルタの形式です。詳細および設定の例については、「TCPDump 式の構文について」を参照してください。 |
|
パケット ペイロードと照合する正規表現のデータ パターンを指定します。詳細については、「パターン式の構文について」を参照してください。 Guard モジュールをアクティブ化し、 show packet-dump signatures コマンドを使用してシグニチャを生成することができます。「パケットダンプ キャプチャ ファイルからの攻撃シグニチャの生成」を参照してください。 |
フレックスコンテンツ フィルタは、次の順序でフィルタリング基準を適用します。
• フレックスコンテンツ フィルタは最初に、 protocol および port に基づいてパケットをフィルタリングする。
• 次に、 tcpdump-expression を適用する。
• フレックスコンテンツ フィルタは、残りのパケットに対して pattern-expression を使用してパターン マッチングを実行する。
フィルタの状態はいつでも変更できます。詳細については、「フレックスコンテンツ フィルタの状態の変更」を参照してください。
フィルタ アクションはいつでも変更できます。詳細については、「フレックスコンテンツ フィルタの削除」を参照してください。
user@GUARD-conf-zone-scannet#
flex-content-filter enabled count * * expression “ip[6:2] & 0x1fff=0” pattern TCPDump 式は、パケットを照合する式を指定します。式はバークリー パケット フィルタの形式です。
(注) 宛先ポートとプロトコルに基づいてトラフィックをフィルタリングする場合は、tcpdump の式を使用できます。ただし、パフォーマンスへの影響を考慮し、これらの基準でトラフィックをフィルタリングする場合は、フレックスコンテンツ フィルタで protocol 引数と port 引数を使用することをお勧めします。
表 7-5 に、フレックスコンテンツ フィルタの式のパラメータの説明を示します。
|
|
---|---|
特定の式に適合するトラフィック。詳細については、 表 7-6 を参照してください。 |
表 7-6 に、フレックスコンテンツ フィルタの式の規則の説明を示します。
• プリミティブとオペレータを小カッコで囲んだグループ(小カッコはシェルの特殊文字であるため、エスケープする必要があります)。
否定は、最も高い優先度を持ちます。代替と連結の優先順位は同じで、左から右に関連付けられます。連結には、並置ではなく、明示的な and トークンが必要です。キーワードなしで識別子を指定した場合は、最後に指定されたキーワードが使用されます。
バークリー パケット フィルタの設定オプションの詳細については、http://www.freesoft.org/CIE/Topics/56.htm を参照してください。
次の 例は、断片化されていないデータグラムと断片化されたデータグラムのフラグメント 0 のみをカウントする方法を示しています。このフィルタは、TCP と UDP のインデックス操作に暗黙的に適用されます。たとえば、tcp[0] は常に TCP ヘッダーの最初のバイトを意味し、中間のフラグメントの最初のバイトを意味することはありません。
user@GUARD-conf-zone-scannet#
flex-content-filter enabled count * * expression ip[6:2]&0x1fff=0 pattern ““
次の例は、すべての TCP RST パケットをドロップする方法を示しています。
user@GUARD-conf-zone-scannet#
flex-content-filter enabled drop * * expression tcp[13]&4!=0 pattern ““
次の例は、エコー要求およびエコー応答(ping)ではないすべての ICMP パケットをカウントする方法を示しています。
user@GUARD-conf-zone-scannet#
flex-content-filter enabled count * * expression “icmp [0]!=8 and icmp[0] != 0” pattern ““
次の例は、ポート 80 を宛先とし、ポート 1000 を送信元としないすべての TCP パケットをカウントする方法を示しています。
user@GUARD-conf-zone-scannet#
flex-content-filter enabled count * * expression “tcp and dst port 80 and not src port 1000” pattern ““
パターン(正規表現)は、一連の文字を含んだ文字列を記述したものです。パターンには、パターンの要素を実際に列挙するのではなく、一連の文字列を記述します。パターンは、一般文字と特殊文字で構成されます。一般文字には、特殊文字とは見なされない印刷可能な ASCII 文字が含まれます。特殊文字は、どのようなマッチングを実行するのかを示します。フレックスコンテンツ フィルタは、このパターンをパケットの内容(パケットのペイロード)と照合します。たとえば、 version 3.1 、 version 4.0 、および version 5.2 の 3 つの文字列は、 version .*\..* というパターンで記述されます。
特殊文字とは、特殊な意味を持つ文字で、Guard モジュールが式に対してどのような照合を実行するのかを指定する文字です。 表 7-7 で、使用できる特殊文字について説明します。
デフォルトでは、パターンでは大文字と小文字が区別されます。パターン式で大文字と小文字が区別されないようにするには、 ignore-case キーワードを使用します。「フレックスコンテンツ フィルタの追加」を参照してください。
次の例は、パケットのペイロードに特定のパターンが含まれているパケットをドロップする方法を示しています。この例のパターンは、Slammer ワームから抽出されたものです。プロトコル、ポート、および tcpdump 式は特定のものでなくてもかまいません。
user@GUARD-conf-zone-scannet#
flex-content-filter enabled drop * * expression “ “ pattern \x89\xE5Qh\.dllhel32hkernQhounthickChGetTf\xB9llフレックスコンテンツ フィルタを表示するには、ゾーン設定モードで次のコマンドを入力します。
表 7-8 に、 show flex-content-filters コマンドの出力フィールドを示します。
|
|
---|---|
パケット ペイロードの先頭から、パターン マッチングを開始する位置までのオフセットを指定します(バイト単位)。(このオフセットは、 pattern フィールドに適用されます)。 |
|
パケット ペイロードの先頭から、パターン マッチングを終了する位置までのオフセットを指定します(バイト単位)。(このオフセットは、 pattern フィールドに適用されます)。 |
|
フィルタが一致するパターンで大文字と小文字が区別されるかどうかを示します(この引数は、 pattern フィールドに適用されます)。 |
|
パケットと照合する式をバークリー パケット フィルタ形式で指定します。TCPDump 式の構文については、「TCPDump 式の構文について」を参照してください。 |
|
パケット ペイロードと照合する正規表現のデータ パターンを指定します。パターン フィルタの構文については、「パターン式の構文について」を参照してください。 |
|
フレックスコンテンツ フィルタを削除できます。または、フレックスコンテンツ フィルタをディセーブルにして、Guard モジュールがフィルタの式に基づいてパケットをフィルタリングしないように設定できます。詳細については、「フレックスコンテンツ フィルタの状態の変更」を参照してください。
フレックスコンテンツ フィルタを削除するには、次の手順を実行します。
ステップ 1 フレックスコンテンツ フィルタのリストを表示し、削除するフレックスコンテンツ フィルタの行番号を確認します。詳細については、「フレックスコンテンツ フィルタの表示」を参照してください。
ステップ 2 フレックスコンテンツ フィルタを削除します。次のコマンドを入力します。
row-num 引数には、フレックスコンテンツ フィルタの行番号を指定します。すべてのフレックスコンテンツ フィルタを削除するには、アスタリスク( * )を入力します。
フレックスコンテンツ フィルタの状態を変更できます。フレックスコンテンツ フィルタをディセーブルにして、Guard モジュールがフィルタの式に基づいてパケットをフィルタリングしないように設定できます。フィルタは Guard モジュールのフレックスコンテンツ フィルタ リストに残ったままになります。このようにして、ある種類のトラフィックに対する Guard モジュールのフィルタリングを停止することができます。その後で、もう一度指定されたトラフィックをフィルタリングするように Guard モジュールを設定できます。このとき、フィルタを再設定する必要はありません。また、フレックスコンテンツ フィルタを削除することもできます。詳細については、「フレックスコンテンツ フィルタの削除」を参照してください。
フレックスコンテンツ フィルタの状態を変更するには、次の手順を実行します。
ステップ 1 フレックスコンテンツ フィルタのリストを表示し、状態を変更するフレックスコンテンツ フィルタの行番号を確認します。詳細については、「フレックスコンテンツ フィルタの表示」を参照してください。
ステップ 2 フレックスコンテンツ フィルタの状態を変更します。次のコマンドを入力します。
row-num 引数には、フレックスコンテンツ フィルタの行番号を指定します。
バイパス フィルタは、Guard の保護メカニズムを利用しない保護ポリシーの採用をサポートするためのフィルタです。バイパス フィルタは、Guard の動的フィルタ、分析、基本、強化の各保護モジュール、およびレート リミット保護モジュールで特定のトラフィック フローを処理しないようにする場合に使用します。たとえば、信頼されたトラフィック フローについては、スプーフィング防止メカニズムおよびゾンビ防止メカニズムを含めて Guard の保護モジュールをバイパスするように指定できます。バイパス フィルタを使用すると、信頼されたトラフィックを Guard の保護メカニズムの対象から除外して、ゾーンに直接送信できるようになります。
(注) バイパス フィルタで処理されるトラフィックは、レート リミット モジュールを経由しません。
バイパス フィルタを追加するには、関連するゾーン設定モードで次のコマンドを入力します。
bypass-filter row-num src-ip [ ip-mask ] protocol dest-port [ fragments-type ]
表 7-9 に、 bypass-filter コマンドの引数を示します。
|
|
---|---|
1 ~ 9,999 の固有な番号を割り当てます。行番号はフィルタの ID で、これによって複数のバイパス フィルタの優先順位が定義されます。Guard モジュールは、行番号の昇順でフィルタを操作します。 |
|
|
フィルタリングを実行する対象のフロー。 src-ip、ip-mask、protocol、dest-port 、 および fragments-type の詳細については、 表 7-1 を参照してください。 |
(注) fragments-type と dest-port を両方指定することはできません。fragments-type を設定する場合は、dest-port に * を入力してください。
バイパス フィルタを表示するには、関連するゾーン設定モードで次のコマンドを入力します。
表 7-10 に、 show bypass-filters コマンドの出力フィールドを示します。
|
|
---|---|
フィルタリングを実行する対象のフローを示します。 Source IP、Source Mask、Proto、DPort、Frg の詳細については、 表 7-2 を参照してください。 |
|
ステップ 1 バイパス フィルタのリストを表示し、削除するバイパス フィルタの行番号を確認します。詳細については、前の項、「バイパス フィルタの表示」を参照してください。
ステップ 2 バイパス フィルタを削除します。次のコマンドを入力します。
row-num 引数には、バイパス フィルタの行番号を指定します。すべてのバイパス フィルタを削除するには、アスタリスク( * )を入力します。
ユーザ フィルタは、特定のトラフィック フローを関連する Guard の保護モジュールに誘導します。このフィルタは、異常なトラフィックや悪意のあるトラフィックが検出されたときに Guard が最初に実行するアクションを定義します。
ゾーン設定には、多様なタイプの攻撃を処理できるオンデマンドの保護用に設定された、デフォルトのユーザ フィルタのセットが含まれています。ユーザ フィルタを変更すると、Guard の保護モジュールの機能をカスタマイズし、攻撃の疑いがある場合の Guard による特定のトラフィック フローの処理規則を設定できます。ユーザ フィルタは、特定のトラフィック フローを関連する保護モジュール、およびスプーフィング防止メカニズムやゾンビ防止メカニズムに誘導したり、ドロップしたりできます。
Guard は、ゾーンが宛先になっているトラフィックを継続的に分析します。異常なトラフィック パターンを検出すると、攻撃の処理方法を定義する動的フィルタの作成を開始します。Guard モジュールは、デフォルトでは、すべてのトラフィックをユーザ フィルタに誘導する最初の動的フィルタを追加します。Guard モジュールが十分な時間をかけて攻撃を分析するまでの間、ユーザ フィルタは新たに発生する DDoS 攻撃に対して最初の防御策を提供します。
Guard モジュールはユーザ フィルタと動的フィルタの両方を調べた後で、当該トラフィック フローの処理方法を決定します。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、 提案された中で最も強力な保護措置を選択します。 そして、認証のためにトラフィックを関連する保護モジュールに誘導します。動的フィルタまたはユーザ フィルタが実行するアクションは、重大度レベルの大きい順に、drop、strong、basic、permit です。アクション redirect/zombie および block-unauthenticated が指定された動的フィルタは、同じタイプのトラフィックを処理するユーザ フィルタがあっても適用されます。動的フィルタは Guard モジュールの認証メカニズムに影響しますが、トラフィック フローには直接影響を及ぼさないためです。
ユーザ フィルタは、行番号の昇順でアクティブになります。したがって、新しいユーザ フィルタを追加する場合には、リストの適切な位置に配置することが重要です。
表 7-11 に、ユーザ フィルタで実行可能なアクションを説明します。
ステップ 1 ユーザ フィルタのリストを表示して、リスト内で新しいフィルタを追加する位置を確認します。詳細については、「ユーザ フィルタの表示」を参照してください。
ステップ 2 現在の行番号が連続したものである場合は、新しいユーザ フィルタを挿入できるようにユーザ フィルタの番号を順に増加させます。次のコマンドを入力します。
]]
表 7-12 に、 user-filter renumber コマンドの引数を示します。
|
|
---|---|
ステップ 3 新しいユーザ フィルタを追加します。次のコマンドを入力します。
fragments-type
] [rate-limit rate burst units]
表 7-13 に、 user-filter コマンドの引数を示します。
|
|
---|---|
1 ~ 9,999 の固有な番号。行番号はフィルタの ID で、これによって複数のユーザ フィルタの優先順位が定義されます。Guard モジュールは、行番号の昇順でフィルタを操作します。 |
|
特定のトラフィック タイプに対してフィルタが実行するアクションを指定します。詳細については、 表 7-11 を参照してください。 |
|
フィルタリングを実行する対象のフロー。 src-ip、ip-mask、protocol、dest-port 、 および fragments-type の詳細については、 表 7-1 を参照してください。 |
|
レートの制限を指定する 64 より大きい整数。ユーザ フィルタは、トラフィックをこのレートに制限します。単位は、 units パラメータで指定されます。デフォルトでは、フィルタのトラフィック レートは制限されません。 rate リミットは、最大で burst リミットの 10 倍まで指定可能です。 |
|
トラフィックのバースト リミットを指定する 64 より大きい整数。単位は、 units パラメータで指定される単位に応じて、ビット、キロビット、キロパケット、メガビット、またはパケットになります。 burst リミットは、最大で rate リミットの 8 倍まで指定可能です。 |
|
次の例は、ユーザ フィルタの番号を 10 から開始してそれぞれ 5 ずつ変更し、行番号 12 にユーザ フィルタを追加する方法を示しています。このフィルタは、プロトコルが 6 (TCP)で宛先ポート 25 (SMTP)に向かうすべての送信元 IP アドレスからのトラフィックを対象とします。また、このフィルタでは、特定のフローは許可されますが、フロー レートは 600 pps に、バースト サイズは 400 パケットにそれぞれ制限されています。
user@GUARD-conf-zone-scannet# user-filter renumber 10 5
user@GUARD-conf-zone-scannet# user-filter 12 permit * 6 25 rate-limit 600 400 pps
ユーザ フィルタは、ゾーンの設定の一部です。ユーザ フィルタを表示するには、ゾーンのプロンプトで、 show コマンドまたは show running-config コマンドを使用します。
ヒント ユーザ フィルタの設定をディスプレイの先頭に表示するには、show コマンドまたは show running-config コマンドを | begin USER FILTERS オプションを指定して使用します。
表 7-14 に、 show コマンドの出力におけるユーザ フィルタのフィールドを説明します。
|
|
---|---|
フィルタリングを実行する対象のフローを示します。 Source IP、Source Mask、Proto、DPort、Frg の詳細については、 表 7-2 を参照してください。 |
|
フィルタが特定のトラフィック タイプに対して実行するアクションを示します。詳細については、 表 7-11 を参照してください。 |
|
ユーザ フィルタで処理可能なトラフィック レートの制限を示します。レートは、 Units フィールドで指定された単位で表示されます。 |
|
フィルタで特定のフローに対して許可されるトラフィックのバースト リミットを示します。単位は、 Units フィールドで指定されるレートの単位に応じて、ビット、キロビット、キロパケット、メガビット、またはパケットになります。 |
|
ステップ 1 ユーザ フィルタのリストを表示し、削除するユーザ フィルタの行番号を確認します。詳細については、前の項、「ユーザ フィルタの表示」を参照してください。
ステップ 2 フィルタを削除します。次のコマンドを入力します。
row-num 引数には、ユーザ フィルタの行番号を指定します。すべてのユーザ フィルタを削除するには、 * を入力します。
user@GUARD-conf-zone-scannet# no user-filter *
Guard は、トラフィック フローを分析した結果として動的フィルタを作成します。このフィルタは、特定のトラフィック フローを関連する保護モジュールに誘導します。この一連のフィルタは Guard モジュールによって、ゾーンのトラフィックおよび特定の DDoS 攻撃に合せて継続的に調整されます。動的フィルタは有効期間が限定されており、攻撃が終了すると消去されます。
Guard は、トラフィックの異常を検出する中で、ゾーンが宛先になっているトラフィックを継続的に分析します。フローがポリシーのしきい値を超過すると、異常が発見されます。異常なトラフィック パターンを検出すると、攻撃の処理方法を定義する動的フィルタの作成を開始します。
Guard モジュールは、すべてのトラフィックをユーザ フィルタに誘導する最初の動的フィルタを追加します。Guard モジュールが十分な時間をかけて攻撃を分析するまでの間、ユーザ フィルタは新たに発生する DDoS 攻撃に対して最初の防御策を提供します。
Guard モジュールはユーザ フィルタと動的フィルタの両方を調べた後で、当該トラフィック フローの処理方法を決定します。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、 提案された中で最も強力な保護措置を選択します。 そして、認証のためにトラフィックを関連する保護モジュールに誘導します。動的フィルタまたはユーザ フィルタが実行するアクションは、重大度レベルの大きい順に、drop、strong、basic、permit です。アクション redirect/zombie および block-unauthenticated が指定された動的フィルタは、同じタイプのトラフィックを処理するユーザ フィルタがあっても適用されます。動的フィルタは Guard モジュールの認証メカニズムに影響しますが、トラフィック フローには直接影響を及ぼさないためです。
動的フィルタにアクセスし、独自のニーズに合うように設定することができます。
表 7-15 に、動的フィルタで実行可能なさまざまなアクションを説明します。
|
|
---|---|
ユーザ フィルタにトラフィックを転送します。デフォルトのユーザ フィルタを変更した場合は、これらの動的フィルタを処理するユーザ フィルタが存在することを確認してください。 |
|
DNS のスプーフィング防止メカニズムで非認証と定義された、DNS UDP サーバに向かうトラフィック フロー(プロトコルが UDP、ポートが 53 のもの)をドロップします。 |
|
動的フィルタは、アクティブな状態が一定時間持続するよう設定されています。動的フィルタのタイムアウトに関するパラメータは、フィルタがどのように作成されたかによって、次のいずれかの方法で設定されます。
• ゾーン ポリシーによって作成された動的フィルタ:動的フィルタのタイムアウトは、ポリシーのタイムアウトに設定されています。ポリシーによって作成される追加の動的フィルタのタイムアウトを変更するには、動的フィルタが生成される原因となったポリシーのタイムアウトを変更します。ポリシー設定モードで timeout コマンドを使用します。
• ユーザ定義の動的フィルタ:動的フィルタのタイムアウトは、 dynamic-filter コマンドの exp-time 引数を使用して定義します。
動的フィルタのタイムアウト期限が満了すると、Guard は、現在のトラフィックの状態に基づいて動的フィルタを非アクティブにするかどうかを判断します。Guard が動的フィルタを非アクティブにしないと決定した場合、フィルタはさらにある期間アクティブのままになります。詳細については、「動的フィルタの非アクティブ化」を参照してください。
動的フィルタを追加または削除し、ニーズに合せて設定することができます。動的フィルタは、Guard モジュールによって現在保護されているゾーンに対してだけ追加することができます。Guard モジュールは、ゾーンの保護が終了すると、動的フィルタを消去します。
dynamic-filter action { exp-time | forever } src-ip [ ip-mask ] protocol dest-port [ fragments-type ]
複数の動的フィルタを追加するには、 dynamic-filter コマンドを複数使用します。
表 7-16 に、 dynamic-filter コマンドの引数を示します。
|
|
---|---|
|
フィルタが特定のトラフィック フローに対して実行するアクション。詳細については、 表 7-15 を参照してください。 |
|
フィルタリングを実行する対象のフロー。 src-ip、ip-mask、protocol、dest-port 、 および fragments-type の詳細については、 表 7-1 を参照してください。 |
Guard モジュールによって作成された動的フィルタを表示するには、 show dynamic-filters コマンドを使用します。このコマンドには、次のオプションが用意されています。
• show dynamic-filters [details]:すべての動的フィルタのリストを表示します。
• show dynamic-filters dynamic-filter-id [ details ]:特定の動的フィルタを 1 つ表示します。
• show dynamic-filters sort {action | exp-time | id | filter-rate} :すべての動的フィルタのソートされたリストを表示します。
(注) 保留動的フィルタを表示するには、show recommendations コマンドを使用します。詳細については、第9章「インタラクティブ保護モード」を参照してください。
表 7-17 に、 show dynamic-filters コマンドの引数を示します。
(注) Guard モジュールは、最大 1,000 個の動的フィルタを表示します。1,000 を超える動的フィルタがアクティブになっている場合は、ログ ファイルまたはゾーンのレポートで、動的フィルタに関するすべてのリストを確認してください。
表 7-18 に、 show dynamic-filters コマンドの出力フィールドを説明します。
|
|
---|---|
フィルタがトラフィック フローに対して実行するアクションを示します。詳細については、 表 7-15 を参照してください。 |
|
フィルタがアクティブになっている時間を示します。この時間が経過すると、フィルタは filter-termination コマンドを使用して定義済みのしきい値に従って削除される場合があります。 |
|
フィルタリングを実行する対象のフローを示します。 Source IP、Source Mask、Proto、DPort、Frg の詳細については、 表 7-2 を参照してください。 |
|
表 7-19 に、 show dynamic-filters details コマンドの追加の出力フィールドを説明します。
|
|
---|---|
軽減が図られた攻撃フローの特性を示します。Dynamic Filters テーブルに表示される軽減が図られた攻撃フローの範囲は、攻撃フローの範囲より広い場合があります。たとえば、ポート 80 に対するスプーフィングを利用しない攻撃では、ポート 80 からのトラフィックだけではなく、該当する送信元 IP アドレスからのすべての TCP トラフィックがブロックされます。フロー フィールドの詳細については、 表 7-2 を参照してください。 |
|
特定の動的フィルタを作成したポリシーを示します。詳細については、 第8章「ポリシー テンプレートとポリシーの設定」 を参照してください。 |
動的フィルタを削除することができます。ただし、削除が有効になる期間は限られています。Guard モジュールは、ゾーンが保護されている限り、継続的に新しい動的フィルタを設定するためです。
ステップ 1 動的フィルタのリストを表示し、削除する動的フィルタの ID を確認します。詳細については、前の項、「動的フィルタの表示」を参照してください。
ステップ 2 関連する動的フィルタを削除します。次のコマンドを入力します。
dynamic-filter-id 引数には、動的フィルタの ID を指定します。すべての動的フィルタを削除するには、アスタリスク( * )を入力します。
必要のない動的フィルタが再作成されないようにするには、次のいずれかのアクションを実行します。
• 動的フィルタを作成するポリシーを非アクティブにします(詳細については、「ポリシーの状態の変更」を参照)。不要な動的フィルタを作成したポリシーを発見するには、「動的フィルタの表示」を参照してください。
• 目的のトラフィック フロー用のバイパス フィルタを設定します(詳細については、「バイパス フィルタの設定」を参照)。
• 不要な動的フィルタを作成したポリシーのしきい値を大きくします(詳細については、「ポリシーのしきい値の設定」を参照)。
動的フィルタのタイムアウト期限が満了すると、Guard は、現在のトラフィックの状態に基づいて動的フィルタを非アクティブにするかどうかを判断します。Guard が動的フィルタを非アクティブにしないと決定した場合、フィルタはさらにある期間アクティブのままになります。
動的フィルタは、次のいずれか 1 つの条件に当てはまる場合に非アクティブになります。
• ゾーンの悪意のあるトラフィック レートの合計(スプーフィングされたトラフィックとドロップされたトラフィックの合計と等しい)が、zone- malicious-rate 終了しきい値以下である(この項で次に示すコマンドを参照)。
• 動的フィルタでトラフィック レートが測定され(フィルタのレート カウンタに N/A と表示されていない)、 かつ filter-rate 終了しきい値(この項で次に示すコマンドを参照)が次の 両方 の値以上である。
–ユーザが設定した期間内の動的フィルタの平均トラフィック レートこの期間は、ポリシーのタイムアウト パラメータで定義されます。詳細については、「ポリシーのタイムアウトの設定」を参照してください。
(注) アクション to-user-filters、block-unauthenticated、redirect/zombie、または notify が指定された動的フィルタでは、トラフィック レートは測定されません。
ゾーンの悪意のあるトラフィックのしきい値を設定するには、次のコマンドを入力します。
filter-termination zone-malicious-rate threshold
threshold 引数には、ゾーンの悪意のあるトラフィックのしきい値を pps 単位で指定します。このトラフィックは、スプーフィングされたトラフィックとドロップされたトラフィックの合計で構成されます。デフォルト値は 50 pps です。
動的フィルタのレート終了しきい値を設定するには、次のコマンドを入力します。
filter-termination filter-rate threshold
threshold 引数には、動的フィルタのトラフィックのしきい値を pps 単位で指定します。デフォルト値は 2 pps です。
user@GUARD-conf-zone-scannet# filter-termination zone-malicious-rate 200
user@GUARD-conf-zone-scannet# filter-termination filter-rate 50