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