この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、高度なゾーンのフィルタの設定作業を実施する方法について説明します。WBM を使用すると、ゾーンのトラフィックを処理するためのカスタム フィルタ設定を設計できます。
ゾーンを保護する場合やゾーン トラフィックをラーニングする場合、Guard モジュールは、ゾーン フィルタを使用してトラフィック フローを管理します。ゾーン フィルタを使用すると、Guard モジュールで次の機能を実行できます。
• 基本または強化保護レベルを適用して悪意のあるトラフィックと正当なトラフィックを区別する
• Guard モジュールのゾーン保護機能をバイパスして、トラフィックをゾーンに直接転送する
トラフィック管理と DDoS 攻撃保護に関するゾーン固有の規則を Guard モジュールに提供する、一連のゾーン フィルタを設定できます。ゾーンのフィルタの設定を変更すると、その変更がゾーンの設定に保存され、ただちに有効になります。Guard モジュールは、次のタイプのトラフィック フィルタを使用します。
• ユーザ フィルタ:Guard モジュールには、トラフィック フローに特定の保護レベルを適用する、一連の静的ユーザ フィルタがあらかじめ設定されています。ユーザ フィルタは、さまざまなタイプの攻撃に対応するように設計されています。
攻撃の進行中、Guard モジュールは、ユーザ フィルタと動的フィルタ(下記参照)の両方を使用してゾーン保護を管理します。ゾーンに対する攻撃が発生した場合、Guard モジュールは、攻撃の進行中に保護プロセスを管理するアクションの設定対象となる動的フィルタの作成を開始します。Guard モジュールは、十分な時間をかけて攻撃を分析するまで、トラフィック フローをユーザ フィルタに誘導するアクションを動的フィルタに設定します。ユーザ フィルタは、攻撃に対する最初の防御手段となって、ユーザ フィルタが持つアクションをトラフィックに適用します。攻撃の分析が完了すると、Guard モジュールは、トラフィック フローに直接適用する独自のアクションを持つ動的フィルタの作成を開始します。ユーザ フィルタと動的フィルタの両方をトラフィック フローに適用する場合、Guard モジュールは、より厳しいアクションを持つフィルタを選択します。
• 動的フィルタ:Guard モジュールは、攻撃の進行中にトラフィック フローを分析した結果として、動的フィルタを作成します。ユーザ フィルタと同様に、動的フィルタも特定の保護レベルをトラフィック フローに適用します。Guard モジュールは、動的フィルタを、ゾーンのトラフィックおよび特定の DDoS 攻撃に合せて継続的に調整します。動的フィルタは有効期間が限定されており、攻撃が終了すると Guard モジュールが消去します。動的フィルタは、ユーザが追加または削除できます。
• バイパス フィルタ:ユーザ定義のバイパス フィルタは、Guard モジュールが特定のトラフィック フローを処理して、トラフィックをゾーンに直接転送することを防止します。たとえば、信頼されたトラフィック フローについては、スプーフィング防止機能およびゾンビ防止機能を含めて Guard モジュールの保護機能をバイパスするように指定できます。
• フレックスコンテンツ フィルタ:ユーザ定義のフレックスコンテンツ フィルタを使用すると、Guard モジュールで特定のトラフィック フローのパケットをカウントまたはドロップできます。また、このフィルタは、悪意のあるトラフィックの送信元を識別するときに使用できます。このバークリー パケット フィルタは、IP ヘッダーおよび TCP ヘッダーのフィールドに基づいたフィルタリングや、コンテンツのバイト数に基づいたフィルタリングなど、柔軟なフィルタリング機能を提供します。特定のトラフィック フローにフレックスコンテンツ フィルタを設定できます。設定できるフレックスコンテンツ フィルタは、ゾーンごとに 1 つのみです。フレックスコンテンツ フィルタはリソース消費量が多く、パフォーマンスに影響を及ぼす可能性があるため、十分に注意して使用してください。
バークリー パケット フィルタの設定オプションの詳細については、http://www.freesoft.org/CIE/Topics/56.htm を参照してください。
次の手順は、Guard モジュールのユーザ フィルタを追加または削除する方法を示しています。Guard モジュールはユーザ フィルタを、ユーザ フィルタ リストでの表示順にアクティブにします(図 5-1 を参照)。新しいユーザ フィルタを追加するときは、リスト内での新しいフィルタの配置場所を把握しておくことが重要です。
新しいユーザ フィルタを追加するには、次の手順を実行します。
ステップ 1 ナビゲーション ペインでゾーンを選択します。ゾーンのメイン メニューが表示されます。
ステップ 2 ゾーンのメイン メニューの Configuration > User filters を選択します。ゾーンのユーザ フィルタのリストが表示されます(図 5-1 を参照)。
ステップ 3 Add をクリックします。Add Filter Step 1 画面が表示され、ユーザ フィルタのリストが示されます。
ステップ 4 Insert カラムで、ユーザ フィルタを挿入する位置の下にある行をクリックします。Insert Here テキストが表示され、選択した行の上に新しいユーザ フィルタが挿入されることが示されます。
ステップ 5 Next をクリックします。Add Filter Step 2 画面が表示され、User Filter Form が示されます。
ステップ 6 新しいユーザ フィルタのパラメータを設定します。 表 5-1 に、User Filter Form に表示されるフィルタ パラメータの説明を示します。
• OK :新しいユーザ フィルタの設定を保存します。User filters 画面が表示されます。
• Cancel:情報を保存せずに User Filters Form を終了します。 User filters 画面が表示されます。
ステップ 1 ナビゲーション ペインでゾーンを選択します。ゾーンのメイン メニューが表示されます。
ステップ 2 ゾーンのメイン メニューの Configuration > User filters を選択します。ゾーンのユーザ フィルタのリストが表示されます。
ステップ 3 削除するユーザ フィルタの隣にあるチェックボックスをオンにします。
ステップ 4 Delete をクリックします。ユーザ フィルタのリストからユーザ フィルタが削除されます。
次の手順は、Guard モジュールのバイパス フィルタを追加または削除する方法を示しています。ここに示す手順に従ってバイパス フィルタのリストを表示すると、バイパス フィルタでフィルタリングされた現在のバイパス フィルタ トラフィックのレートが、カウンタにパケット/秒(pps)単位で示されます。
ステップ 1 ナビゲーション ペインでゾーンを選択します。ゾーンのメイン メニューが表示されます。
ステップ 2 ゾーンのメイン メニューの Configuration > Bypass filters を選択します。Bypass filters 画面が表示されます。
ステップ 3 Add をクリックします。Add bypass filter 画面が表示されます。
ステップ 4 新しいバイパス フィルタのパラメータを設定します。 表 5-2 に、Bypass Filter Form に表示されるフィルタ パラメータの説明を示します。
• OK :新しいバイパス フィルタの設定を保存します。Bypass filters 画面が表示されます。
• Cancel:情報を保存せずに Bypass Filters Form を終了します。 Bypass filters 画面が表示されます。
ステップ 1 ナビゲーション ペインでゾーンを選択します。ゾーンのメイン メニューが表示されます。
ステップ 2 ゾーンのメイン メニューの Configuration > Bypass filters を選択します。Bypass filters 画面が表示されます。
ステップ 3 削除する各バイパス フィルタの隣にあるチェックボックスをオンにし、 Delete をクリックします。フィルタのリストからバイパス フィルタが削除されます。表示されているバイパス フィルタをすべて削除するには、Src IP の隣にあるチェックボックスをオンにし、 Delete をクリックします。
フレックスコンテンツ フィルタを使用すると、パケット ヘッダーのフィールドまたはパケット ペイロードのパターンに基づいて、ゾーン トラフィックをフィルタリングできます。着信トラフィックに現れているパターンに基づいて攻撃を識別できます。このようなパターンによって、一定のパターンを持つ既知のワームやフラッド攻撃を識別できます。ただし、フレックスコンテンツ フィルタはリソースを大量に消費します。フレックスコンテンツ フィルタはパフォーマンスに影響を及ぼす可能性があるため、十分に注意して使用することをお勧めします。特定のポートに送信される TCP トラフィックなど、動的フィルタによって識別できる特定の攻撃からの保護にフレックスコンテンツ フィルタを使用する場合は、動的フィルタを使用してトラフィックをフィルタリングすることをお勧めします。
フレックスコンテンツ フィルタは、豊富なフィルタリング機能を持つバークリー パケット フィルタとパターン フィルタを組み合せたものです。フレックスコンテンツ フィルタは、目的のパケット フローをカウントまたはドロップし、トラフィックの特定の悪意ある送信元を明らかにするために使用します。
フレックスコンテンツ フィルタは、次の順序でフィルタリング基準を適用します。
1. プロトコルと宛先ポートに基づいて、パケットをフィルタリングします。
3. 残ったパケットに対して、 パターン を使用してパターン マッチングを実行します。
フレックスコンテンツ フィルタの式には、パケットとのパターン マッチングに使用する式を指定します。この式は、バークリー パケット フィルタ形式を使用して定義します。
(注) 宛先ポートとプロトコルに基づいてトラフィックをフィルタリングする場合は、tcpdump の式を使用できます。ただし、パフォーマンスを考慮すると、これらの基準に基づいてトラフィックをフィルタリングする場合は、フレックスコンテンツ フィルタの protocol パラメータと port パラメータを使用することをお勧めします。
表 5-3 に、フレックスコンテンツ フィルタの式のパラメータの説明を示します。
|
|
---|---|
|
|
特定の式に適合するトラフィック。詳細については、 表 5-4 を参照してください。 |
表 5-4 に、フレックスコンテンツ フィルタの式の規則の説明を示します。
• プリミティブとオペレータを小カッコで囲んだグループ(小カッコはシェルの特殊文字であるため、エスケープする必要があります)。
否定は、最も高い優先度を持ちます。代替と連結の優先順位は同じで、左から右に関連付けられます。連結には、並置ではなく、明示的な and トークンが必要です。キーワードなしで識別子を指定した場合は、最後に指定されたキーワードが使用されます。
バークリー パケット フィルタの設定オプションの詳細については、http://www.freesoft.org/CIE/Topics/56.htm を参照してください。
次の 例は、断片化されていないデータグラムと断片化されたデータグラムのフラグメント 0 のみをカウントする方法を示しています。このフィルタは、TCP と UDP のインデックス操作に暗黙的に適用されます。たとえば、tcp[0] は常に TCP ヘッダーの最初のバイトを意味し、中間のフラグメントの最初のバイトを意味することはありません。
次の例は、すべての TCP RST パケットをドロップする方法を示しています。
次の例は、エコー要求およびエコー応答(ping)ではないすべての ICMP パケットをカウントする方法を示しています。
次の例は、ポート 80 を宛先とし、ポート 1000 を送信元としないすべての TCP パケットをカウントする方法を示しています。
パターン(正規表現)は、一連の文字を含んだ文字列を記述したものです。パターンには、パターンの要素を実際に列挙するのではなく、一連の文字列を記述します。パターンは、一般文字と特殊文字で構成されます。一般文字には、特殊文字とは見なされない印刷可能な ASCII 文字が含まれます。特殊文字は、どのようなマッチングを実行するのかを示します。フレックスコンテンツ フィルタは、このパターンをパケットの内容(パケットのペイロード)と照合します。たとえば、 version 3.1 、 version 4.0 、および version 5.2 の 3 つの文字列は、 version .*\..* というパターンで記述されます。
特殊文字は、特殊な意味を持つ文字で、Guard モジュールが式でどのようなマッチングを実行するかを指定します。 表 5-5 に、使用可能な特殊文字の説明を示します。
次の例は、パケットのペイロードに特定のパターンが含まれているパケットをドロップする方法を示しています。この例のパターンは、Slammer ワームから抽出されたものです。プロトコル、ポート、および tcpdump 式は特定のものでなくてもかまいません。
\x89\xE5Qh\.dllhel32hkernQhounthickChGetTf\xB9ll
Qh32\.dhws2_f\xB9etQhsockf\xB9toQhsend\xBE\x18\x10\xAEB
フレックスコンテンツ フィルタを追加するには、次の手順を実行します。
ステップ 1 ナビゲーション ペインでゾーンを選択します。ゾーンのメイン メニューが表示されます。
ステップ 2 ゾーンのメイン メニューの Configuration > Flex-Content filters を選択します。Flex-Content filters 画面が表示され、既存のフレックスコンテンツ フィルタのリストが示されます。
ステップ 3 Add をクリックします。Add filter - step 2 画面が表示されます。
ステップ 4 フレックスコンテンツ フィルタのパラメータを設定します。 表 5-6 に、Flex-Content Filter Form に表示されるフィルタ パラメータの説明を示します。
|
|
---|---|
特定のプロトコルを使用しているトラフィックを処理します。0 ~ 255 のプロトコル番号を入力します。すべてのプロトコル タイプを指定するには、アスタリスク(*)を入力します。 有効なプロトコル番号のリストについては、次の Internet Assigned Numbers Authority(IANA)の Web サイトを参照してください。 |
|
特定の宛先ポートに向かうトラフィックを処理します。0 ~ 65535 の宛先ポート番号を入力します。すべての宛先ポートを指定するには、アスタリスク(*)を入力します。 有効なポート番号のリストについては、次の Internet Assigned Numbers Authority(IANA)の Web サイトを参照してください。 |
|
指定した式に基づいてトラフィックをフィルタリングします(「フレックスコンテンツの式の構文について」の項を参照)。180 個(スペース区切り)までのトークンを使用して文字列を入力します。 |
|
パケットの内容と照合するための正規表現データ パターンを指定します(「フレックスコンテンツ フィルタのパターンの構文について」の項を参照)。使用するデータ パターンを入力します。 |
|
データ パターン式で大文字と小文字を区別するかどうかを指定します。大文字と小文字を区別するデータ パターン式として定義するには、チェックボックスをオンにします。 |
|
パケットの内容の先頭から、パターン マッチングを開始する位置までのオフセットを指定します(バイト単位)。デフォルトは 0(ペイロードの先頭)です。開始オフセットは、pattern フィールドに適用されます。0 ~ 2047 の整数を入力します。 |
|
パケットの内容の先頭から、パターン マッチングを終了する位置までのオフセットを指定します(バイト単位)。デフォルトは、パケット長(ペイロードの末尾)です。終了オフセットは、pattern フィールドに適用されます。0 ~ 2047 の整数を入力します。 |
|
トラフィックに対してフレックスコンテンツ フィルタが実行するアクションを指定します。 アクションを Action ドロップダウン リストから選択します。 |
|
動作状態を State ドロップダウン リストから選択します。 • enable :Guard モジュールはフィルタをトラフィック フローに適用し、一致が検出されると設定されたアクションを実行します。 |
• OK :新しいフレックスコンテンツ フィルタを保存します。Flex-Content filters 画面が表示されます。
• Clear :フォームの情報をデフォルト値に戻し、追加した情報をすべて消去します。
• Cancel: 情報を保存せずに Flex-Content filters 画面を終了します。 Flex-Content filters 画面が表示されます。
フレックスコンテンツ フィルタを削除するには、次の手順を実行します。
ステップ 1 ナビゲーション ペインでゾーンを選択します。ゾーンのメイン メニューが表示されます。
ステップ 2 ゾーンのメイン メニューの Configuration > Flex-Content filters を選択します。Flex-Content filters 画面が表示され、既存のフレックスコンテンツ フィルタのリストが示されます。
ステップ 3 削除する各フレックスコンテンツ フィルタの隣にあるチェックボックスをオンにし、 Delete をクリックします。フィルタのリストからフレックスコンテンツ フィルタが削除されます。表示されているフレックスコンテンツ フィルタをすべて削除するには、Src IP の隣にあるチェックボックスをオンにし、 Delete をクリックします。