この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、Cisco Anomaly Guard Module(Guard モジュール)のゾーン ポリシー、ポリシー構造、およびポリシー テンプレートについて説明します。また、ゾーン ポリシーとポリシー テンプレートのパラメータの設定方法についても説明します。
• ポリシーの監視
トラフィック フローの統計分析を行うために、Guard モジュールには特定のタイプのトラフィックを処理する定義があります。この定義を、ゾーン ポリシーといいます。ゾーン ポリシーは、常にトラフィック フローを測定し、特定のトラフィック フローが悪意のあるものまたは異常なものと判断する(トラフィック フローがポリシーのしきい値を超えた場合に発生する)と、そのフローに対してアクションを実行し、フィルタ(動的フィルタ)を動的に設定し、攻撃の重大度に応じてトラフィック フローを保護します。
ゾーン ポリシーを作成するために、Guard モジュールは 2 つのフェーズでゾーン トラフィックをラーニングします。Guard モジュールは事前定義されたテンプレートを使用してポリシーを構築し、それからポリシーのしきい値をラーニングします。各ポリシー テンプレートは、Guard モジュールが特定の Distributed Denial of Service(DDoS; 分散型サービス拒絶)の脅威から保護するために必要なポリシーの作成に使用します。
Guard モジュールがゾーン ポリシーを作成および調整したら、ゾーン ポリシーの追加および削除、またはゾーン ポリシー パラメータの変更が行えます。
• ポリシーの作成
ゾーン ポリシーは、Guard モジュールがゾーン トラフィック フローの分析と測定に使用する特性を定義します。ポリシーの名前はセクションで構成されており、各セクションは測定対象であるトラフィック特性を示しています。たとえば、ポリシー http/80/analysis/syns/src_ip は、Guard モジュールの分析保護機能によって認証され、送信元 IP アドレスに応じて集約された、ポート 80 宛ての HTTP SYN パケットのトラフィック フローを測定します。
図 8-1 に、ゾーン ポリシー名の例を示します。
表8-1 に、ポリシー名のセクションを示します。
|
|
---|---|
ポリシーの構築に使用されたポリシー テンプレート。各ポリシー テンプレートは、特定の DDoS 攻撃の脅威に対する保護のために Guard モジュールが必要とする特性を扱います。詳細については、「ポリシー テンプレートについてとその設定」を参照してください。 |
|
ゾーン ポリシーが監視するトラフィック フローのポート番号またはプロトコル番号。詳細については、「サービス」を参照してください。 |
|
Guard モジュールがトラフィック フローに適用する保護レベル。詳細については、「保護レベル」を参照してください。 |
|
Guard モジュールが監視するパケット タイプ。詳細については、「パケット タイプ」を参照してください。 |
|
Guard モジュールがポリシーの集約に使用するトラフィック特性。詳細については、「トラフィック特性」を参照してください。 |
ポリシー名の最初の 4 つのセクション(ポリシー テンプレート、サービス、保護レベル、および パケット タイプ)は、分析されるトラフィックのタイプを定義します。ポリシー パスの最後のセクション(トラフィック特性)は、フローの分析方法を定義します。
ポリシーには、相互依存性および優先度があります。2 つの異なるポリシーが同じトラフィック フローを定義する場合、Guard モジュールは、より限定的なポリシーを使用してフローを分析します。たとえば、TCP サービスに関連するポリシーでは、HTTP 関連のポリシーによって処理される HTTP サービスが除外されます。
ポリシーの動作面を設定できます。動作面では、ポリシーのトリガーを定義し、ポリシーがアクティブになったときに実行するアクションを定義します。詳細については、「ポリシー パラメータの設定」を参照してください。
Guard モジュールは、次の 2 つのフェーズで構成されるラーニング プロセスでゾーン ポリシーを作成します。これらのフェーズでは、Guard モジュールはゾーン トラフィックをラーニングし、特定のゾーン トラフィック特性に合せて自己調整します。
1. ポリシー構築フェーズ:Guard モジュールは、ポリシー テンプレートを使用してゾーン ポリシーを構築し、ゾーンが使用する主なサービスを検出します。
2. しきい値調整フェーズ:Guard モジュールは、ポリシー構築フェーズで検出されたサービスのポリシーしきい値を、ゾーン サービスのトラフィック レートに合せて調整します。
ラーニング プロセス中、ゾーン トラフィックは Guard モジュールを透過的に通過します。詳細については、「Guard モジュールの Cisco Traffic Anomaly Detector Moduleとのゾーン設定の同期」を参照してください。
ポリシー テンプレートとは、Guard モジュールがポリシー構築フェーズでゾーン ポリシーを作成するときに使用する、ポリシー構築の規則の集まりです。ポリシー構築フェーズの終わりに、Guard モジュールは、ポリシー テンプレートを使用して作成されたゾーン固有のポリシー セットを持つようになります。ポリシー テンプレートの名前は、テンプレートから作成されるすべてのポリシーに共通の特性に由来し、プロトコル(DNS など)、アプリケーション(HTTP など)、または目的(ip_scan など)が使用されます。たとえば、ポリシー テンプレート tcp_connections は、同時接続数など、接続に関連するポリシーを生成します。新しいゾーンを作成するときに、Guard モジュールによって一連のポリシー テンプレートがゾーン設定に組み込まれます。
表8-2 で、Guard モジュールのポリシー テンプレートについて説明します。GUARD_DEFAULT ゾーン テンプレートを使用して新しいゾーンを作成するときに、Guard モジュールによってこれらのポリシー テンプレートが組み込まれます。
テンプレート |
|
---|---|
IP スキャニング(1 つのクライアントが特定の送信元 IP アドレスからゾーン内の多数の宛先 IP アドレスにアクセスしようとする状況)。ポリシー テンプレートは、主に IP アドレス定義がサブネットであるゾーン向けに設計されています。 デフォルトでは、このポリシー テンプレートはディセーブルになっています。このポリシー テンプレートのデフォルト アクションは、notify です。 (注) このポリシー テンプレートから生成されたポリシーはリソース消費量が多いため、Guard モジュールのパフォーマンスに影響を及ぼす可能性があります。 |
|
ポート スキャンニング(1 つのクライアントが特定の送信元 IP アドレスからゾーン内の多数のポートにアクセスしようとする状況)。 デフォルトでは、このポリシー テンプレートはディセーブルになっています。このポリシー テンプレートのデフォルト アクションは、notify です。 (注) このポリシー テンプレートから生成されたポリシーはリソース消費量が多いため、Guard モジュールのパフォーマンスに影響を及ぼす可能性があります。 |
|
TCP サービス。デフォルトでは、このポリシー テンプレートから作成されたポリシーは、IRC ポート(666X)、SSH、および Telnet を監視します。このポリシー テンプレートは、Guard モジュールに対し、トラフィック フローに強化保護レベルを適用するよう要求するアクションを持つポリシーは作成しません。強化保護レベルの詳細については、「保護プロセスについて」 を参照してください。 |
|
Guard モジュールには、特定のタイプの攻撃または特定のサービス向けに設定されているゾーン テンプレートから作成されたゾーン用に追加のポリシー テンプレートがあります。 表8-3 に、特定のゾーン テンプレートに基づいて Guard モジュールがゾーン設定に追加する、ポリシー テンプレートを示します。
|
|
---|---|
sip_udp:SIP 1 over UDP を使用して VoIP セッションを確立し、セッション確立後に RTP/RTCP 2 を使用して音声データを SIP エンド ポイント間で伝送する VoIP 3 アプリケーションを監視するポリシー グループを構築します。 |
1.SIP = Session Initiation Protocol 2.RTP/RTCP = Real-Time Transport Protocol/Real-Time Control Protocol |
(注) Guard モジュールはまず、次のように専用ポート 6660 ~ 6670 および 21 ~ 23 で TCP トラフィックのインジケータを探します。
• これらのポート上でトラフィックがトレースされる場合、tcp_services_ns ポリシー テンプレートがポリシー グループを構築し、tcp_services ポリシー テンプレートが他のポート上の TCP サービスを監視します。
• これらのポート上でトレースされるトラフィックがない場合、tcp_services_ns ポリシー テンプレートは使用されません。
tcp_services_ns ポリシー テンプレートから作成されたポリシーにはサービスを追加できます。
Guard モジュールには、TCP プロキシのスプーフィング防止機能(Guard モジュールがプロキシの役割を果たす)を使用しないゾーンを保護する追加のポリシー テンプレートがあります。これらのポリシー テンプレートは、ゾーンが IP アドレスに基づいて制御されている場合(Internet Relay Chat(IRC; インターネット リレー チャット)サーバタイプ ゾーンなど)、またはゾーンで実行されているサービスのタイプが不明の場合に使用できます。
GUARD_TCP_NO_PROXY ゾーン テンプレートでゾーンを定義する場合、Guard モジュールによって、 表8-4 に示されるポリシー テンプレートが使用されます。Guard モジュールは、http、tcp_connections、および tcp_outgoing のポリシー テンプレートをそれぞれ http_ns、tcp_connections_ns、および tcp_outgoing_ns のポリシー テンプレートに置き換えます。http_ns、tcp_connections_ns、および
tcp_outgoing_ns の各ポリシー テンプレートは、Guard モジュールに対し、トラフィック フローに強化保護レベルを適用するよう要求するアクションを持つポリシーは作成しません。
表8-4 に、Guard モジュールの GUARD_TCP_NO_PROXY ポリシー テンプレートの詳細を示します。
テンプレート |
|
関連する対象 |
---|---|---|
すべてのポリシー テンプレートのリストを表示するには、ゾーン設定モードで policy-template コマンドを使用し、 Tab キーを 2 回押してください。
ラーニング プロセス中、ゾーン トラフィックは Guard モジュールを透過的に通過します。アクティブな各ポリシー テンプレートは、ポリシー定義とゾーン トラフィック特性に基づいてポリシー グループを作成します。Guard モジュールは、トラフィック量のレベルに応じて、ポリシー テンプレートが監視するサービス(プロトコルとポート番号)をランク付けします。次に Guard モジュールは、トラフィック量が最大のサービスと、定義済みの最小しきい値を超えたサービスを選択し、各サービスに対するポリシーを作成します。一部のポリシー テンプレートは、特定のポリシーが追加されなかったすべてのトラフィック フローを処理する、 any というサービスを備えた追加のポリシーを作成します。
• サービスの最大数の設定 :Guard モジュールがポリシー テンプレートを選択して特定のポリシーを作成する対象になるサービスの最大数を定義します。
• 最小しきい値の設定 :Guard モジュールでサービスをランク付けするために超える必要のある最小しきい値を定義します。
• ポリシー テンプレートの状態の設定 :Guard モジュールがポリシー テンプレートからポリシーを作成するかどうかを定義します。
ポリシー テンプレートのパラメータを設定するには、ゾーン設定モードで次のコマンドを入力して、ポリシー テンプレート設定モードに入ります。
policy-template policy-template-name
policy-template-name 引数には、ポリシー テンプレートの名前を指定します。詳細については、 表8-2 を参照してください。
次の例は、http ポリシー テンプレート設定モードに入る方法を示しています。
特定のポリシー テンプレートのパラメータを表示するには、ポリシー テンプレート設定モードで show コマンドを使用します。
サービスの最大数のパラメータで、ポリシー テンプレートが選択してポリシーを作成する対象となるサービスの最大数(プロトコル番号またはポート番号)を定義します。Guard モジュールは、ポリシー テンプレートに関連するサービスを、各サービスのトラフィック量のレベルによってランク付けします。次に Guard モジュールは、トラフィック量が最大のサービスと、定義済みの最小しきい値( min-threshold パラメータで定義される)を超えたサービスを選択し、各サービスに対するポリシーを作成します。Guard モジュールは any というサービスを備えた追加のポリシーを追加し、ポリシー テンプレートの特性を持つその他のすべてのトラフィック フローを処理することができます。
(注) サービスの最大数が大きいほど、ゾーンが必要とする Guard モジュール メモリのサイズも多くなります。
サービスの最大数のパラメータは、サービスを検出するポリシー テンプレート(tcp_services、tcp_services_ns、udp_services、および other protocols など)にのみ定義できます。特定のサービスを監視するポリシー テンプレート(サービス 53 を監視する dns_tcp など)や、特定のトラフィック特性に関連するポリシー テンプレート( fragments など)には、このパラメータは設定できません。
Guard モジュールは、ポリシーのトラフィック特性に基づいて、サービスのトラフィック レートを測定します。トラフィック特性は、送信元 IP アドレスまたは宛先 IP アドレスになります。 any サービスを監視するポリシーは、特定のポリシーで処理されないすべてのサービスで送信元 IP アドレスのレートを測定します。したがって、こちらの値は正確ではありません。
サービス数を制限すると、目的のトラフィック フロー要件に合せて Guard モジュールのポリシーを設定できます。
サービスの最大数を設定するには、ポリシー テンプレート設定モードで次のコマンドを使用します。
max-services 引数は、Guard モジュールが選択するサービスの最大数を定義する、1 より大きい整数です。サービスの最大数が 10 を超えないようにすることをお勧めします。
次の例は、Guard モジュールが監視するサービスの最大数を 5 に設定する方法を示しています。
最小しきい値のパラメータは、サービスの最小トラフィック量を定義します。このしきい値を超えると、Guard モジュールは、しきい値を超えた特定のトラフィック フローに応じて、サービスのトラフィックに関連するポリシーを構築します。このしきい値を設定すると、ゾーン サービスのトラフィック量に保護を的確に合せることができます。
最小しきい値のパラメータは、正しいゾーン保護に不可欠で必ずポリシーを構築するポリシー テンプレート(tcp_services、tcp_services_ns、udp_services、
other_protocols、http、および fragments)には設定できません。
最小しきい値を設定するには、ポリシー テンプレート設定モードで次のコマンドを使用します。
min- threshold 引数は、0 以上の実数(小数点以下が 2 桁の浮動小数点型の数字)で、最小しきい値レートをパケット/秒(pps)単位で定義します。同時接続および SYN/FIN の比率を測定する場合、しきい値は接続の合計数を定義する整数になります。
次の例は、ポリシー テンプレート http の最小しきい値を設定する方法を示しています。
ポリシー テンプレートの状態のパラメータは、ポリシー テンプレートをイネーブルまたはディセーブルにするかどうかを定義します。ポリシー テンプレートをディセーブルにすると、Guard モジュールがポリシー構築フェーズになっても、ポリシーは作成されません。
次のコマンドを入力して、1 つのコマンドで、ポリシー テンプレートのすべての動作パラメータを設定できます。
policy-template policy-template-name max-services min-threshold {disabled | enabled}
表8-5 に、policy-template コマンドの引数とキーワードを示します。
|
|
---|---|
ポリシー テンプレート名。詳細については、 表8-1 を参照してください。 |
|
Guard モジュールが選択して特定のポリシー テンプレートからポリシーを構築する対象となるサービスの最大数。 Guard モジュールで現在の値が変更されないようにするには、-1 という値を入力します。 詳細については、「サービスの最大数の設定」を参照してください。 |
|
Guard モジュールでサービスをランク付けするために超える必要のある最小しきい値。 Guard モジュールで現在の値が変更されないようにするには、-1 という値を入力します。 詳細については、「最小しきい値の設定」を参照してください。 |
|
ポリシー テンプレートをディセーブルにして、ポリシーが作成されないようにします。詳細については、 「ポリシー テンプレートの状態の設定」 を参照してください。 |
|
ポリシー テンプレートをイネーブルにします。詳細については、 「ポリシー テンプレートの状態の設定」 を参照してください。 |
次の例は、ポリシー テンプレート tcp_services のパラメータを設定する方法を示しています。この例では、サービスの最大数は 3 に、ポリシーの状態は enabled に設定され、最小しきい値は変更されていません(-1)。
• サービス
• 保護レベル
• パケット タイプ
• トラフィック特性
ポリシー テンプレートとは、Guard モジュールがポリシー構築フェーズでゾーン ポリシーを作成するときに使用する、ポリシー構築の規則の集まりです。詳細については、「ポリシー テンプレートについてとその設定」を参照してください。
サービス セクションは、各ポリシーに関連するゾーン アプリケーションのポートまたはプロトコルを定義します。ポリシーには、相互依存性および優先度があります。2 つの異なるポリシーが同じトラフィック フローを定義する場合、Guard モジュールは、より限定的なポリシーを使用してフローを分析します。サービス any は、同じポリシー テンプレートから作成された他のサービスと特に一致しないすべてのトラフィックに関連します。
個々のニーズに最適な保護にするために、ゾーンのメイン サービスに具体的なポリシーを定義することをお勧めします。
ゾーンのポリシーにサービスを追加または削除すると、Guard モジュールはゾーンのポリシーを未調整としてマークします。ゾーン保護とラーニング プロセスをイネーブルにした場合、次のいずれかの操作を実行するまで、Guard モジュールはゾーン トラフィックの異常を検出できません。
• ラーニング プロセスのしきい値調整フェーズを実行して、その結果を受け入れる(「ポリシーしきい値の調整」を参照)。
• ゾーンのポリシーを調整済みとしてマークする(「ポリシーに対する調整済みのマーク付け」を参照)。
• サービスの追加
• サービスの削除
特定のポリシー テンプレートから作成されたすべてのポリシーに、サービスを追加できます。新しいサービスは、ポリシー構築フェーズ中に検出されたサービスに追加され、デフォルト値で定義されます。しきい値を手動で定義することもできますが、ラーニング プロセスのしきい値調整フェーズを実行して、ポリシーをゾーン トラフィックに合せて調整することをお勧めします。詳細については、「ポリシーしきい値の調整」を参照してください。
新しいサービスを追加できるのは、次のポリシー テンプレートから作成されたポリシーです。
• tcp_services、udp_services、tcp_services_ns
(注) サービスを追加した後でポリシー構築フェーズをアクティブにすると、新しいサービスによって、手動で追加したサービスが無効にされる場合があります。
次の状況では、ポリシー構築を再度実行しない場合は、サービスを手動で追加する必要があります。
• 新しいアプリケーションまたはサービスがゾーン ネットワークに追加された。
• ポリシー構築フェーズの実行期間が短かったため、一部のネットワーク サービスが反映されていない(たとえば、週に 1 回のみあるいは夜間のみアクティブになる既知のアプリケーションまたはサービスがある)。
サービスを追加するには、次のコマンドのいずれかを使用します。
• add-service service-num (ポリシー テンプレート設定モードの場合)
• policy-template policy-template-name add-service service-num (ゾーン設定モードの場合)
表8-6 に、add-service コマンドの引数を示します。
|
|
---|---|
ポリシー テンプレート名。詳細については、 表8-2 を参照してください。 |
次の例は、ポリシー テンプレート tcp_services から作成されたすべてのポリシーに、サービスを追加する方法を示しています。
add-service 25
すべてのポリシー テンプレートから作成された特定のサービスを削除できます。Guard モジュールは、特定のポリシー テンプレートから作成されたすべてのポリシーからサービスを削除します。
サービスを削除するには、次のコマンドのいずれかを使用します。
• remove-service service-num (ポリシー テンプレート設定モードの場合)
• policy-template policy-template-name remove-service service-num (ゾーン設定モードの場合)
表8-7 に、 remove-service コマンドの引数を示します。
|
|
---|---|
ポリシー テンプレート名。詳細については、 表8-2 を参照してください。 |
• tcp_services、udp_services、tcp_services_ns
次の状況では、ラーニング プロセスのポリシー構築を実行しない場合は、サービスを手動で削除する必要があります。
• アプリケーションまたはサービスがネットワークから削除された。
• (ネットワーク環境では一般的でないため)イネーブルにしていないアプリケーションまたはサービスが、ポリシー構築フェーズ中に識別された。
(注) サービスを削除した後でポリシー構築フェーズをアクティブにすると、同じサービスがゾーン設定に改めて追加される場合があります。
次の例は、ポリシー テンプレート tcp_services から作成されたすべてのポリシーから、サービスを削除する方法を示しています。
Guard モジュールには 3 つの保護レベルがあり、各レベルではさまざまなプロセスをトラフィック フローに適用しています。Guard には、次の 3 つの保護レベルがあります。
• 分析保護レベル:Guard モジュールはトラフィックを監視状態で流します。ただし、保護中に異常がトレースされない限り、トラフィックは影響を受けません。Guard モジュールが異常をトレースすると、そのトラフィックを適切な保護レベルに誘導します。
• 基本保護レベル:Guard モジュールはスプーフィング防止機能やゾンビ防止機能をアクティブにし、疑わしいトラフィック フローを調べてトラフィックを認証し、その送信元を確認します。Guard モジュールは、各ホストに対して認証を行います。認証は、事前定義された期間に限り有効です。この期間が経過すると、Guard モジュールはもう一度ホストを認証します。
• 強化保護レベル:Guard モジュールは、強力なスプーフィング防止機能をアクティブにします。この機能により、トラフィック フローのパケットが調べられ、フローの正当性が確認されます。
保護機能をアクティブにした後、Guard モジュールは引き続きトラフィックを分析します。Guard モジュールは、ゾーン宛てのトラフィックでトラフィック異常を検出すると、より強力な保護メカニズムをアクティブにします。
(注) 保護レベルの設定は静的であり、手動で設定することはできません。
Guard モジュールはパケット特性を監視します。パケット特性は、次のいずれかです。
• パケット分析(認証済みパケットなど。認証済みパケットとは、パケット接続で TCP ハンドシェイクを実行していることを Guard モジュールが確認済みであるパケットのこと)
表8-8 で、Guard モジュールが監視するパケット タイプについて説明します。
|
|
---|---|
TCP の発信元 IP アドレスがゾーン宛てで、Guard モジュールのスプーフィング防止機能に認証されているパケット。 |
|
SYN および FIN フラグの付いたパケット。Guard モジュールは SYN フラグの付いたパケット数と FIN フラグの付いたパケット数の比率を確認します。 |
|
トラフィック特性とは、トラフィック フローをどのように分析するか、またポリシーの集約にどのような特性が使用されたか定義するものです。分析するトラフィックが同じでも、異なる特性に基づいてレートを測定する異なるポリシーがあります。次にその例を示します。
dns_tcp/53/analysis/pkts/dst_ip と dns_tcp/53/analysis/pkts/src_ip。
表8-9 に、Guard モジュールが監視するトラフィック特性を示します。
|
|
---|---|
多数のゾーン IP アドレスが同じポートにあることを調査する 1 つの IP アドレスからのトラフィック。このキーは IP スキャニングに使用されます。 |
|
1 つのゾーン宛先 IP アドレスに多数のポートがあることを調査する 1 つの IP アドレスからのトラフィック。このキーはポート スキャニングに使用されます。 |
ラーニング プロセスの完了後は、特定のポリシー パラメータ(ポリシー状態、ポリシーしきい値、ポリシー タイムアウト、ポリシー アクション、およびポリシーのインタラクティブ状態)を表示して、ポリシー パラメータがゾーン トラフィックに適合するかどうかを判断できます。単一のポリシーまたはポリシー グループのポリシー パラメータは、ゾーン トラフィック要件を満たすように設定できます。
ポリシー パラメータの設定を表示するには、ポリシー設定モードで show コマンドを使用します。
ポリシー設定モードに入るには、ゾーン設定モードで次のコマンドを使用します。
policy-path 引数には、ポリシー パス セクションを指定します。パスは、ポリシー セクションの一部のみを含む部分パスでもかまいません。詳細については、「ポリシー パスの使用」を参照してください。
(注) ポリシー パス階層で 1 レベル上に移動するには、ポリシー パス プロンプトで policy .. を入力します。
次の例は、dns_tcp/53/analysis/syns/global ポリシー設定モードに入る方法を示しています。
ポリシーの アクション 、 タイムアウト、しきい値、 およびラーニングのパラメータは、ポリシー パスの各セクションで変更できます。ただし、上位レベルのポリシー セクション(ポリシー テンプレート セクションまたはサービス セクションなど)でこれらのパラメータを変更すると、より多くのポリシーが影響を受けます。上位レベルのポリシー パス階層でこれらのパラメータを設定すると、すべてのサブポリシー パスでこれらのパラメータが変更されます。
各ポリシー パス セクションでは、ワイルドカード文字としてアスタリスク(*)を使用できます。ポリシー パス セクションを指定しないと、指定していないセクションが Guard モジュールによってワイルドカード(*)と見なされます。たとえば、ポリシー tcp_services//analysis//global では、サービスとパケット タイプにワイルドカードが使用されています。
• アクティブ:ポリシーはトラフィックを監視し、しきい値を超えた場合にアクションを実行します。
• 非アクティブ:ポリシーはトラフィックを監視し、しきい値を取得しますが、しきい値を超えてもアクションは実行しません。ポリシーを非アクティブにし、ラーニング プロセスのしきい値調整フェーズが再度実行されないようにすることができます。
• ディセーブル:ポリシーはトラフィック フローを監視しないため、しきい値を取得しません。
(注) Guard モジュールが他のポリシーの正確なしきい値を監視するようにするには、ラーニング プロセスのしきい値調整フェーズをアクティブにすることをお勧めします。
ポリシーの状態を変更するには、ポリシー設定モードで次のコマンドを使用します。
state { active | disabled | inactive }
次の例は、すべてのグローバル ポリシーの状態を設定する方法を示しています。
ゾーン ポリシーをディセーブルにした後でポリシー構築フェーズを実行すると、現在のトラフィック フローに応じてすべてのゾーン ポリシーが再設定され、ポリシーが再度アクティブになることがあります。
ポリシーのしきい値は、特定のポリシーのしきい値トラフィック レートを定義するもので、しきい値調整フェーズで調整されます。しきい値は、デフォルトで、オンデマンド保護に適した値に設定されています。このしきい値を超過すると、ポリシーはゾーンを保護するアクションを実行します。
しきい値は、次のポリシー テンプレートで構築されたポリシーを除き、パケット/秒で測定されます。
• num_sources:しきい値は IP アドレスまたはポートの数で測定されます。
• tcp_connections:しきい値は接続の数で測定されます。
ポリシーのしきい値の値を設定できます。「ポリシーのしきい値の設定」を参照してください。
Guard モジュールは、現在のポリシーのしきい値に係数を掛けます。新しい値を固定値として設定しない場合、後続のしきい値調整フェーズでこの値が変更されることがあります。「係数によるしきい値の乗算」を参照してください。
Guard モジュールは、ゾーン アドレス範囲内で、特定の IP 送信元アドレスのしきい値を設定します。「特定の IP しきい値の設定」を参照してください。
Guard モジュールは、プロキシを介して HTTP でゾーンに接続するクライアントのトラフィックのしきい値を設定します。「プロキシしきい値の設定」を参照してください。
ポリシーのしきい値は、しきい値調整フェーズをさらに実行すると変更される場合があります。後続のしきい値調整フェーズでのしきい値の変更方法は、次のようにして変更できます。
Guard モジュールは、以後のしきい値調整フェーズで、ポリシーのしきい値(proxy-threshold および threshold-list)の値を変更しません。「固定値としてのしきい値の設定」を参照してください。
Guard モジュールは、以後のしきい値調整フェーズで、現在のポリシーのしきい値、ラーニングしたしきい値、および固定乗数に基づいてポリシーのしきい値を計算します。「しきい値の乗数の設定」を参照してください。
ポリシーのしきい値を設定するには、ポリシー設定モードで次のコマンドを使用します。
threshold 引数は、ポリシーのしきい値を指定する正数です。
次の例は、ポリシー policy dns_tcp/53/analysis/syns/global のしきい値を 300 に設定する方法を示しています。
ポリシーのしきい値(proxy-threshold および threshold-list)を固定値として設定できます。Guard モジュールは、ラーニング プロセスのしきい値調整フェーズで新しいしきい値を無視し、現在のしきい値を保持します。しきい値を固定値として設定することにより、ポリシーのしきい値を設定しながらも、引き続き他のポリシーのしきい値をラーニングすることが可能になります。
ポリシーのしきい値を固定値として設定するには、ポリシー設定モードで次のコマンドを使用します。
learning-params fixed-threshold
次の例は、ポリシー policy dns_tcp/53/analysis/syns/global のしきい値を固定値に設定する方法を示しています。
ゾーン設定モードで次のコマンドを入力すると、1 つのコマンドで複数のポリシーのしきい値を固定値に設定できます。ゾーン設定モードでポリシーのしきい値を固定値として設定するには、次のコマンドを使用します。
policy policy-path learning-params fixed-threshold
policy-path 引数には、ポリシー パスを指定します。パスは、ポリシー セクションの一部のみを含む部分パスでもかまいません。詳細については、「ポリシー パスの使用」を参照してください。
次の例は、ポリシー テンプレート dns_tcp から作成されたすべてのポリシーのしきい値を固定値にする方法を示しています。
ポリシーのラーニング パラメータを表示するには、ポリシー設定モードで show learning-params コマンドを使用するか、ゾーン設定モードで show policies policy-path learning-params コマンドを使用します。
ポリシーのしきい値の乗数を設定できます。Guard モジュールは、以後のしきい値調整フェーズの結果を受け入れる前に、指定された乗数をラーニングしたしきい値に掛けて新しいポリシーのしきい値を計算します。Guard モジュールは、設定されているしきい値選択方式を使用して、しきい値調整フェーズの結果を受け入れます。「しきい値選択方式の設定」を参照してください。
ポリシーのしきい値の乗数を設定するには、ゾーン設定モードで次のコマンドを使用します。
policy policy-path learning-params threshold-multiplier threshold-multiplier
表8-10 に、 policy learning-params threshold- multiplier コマンドの引数とキーワードを示します。
|
|
---|---|
しきい値を掛ける対象のポリシー パス。パスは、ポリシー セクションの一部のみを含む部分パスでもかまいません。詳細については、「ポリシー パスの使用」を参照してください。 |
|
ポリシーのしきい値を乗算します。 threshold-multiplier は、ポリシーのしきい値に掛ける正の実数(小数点以下が 2 桁の浮動小数点型の数字)。ポリシーのしきい値を小さくするには、1 より小さい数値を入力します。 |
ポリシー設定モードでポリシーのしきい値の乗数を設定するには、 policy learning-params threshold-multiplier threshold-multiplier コマンドを使用します。
次の例は、以後のしきい値調整フェーズで Guard モジュールがポリシー テンプレート dns_tcp から作成されたポリシーのしきい値を半減するように、しきい値乗数を設定する方法を示しています。
ポリシーのラーニング パラメータを表示するには、ポリシー設定モードで show learning-params コマンドを使用するか、ゾーン設定モードで show policies policy-path learning-params コマンドを使用します。
ポリシーまたはポリシー グループのしきい値に係数を掛けて、トラフィック量がゾーン トラフィックを表していない場合に、ポリシーまたはポリシー グループのしきい値を増減することができます。Guard モジュールでは、ポリシーのしきい値、プロキシのしきい値、および policy threshold-list コマンドで定義されたしきい値の乗算をイネーブルにできます。
ポリシーのしきい値と係数を乗算するには、ゾーン設定モードで次のコマンドを使用します。
policy policy-path thresh-mult threshold-multiply-factor
表8-11 に、policy thresh-mult コマンドの引数とキーワードを示します。
|
|
---|---|
|
ポリシー テンプレート名。詳細については、 表8-2 を参照してください。 |
|
しきい値に掛ける正の実数(小数点以下が 4 桁の浮動小数点型の数字)を指定します。ポリシーのしきい値を小さくするには、1 より小さい数値を入力します。 |
次の例は、ポリシー テンプレート dns_tcp から作成されたポリシーのしきい値を半減する方法を示しています。
(注) しきい値は、Guard モジュールによって後続のしきい値調整フェーズで変更される場合があります。Guard モジュールがしきい値を変更しないようにするには、しきい値を固定値として設定します。「固定値としてのしきい値の設定」を参照してください。
ポリシーのラーニング パラメータを表示するには、ポリシー設定モードで show learning-params コマンドを使用するか、ゾーン設定モードで show policies policy-path learning-params コマンドを使用します。
トラフィックが大量であることがわかっている送信元または宛先 IP アドレスでトラフィックが増加するときに、Guard モジュールが誤って攻撃として検出しないようにするために、その IP アドレスに関連付けられたトラフィック用のしきい値を指定してポリシーを設定できます。
次の状況のいずれかが発生した場合は、特定の IP しきい値を設定することを考慮する必要があります。
• ある送信元 IP アドレスから大量のトラフィックがあることがわかっている場合は、特定の送信元 IP アドレスからのトラフィックに適用するしきい値を設定できる。
• 非同種ゾーン(複数の IP アドレスが定義されているゾーン)があり、そのゾーンの一部に大量のトラフィックが流れることがわかっている場合は、そのゾーン内の特定の宛先 IP アドレスに適用するしきい値を設定できる。
• トラフィック特性が宛先 IP(dst_ip)であるポリシー。
• デフォルトのポリシー アクションが drop である、トラフィック特性が送信元 IP アドレス(src_ip)のポリシー。デフォルトのポリシー アクションとは、新しいゾーンを作成するときに Guard モジュールがポリシーに適用するアクションのことです。これらのポリシーには、ポリシー アクションを変更する場合でもしきい値のリストを設定できます。
特定の IP しきい値を設定するには、次のコマンドのいずれかを使用します。
• policy policy-path threshold-list ip threshold [ip threshold ...](ゾーン設定モードの場合)
• threshold-list ip threshold [ ip threshold ... ] (ポリシー設定モードの場合)
表8-12 に、threshold-list コマンドの引数を示します。
|
|
---|---|
|
ポリシー テンプレート名。詳細については、 表8-2 を参照してください。 |
|
|
|
しきい値トラフィック レート(パケット/秒)。ただし、同時接続および SYN 対 FIN の比率を測定するポリシーの場合、しきい値は接続数になります。 |
ポリシーごとに特定の IP しきい値を 10 個まで追加できます。特定の IP しきい値をすべて 1 つのコマンドで入力できます。
Guard モジュールは、しきい値選択方式が new-thresholds に設定されている場合、以後のしきい値調整フェーズでポリシーのしきい値を変更する可能性があります。詳細については、「しきい値選択方式の設定」を参照してください。
次の例は、ポリシー http/80/analysis/syns/src_ip に、IP アドレス 10.10.10.2 および 10.10.15.2 の特定の IP しきい値を設定する方法を示しています。
threshold-list 10.10.10.2 500 10.10.15.2 500
プロキシしきい値パラメータは、プロキシを介して HTTP によりゾーンに接続するクライアントのトラフィック レートを定義し、Guard モジュールが、さまざまな送信元から送られてくるトラフィック量にポリシーを合せることができるようにします。Guard モジュールはトラフィックをブロックするためだけにプロキシしきい値を使用します。したがって、強化保護レベルの DEFAULT ゾーン テンプレートで作成されたポリシー、および基本保護レベルの TCP_NO_PROXY ゾーン テンプレートで作成されたポリシーだけにプロキシしきい値を設定できます。
プロキシしきい値は、http、http_ns、tcp_connections、および tcp_connections_ns ポリシーでのみ使用でき、ゾーンにアクティブな http または http_ns ポリシーがある場合に、tcp_connections または tcp_connections_ns ポリシー テンプレートでのみ有効です。
プロキシしきい値を設定するには、ポリシー設定モードで次のコマンドを使用します。
proxy-threshold proxy-threshold
proxy-threshold 引数には、http ポリシーおよび http_ns ポリシーのプロキシしきい値のトラフィック レートをパケット/秒単位で指定します。この引数は、tcp_connections ポリシーおよび tcp_connections_ns ポリシーの接続数でプロキシしきい値を指定します。
プロキシ サーバが処理するトラフィック量はゾーンの一部であるネットワーク クライアントの処理量よりはるかに多いため、プロキシしきい値を設定する場合は、 threshold 引数より大きな値を proxy-threshold 引数に設定することをお勧めします。
次の例は、ポリシー tcp_ratio/any/basic/syn_by_fin/dst_ip_ratio のプロキシしきい値を 20 に設定する方法を示しています。
タイムアウト パラメータは、ポリシーによって作成される動的フィルタがアクションを適用する最小期間を定義します。
タイムアウト期限が切れると、Guard モジュールは、ポリシーによって生成された動的フィルタを非アクティブにするかどうかを決定します。Guard モジュールが動的フィルタを非アクティブにしないと決定した場合、フィルタのアクティベーション タイムアウトが新たにゼロから再びカウントされます。動的フィルタの非アクティベーションの基準を変更するには、 filter-termination コマンドを使用します。詳細については、「動的フィルタの非アクティブ化」を参照してください。
ポリシーのタイムアウトを設定するには、ポリシー設定モードで次のコマンドを使用します。
表8-13 に、timeout コマンドの引数とキーワードを示します。
|
|
---|---|
|
|
|
次の例は、ポリシー http/80/analysis/syns/src_ip のタイムアウトを 100 秒に設定する方法を示しています。
ポリシー グループのタイムアウトを同時に変更するには、ゾーン設定モードで policy set-timeout コマンドを使用します。
次の例は、HTTP ポリシー テンプレートから作成されたすべてのポリシーのタイムアウトを 100 秒に設定し、送信元 IP アドレスを測定する方法を示しています。
policy http/*/*/*/src_ip set-timeout 100
アクション パラメータは、しきい値を超過したときにポリシーが実行するアクションのタイプを定義します。
ポリシー アクションは、ポリシーに定義されている保護を強化するように設定します。たとえば、分析保護モジュールのポリシーではポリシー アクションを to-user-filters に設定したり、強化保護モジュールのポリシーではポリシー アクションを filter/drop に設定します。ポリシーに定義されている保護を低下させるようなポリシー アクションを設定しないでください。たとえば、基本保護レベルまたは強化保護モジュールのポリシーで、ポリシー アクションを to-user-filters に設定してはいけません。
ポリシー アクションを設定するには、ポリシー設定モードで次のコマンドを使用します。
表8-14 に、ポリシー アクションを示します。
|
|
---|---|
事前ハンドシェイクなしの ACK など、スプーフィング防止機能に認証されなかったトラフィックをブロックするフィルタを追加します。 このポリシー アクションは、パケット タイプが in_unauth_pkts および unauth_pkts のポリシーにのみ設定します。 |
|
トラフィック フローに強化保護レベルを適用するフィルタを追加します。 このポリシー アクションは、分析保護レベルおよび基本保護レベルのポリシーに設定します。このポリシー アクションは、トラフィック特性が src_ip の TCP(着信)ポリシーにのみ使用し、トラフィック特性がグローバルのポリシーには使用しないことをお勧めします。これは、ロード バランサまたは ACL 4 を使用してトラフィックを管理しているネットワークでは、このポリシー アクションがネットワーク問題を引き起こす可能性があるためです。 |
|
指定されたトラフィックをドロップするように Guard モジュールに指示するフィルタを追加します。 このポリシー アクションは、Guard モジュールがスプーフィング防止機能を適用した後、トラフィックを監視するポリシーに設定します(基本保護レベルおよび強化保護レベルのポリシー)。このポリシー アクションは、分析保護レベルのポリシーには使用しないことをお勧めします。これは、スプーフィング攻撃を軽減するときに、このアクションによって Guard モジュールが Guard モジュールのフィルタをすべて使用してしまうおそれがあるためです。 |
|
redirect というアクションを持つすべてのユーザ フィルタの認証機能を強化するフィルタを追加します。 このポリシー アクションは、tcp_connections/any/basic/num_sources/global ポリシーにのみ適用されます。 |
|
次の例は、ポリシー http/80/analysis/syns/src_ip にアクションを設定する方法を示しています。
action drop
ポリシー グループのアクションを同時に変更するには、ゾーン設定モードで policy set-action コマンドを使用します。
(注) すべてのアクションがすべてのポリシーで有効なわけではありません。特定のポリシーに有効ではないアクションに対するポリシーのアクションを変更すると、Guard モジュールはエラー メッセージを表示します。
次の例は、すべての dns_tcp ポリシーにアクションを設定する方法を示しています。
dns_tcp/
set-action filter/drop
インタラクティブ ステータスのパラメータは、ポリシーによって作成される保留動的フィルタのインタラクティブ ステータスを定義します。インタラクティブ ステータスは、ゾーン保護がイネーブルになっていて、ゾーンがインタラクティブ保護モードになっている場合にのみ、ゾーンに適用されます。詳細については、 第 11 章「インタラクティブ保護モードの使用方法」 を参照してください。
ポリシーによって作成された保留動的フィルタのステータスを、推奨事項のインタラクティブ ステータスに設定した後で、 always-accept または always-ignore に変更するには、 interactive-status コマンドを使用します。
たとえば、推奨事項のステータスを always-accept に設定すると、推奨事項と推奨事項の保留動的フィルタが表示されなくなります。推奨事項または推奨事項によって生成される保留動的フィルタを無視するには、ポリシーのインタラクティブ ステータスを interactive または always-accept に変更します。
ポリシー インタラクティブ ステータスを設定するには、ポリシー設定モードで次のコマンドを使用します。
interactive-status { always-ignore | always-accept | interactive }
表8-15 に、interactive-status コマンドのキーワードを示します。
|
|
---|---|
ポリシーによって生成される動的フィルタを自動的に受け入れます。このアクションは、ポリシーによって新しい推奨事項が生成されるたびに、自動的に適用されます。 |
|
次の例は、ポリシー dns_tcp/53/analysis/pkts/src_ip のインタラクティブ ステータスを always-accept に設定する方法を示しています。
ポリシーを監視して、ポリシーがゾーンのトラフィック量やサービスにどの程度適しているかを確認できます。
• ポリシーの表示
ゾーンのポリシーを表示して、ポリシーがゾーンのトラフィック特性に適しているかどうかを確認できます。ゾーンに構築されたポリシーを表示して、これらのポリシーがゾーンのトラフィックの特性に合せてカスタマイズされていることを確認できます。このリストに表示されるポリシーだけを設定できます。
Guard モジュールは、現在のゾーン ポリシーだけを表示します。ポリシー構築フェーズ中にポリシー テンプレートがディセーブルになっていた場合、Guard モジュールはそのポリシー テンプレートからポリシーを作成しないため、 show policies コマンドを入力してもポリシーは表示されません。
ゾーン ポリシーを表示するには、ゾーン設定モードで次のコマンドを使用します。
policy-path 引数には、ポリシー グループを指定します。各ポリシー パス セクションでは、ワイルドカード文字としてアスタリスク(*)を使用できます。ポリシー パス セクションを指定しなかった場合、指定していないセクションは Guard モジュールによってワイルドカード(*)と見なされます。たとえば、tcp_services//analysis//global ポリシーでは、サービスとパケット タイプのセクションにワイルドカードが使用されています。
すべてのポリシーの統計情報を表示するには、ポリシー パスにアスタリスク(*)を入力します。
ポリシー パス セクションの詳細については、「ポリシー パスの使用」を参照してください。
次の例は、すべてのゾーン ポリシーを表示する方法を示しています。
show policies *
次の例は、ポート 53 で DNS-over-TCP 同期パケットを監視するすべてのポリシーを表示する方法を示しています。
show policies dns_tcp/53/*/syns/*
表8-16 に、 show policies コマンド出力のフィールドを示します。
|
|
---|---|
ポリシー名。ポリシー パス セクションの詳細については、「ポリシー パスの使用」を参照してください。 |
|
ポリシーの状態。詳細については、「ポリシーの状態の変更」を参照してください。 |
|
ポリシーのインタラクティブ ステータス。詳細については、「ポリシーのインタラクティブ ステータスの設定」を参照してください。 a-accept は always-accept、a-ignor は always-ignore、interac は interactive を指します。 |
|
ポリシーのしきい値。このしきい値を超過すると、Guard モジュールはアクションを実行してゾーンを保護します。詳細については、「ポリシーのしきい値の設定」を参照してください。 |
|
ポリシーのプロキシしきい値。詳細については、「プロキシしきい値の設定」を参照してください。 |
|
ポリシーに定義されている特定の IP しきい値の数。詳細については、「特定の IP しきい値の設定」を参照してください。 |
|
しきい値が超過した場合にポリシーが実行するアクション。詳細については、「ポリシー アクションの設定」を参照してください。 |
|
ポリシーのアクションが有効な最小期間。Guard モジュールは、ポリシーによって作成された動的フィルタを非アクティブにするかどうかを、filter-termination しきい値に従って決定します。詳細については、「ポリシーのタイムアウトの設定」を参照してください。 |
1 つのゾーン ポリシーまたはゾーン ポリシーのグループを通過するトラフィックのレートを表示したり、サービスタイプおよびボリュームがゾーン トラフィックを表すかどうかを判断したりすることができます。Guard モジュールは、ゾーンに転送されたトラフィック フローの中で、ポリシーによって測定された最も高いレートを持ついくつかのトラフィック フローを表示します。レートは、トラフィックのサンプルに基づいて計算されます。
ポリシーの統計情報を表示するには、ゾーン設定モードで次のコマンドを使用します。
show policies policy-path statistics [num-entries]
表8-17 に、show policies statistics コマンド出力の引数を示します。
|
|
---|---|
|
各ポリシー パス セクションでは、ワイルドカード文字としてアスタリスク(*)を使用できます。ポリシー パス セクションを指定しないと、指定していないセクションが Guard モジュールによってワイルドカード(*)と見なされます。たとえば、tcp_services//analysis//global ポリシーでは、サービスとパケット タイプのセクションにワイルドカードが使用されています。 すべてのポリシーの統計情報を表示するには、ポリシー パスにアスタリスク(*)を入力します。 ポリシー パス セクションの詳細については、「ポリシー パスの使用」を参照してください。 |
|
(オプション)表示するエントリの数。1 ~ 100 の数字を入力します。Guard モジュールは、最大の値を持つポリシーを表示します。 |
次の例は、すべてのゾーン ポリシーの統計情報を表示する方法を示しています。
user@GUARD-conf-zone-scannet#
show policies * statistics
次の例は、ポート 53 で DNS-over-TCP 同期パケットを監視するすべてのポリシーの統計情報を表示する方法を示しています。
user@GUARD-conf-zone-scannet#
show policies dns_tcp/53/*/syns/*
次の例は、ゾーンのグローバル トラフィックの統計情報を表示する方法を示しています。
user@GUARD-conf-zone-scannet#
show policies */*/*/*/global statistics
Guard モジュールは、3 つのテーブルに統計情報を表示します。各テーブルの情報は値によってソートされ、テーブルの一番上に最大値が表示されます。
表8-18 に、show policies statistics コマンド出力テーブルのフィールドを示します。
|
|
---|---|
|
|
たとえば、tcp_services/any/analysis/syns/dst_ip ポリシーの場合、キーは宛先 IP アドレス(dst_ip)です。ポリシーの集約に使用されたトラフィック特性が global である場合、キーには N/A と表示されます。 詳細については、 表8-8 を参照してください。 |
|
ポリシー名。詳細については、「ポリシー パスの使用」を参照してください。 |
|
|
|
ポリシーを通過し、pps 単位で計測されるトラフィックのレート。レートは、トラフィックのサンプルに基づいて計算されます。 |
|
SYN フラグの付いたパケット数と FIN/RST フラグの付いたパケット数の比率。この情報は、syn_by_fin ポリシーでのみ使用できます。 |
(注) Guard モジュールは、データを含まないテーブルを表示しません。
現在のゾーン ポリシーは、 snapshot threshold-selection cur-thresholds コマンドを使用していつでもバックアップできます。
次の例は、現在のポリシー設定をバックアップするために、スナップショットを作成する方法を示しています。
user@GUARD-conf-zone-scannet#
snapshot threshold-selection cur-thresholds