Cisco セキュリティ アプライアンス コマンドライン コンフィギュレーション ガイド v.8.0
ネットワーク攻撃の防止
ネットワーク攻撃の防止
発行日;2012/02/01 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 20MB) | フィードバック

目次

ネットワーク攻撃の防止

脅威検出の設定

基本脅威検出の設定

基本脅威検出の概要

基本脅威検出の設定

基本脅威検出の管理

スキャン脅威検出の設定

スキャン脅威検出のイネーブル化

遮断したホストの管理

攻撃者とターゲットの表示

脅威統計情報の設定および表示

脅威統計情報の設定

脅威統計情報の表示

TCP 正規化の設定

TCP 正規化の概要

TCP ノーマライザの正規化

接続の制限値とタイムアウトの設定

接続制限値の概要

TCP 代行受信の概要

クライアントレス SSL 互換での管理パケットの TCP 代行受信のディセーブル化

デッド接続検出(DCD)の概要

TCP シーケンスのランダム化の概要

接続の制限値とタイムアウトのイネーブル化

IP スプーフィングの防止

フラグメント サイズの設定

不要な接続のブロック

基本 IPS をサポートする IP 監査の設定

ネットワーク攻撃の防止

この章では、脅威検出、TCP 正規化、TCP 接続と UDP 接続の制限、およびその他の保護機能を設定することによってネットワーク攻撃を防止する方法について説明します。

この章は、次の項で構成されています。

「脅威検出の設定」

「TCP 正規化の設定」

「接続の制限値とタイムアウトの設定」

「IP スプーフィングの防止」

「フラグメント サイズの設定」

「不要な接続のブロック」

「基本 IPS をサポートする IP 監査の設定」

脅威検出の設定

この項では、スキャン脅威検出と基本脅威検出の設定方法、および統計情報に基づいた脅威の分析方法について説明します。脅威検出はシングル モードだけで使用できます。

この項は、次の内容で構成されています。

「基本脅威検出の設定」

「スキャン脅威検出の設定」

「脅威統計情報の設定および表示」

基本脅威検出の設定

基本脅威検出では、DoS 攻撃のような攻撃に関連している可能性があるアクティビティを検出します。基本脅威検出はデフォルトでイネーブルになっています。

この項は、次の内容で構成されています。

「基本脅威検出の概要」

「基本脅威検出の設定」

「基本脅威検出の管理」

基本脅威検出の概要

セキュリティ アプライアンスは、基本脅威検出を使用して、次の理由でドロップしたパケットおよびセキュリティ イベントの割合を監視します。

アクセス リストによる拒否

不正なパケット形式(invalid-ip-header や invalid-tcp-hdr-length)

接続制限の超過(システム全体のリソース制限とコンフィギュレーションで設定されている制限の両方)

DoS 攻撃の検出(無効な SPI、ステートフル ファイアウォール検査の不合格)

基本ファイアウォール検査の不合格(このオプションは、ここに列挙されているファイアウォール関連のパケット ドロップすべてを含む総合レートです。インターフェイスの過負荷、アプリケーション検査で不合格のパケット、スキャン攻撃の検出のような、ファイアウォールに関連しないパケット ドロップは含まれていません)

疑わしい ICMP パケットの検出

アプリケーション検査に不合格のパケット

インターフェイスの過負荷

検出されたスキャン攻撃(このオプションでは、スキャン攻撃を監視します。たとえば、最初の TCP パケットが SYN パケットでないことや、TCP 接続で 3 ウェイ ハンドシェイクに失敗することです。フル スキャン脅威検出(「スキャン脅威検出の設定」を参照)では、このスキャン攻撃レート情報を収集し、ホストを攻撃者として分類して自動的に遮断することによって対処します)

不完全セッションの検出(TCP SYN 攻撃の検出やデータなし UDP セッション攻撃の検出)

セキュリティ アプライアンスは、脅威を検出するとただちにシステム ログ メッセージ(733100)を送信します。

基本脅威検出は、ドロップや潜在的な脅威があった場合だけにパフォーマンスに影響を与えます。この状況でも、パフォーマンスへの影響は大きくありません。

基本脅威検出の設定

基本脅威検出のイネーブル化やディセーブル化、およびデフォルト制限の変更を含め、基本脅威検出を設定するには、次の手順を実行します。


ステップ 1 基本脅威検出をイネーブルにする(ディセーブルになっている場合)には、次のコマンドを入力します。

hostname(config)# threat-detection basic-threat
 

デフォルトでは、このコマンドを実行すると、パケット ドロップや不完全セッションの検出のような、特定タイプのセキュリティ イベントの検出機能がイネーブルになります。必要に応じて、各イベント タイプのデフォルト設定を上書きできます。

イベント レートが超過すると、セキュリティ アプライアンスはシステム メッセージを送信します。セキュリティ アプライアンスは、一定間隔における平均イベント レートと短期バースト間隔におけるバースト イベント レートの 2 種類のレートを追跡します。バースト レート間隔は、平均レート間隔の 1/60 と 10 秒のうち、いずれか大きいほうです。セキュリティ アプライアンスは、受信するイベントごとに平均レート制限とバースト レート制限をチェックします。両方のレートが超過している場合、セキュリティ アプライアンスは、バースト期間におけるレート タイプごとに最大 1 つのメッセージの割合で 2 つの別々のシステム メッセージを送信します。

基本脅威検出をディセーブルにするには、 no threat-detection basic-threat コマンドを入力します。

表 24-1 に、デフォルト設定を示します。これらのデフォルト設定はすべて、 show running-config all threat-detection コマンドを使用して表示できます。

 

表 24-1 基本脅威検出のデフォルト設定

パケット ドロップの理由
トリガー設定
平均レート
バースト レート

DoS 攻撃の検出

不正なパケット形式

接続制限の超過

疑わしい ICMP パケットの検出

直前の 600 秒間で 100 ドロップ/秒

直前の 10 秒間で 400 ドロップ/秒

直前の 3600 秒間で 80 ドロップ/秒

直前の 60 秒間で 320 ドロップ/秒

スキャン攻撃の検出

直前の 600 秒間で 5 ドロップ/秒

直前の 10 秒間で 10 ドロップ/秒

直前の 3600 秒間で 4 ドロップ/秒

直前の 60 秒間で 8 ドロップ/秒

不完全セッションの検出(TCP SYN 攻撃の検出やデータなし UDP セッション攻撃の検出)(複合)

直前の 600 秒間で 100 ドロップ/秒

直前の 10 秒間で 200 ドロップ/秒

直前の 3600 秒間で 80 ドロップ/秒

直前の 60 秒間で 160 ドロップ/秒

アクセス リストによる拒否

直前の 600 秒間で 400 ドロップ/秒

直前の 10 秒間で 800 ドロップ/秒

直前の 3600 秒間で 320 ドロップ/秒

直前の 60 秒間で 640 ドロップ/秒

基本ファイアウォール検査に不合格

アプリケーション検査に不合格のパケット

直前の 600 秒間で 400 ドロップ/秒

直前の 10 秒間で 1600 ドロップ/秒

直前の 3600 秒間で 320 ドロップ/秒

直前の 60 秒間で 1280 ドロップ/秒

インターフェイスの過負荷

直前の 600 秒間で 2000 ドロップ/秒

直前の 10 秒間で 8000 ドロップ/秒

直前の 3600 秒間で 1600 ドロップ/秒

直前の 60 秒間で 6400 ドロップ/秒

ステップ 2 (オプション)1 つ以上のタイプのイベントのデフォルト設定を変更するには、次のコマンドを入力します。

hostname(config)# threat-detection rate {acl-drop | bad-packet-drop | conn-limit-drop | dos-drop | fw-drop | icmp-drop | inspect-drop | interface-drop | scanning-threat | syn-attack} rate-interval rate_interval average-rate av_rate burst-rate burst_rate
 

各イベント タイプの説明については、「基本脅威検出の概要」を参照してください。

scanning-threat キーワードを指定してこのコマンドを使用すると、スキャン脅威検出機能でもこのコマンドが使用されます(「スキャン脅威検出の設定」を参照)。このコマンドで設定するレートにより、ホストが攻撃者またはターゲットと見なされる条件が決まります。このコマンドを使用してレートを設定しない場合は、基本脅威検出機能に加えてスキャン脅威検出機能でもデフォルト値が使用されます。基本脅威検出を設定しない場合でも、 scanning-threat キーワードを指定してこのコマンドを使用し、スキャン脅威検出でのレート制限を設定できます。

rate-interface rate_interval 引数は、600 ~ 2592000 秒(30 日)の間の値です。レート間隔を使用して、ドロップの平均の期間が決まります。また、バーストしきい値のレート間隔も決まります(次を参照)。

average-rate av_rate 引数は、0 ~ 2147483647 ドロップ/秒の間の値に設定できます。

burst-rate burst_rate 引数は、0 ~ 2147483647 ドロップ/秒の値に設定できます。バースト レートは、 N 秒ごとの平均レートとして計算されます。ここで、 N はバースト レート間隔です。バースト レート間隔は、平均レート間隔の 1/60 と 10 秒のうち、いずれか大きいほうです。

イベント タイプごとに、異なるレート間隔を 3 つまで設定できます。


 

次の例では、基本脅威検出をイネーブルにし、DoS 攻撃のトリガーを変更しています。

hostname(config)# threat-detection basic-threat
hostname(config)# threat-detection rate dos-drop rate-interval 600 average-rate 60 burst-rate 100
 

基本脅威検出の管理

基本脅威統計情報を表示するには、次のコマンドを入力します。

hostname# show threat-detection rate [min-display-rate min_display_rate] [acl-drop |
bad-packet-drop | conn-limit-drop | dos-drop | fw-drop | icmp-drop | inspect-drop |
interface-drop | scanning-threat | syn-attack]
 

min-display-rate min_display_rate 引数により、毎秒あたりの最小表示レートを超過する統計情報に表示内容を限定します。 min_display_rate は、0 ~ 2147483647 の値に設定できます。

各イベント タイプの説明については、「基本脅威検出の概要」を参照してください。

出力には、直前の 10 分と直前の 1 時間の固定された 2 期間における平均レート(イベント数/秒)が表示されます。また、最後に終了したバースト間隔(平均レート間隔の 1/60 と 10 秒のうち、いずれか大きいほう)における現在のバースト レート(イベント数/秒)、レートが超過した回数(トリガーした回数)、およびその期間の合計イベント数も表示されます。

セキュリティ アプライアンスは、各バースト期間の終わりにカウント数を保存します。合計で 60 回分のバースト間隔を保存します。現在進行中の未完了バースト間隔は、平均レートに含まれません。たとえば、平均レート間隔が 20 分の場合、バースト間隔は 20 秒になります。最後のバースト間隔が 3:00:00 ~ 3:00:20 で、3:00:25 に show コマンドを使用すると、最後の 5 秒間は出力に含まれません。

この規則における唯一の例外は、合計イベント数を計算するときに、未完了バースト間隔のイベント数が最も古いバースト間隔(1/60 個目)のイベント数よりすでに多くなっている場合です。この場合、セキュリティ アプライアンスは、最後の 59 回の完了間隔で合計イベント数を計算し、その時点での未完了バースト間隔のイベント数を加算します。この例外により、イベント数の大幅な増加をリアルタイムで監視できます。

基本脅威統計情報を消去するには、次のコマンドを入力します。

hostname# clear threat-detection rate
 

次に、 show threat-detection rate コマンドの出力例を示します。

hostname# show threat-detection rate
 
Average(eps) Current(eps) Trigger Total events
10-min ACL drop: 0 0 0 16
1-hour ACL drop: 0 0 0 112
1-hour SYN attck: 5 0 2 21438
10-min Scanning: 0 0 29 193
1-hour Scanning: 106 0 10 384776
1-hour Bad pkts: 76 0 2 274690
10-min Firewall: 0 0 3 22
1-hour Firewall: 76 0 2 274844
10-min DoS attck: 0 0 0 6
1-hour DoS attck: 0 0 0 42
10-min Interface: 0 0 0 204
1-hour Interface: 88 0 0 318225

スキャン脅威検出の設定

典型的なスキャン攻撃では、あるホストがサブネット内の IP アドレスにアクセスできるかどうかを 1 つずつ試します(サブネット内の複数のホストすべてを順にスキャンするか、1 つのホストまたはサブネットの複数のポートすべてを順にスイープする)。スキャン脅威検出機能は、いつホストがスキャンを実行するかを判別します。トラフィック シグニチャに基づく IPS スキャン検出とは異なり、セキュリティ アプライアンスのスキャン脅威検出機能では広範なデータベースが維持され、そこに格納されているホストの統計情報を使用してスキャン アクティビティがあるかどうかを分析できます。

ホスト データベースは、アクティビティを返さない接続、閉じられているサービス ポートへのアクセス、非ランダム IPID のような脆弱な TCP の動作、およびその他の疑わしいアクティビティを追跡します。

攻撃者に関するシステム ログ メッセージを送信するようにセキュリティ アプライアンスを設定できます。または自動的にホストを排除できます。


注意 スキャン脅威検出機能は、ホストベースとサブネットベースのデータ構造と情報を作成および収集する間、セキュリティ アプライアンスのパフォーマンスとメモリに大きな影響を与える可能性があります。

この項は、次の内容で構成されています。

「スキャン脅威検出のイネーブル化」

「遮断したホストの管理」

「攻撃者とターゲットの表示」

スキャン脅威検出のイネーブル化

スキャン脅威検出を設定するには、次の手順を実行します。


ステップ 1 スキャン脅威検出をイネーブルにするには、次のコマンドを入力します。

hostname(config)# threat-detection scanning-threat [shun [except {ip-address ip_address mask | object-group network_object_group_id}]]
 

デフォルトでは、ホストが攻撃者であると識別されると、システム ログ メッセージ 733101 が生成されます。

shun キーワードを指定すると、セキュリティ アプライアンスがホストを攻撃者と識別したときにホスト接続が自動的に切断され、さらにシステム ログ メッセージも送信されます。

except ip-address または except object-group キーワードを入力すると、遮断されないようにホスト IP アドレスを除外できます。このコマンドを複数回入力し、複数の IP アドレスまたはネットワーク オブジェクト グループを特定して遮断対象から除外できます。

ステップ 2 (オプション)ホスト攻撃を排除する時間の長さを設定するには、次のコマンドを入力します。

hostname(config)# threat-detection scanning-threat shun duration seconds
 

ここで、 seconds 引数は 10 ~ 2592000 秒の値です。デフォルトは 3600 秒(1 時間)です。

ステップ 3 (オプション)セキュリティ アプライアンスがホストを攻撃者またはターゲットとして識別する場合のデフォルト イベント制限を変更するには、次のコマンドを入力します。

hostname(config)# threat-detection rate scanning-threat rate-interval rate_interval average-rate av_rate burst-rate burst_rate
 

スキャン脅威レートを超過すると、セキュリティ アプライアンスはシステム メッセージを送信し、必要に応じて攻撃者を遮断します。セキュリティ アプライアンスは、一定間隔における平均イベント レートと短期バースト間隔におけるバースト イベント レートの 2 種類のレートを追跡します。バースト イベント レートは、平均レート間隔の 1/60 と 10 秒のうち、いずれか大きいほうです。スキャン攻撃の一部と見なされるイベントが検出されるたびに、セキュリティ アプライアンスは平均レート制限とバースト レート制限をチェックします。ホストから送信されるトラフィックがいずれかのレートを超えると、そのホストは攻撃者と見なされます。ホストが受信したトラフィックがいずれかのレートを超えると、そのホストはターゲットと見なされます。

このコマンドが基本脅威検出コンフィギュレーションの一部としてすでに設定されている場合(「基本脅威検出の設定」を参照)、それらの設定はスキャン脅威検出機能でも共有され、機能ごとに別々のレートを設定できません。このコマンドを使用してレートを設定しない場合は、基本脅威検出機能とスキャン脅威検出機能の両方でデフォルト値が使用されます。デフォルト値は次のとおりです。

 

表 24-2 スキャン脅威検出のデフォルト レート制限値

平均レート
バースト レート

直前の 600 秒間で 5 ドロップ/秒

直前の 10 秒間で 10 ドロップ/秒

直前の 3600 秒間で 5 ドロップ/秒

直前の 60 秒間で 10 ドロップ/秒

rate_interval は、300 ~ 2592000 秒(30 日)の間の値です。レート間隔は、イベント数の平均を求めるときの期間を決定するために使用されます。また、バーストしきい値のレート間隔も決まります(次を参照)。

average-rate av_rate 引数は、0 ~ 2147483647 ドロップ/秒の間の値に設定できます。

burst-rate burst_rate 引数は、0 ~ 2147483647 ドロップ/秒の値に設定できます。バースト レートは、 N 秒ごとの平均レートとして計算されます。ここで、 N はバースト レート間隔です。バースト レート間隔は、レート間隔の 1/60 と 10 秒のうち、いずれか大きいほうです。

レート間隔が異なるコマンドを 3 つまで設定できます。


 

次の例では、スキャン脅威検出をイネーブルにし、10.1.1.0 ネットワークのホストを除いて、攻撃者として分類されたホストを自動的に遮断します。スキャン脅威検出のデフォルト レート制限も変更されます。

hostname(config)# threat-detection scanning-threat shun except ip-address 10.1.1.0 255.255.255.0
hostname(config)# threat-detection rate scanning-threat rate-interval 1200 average-rate 10 burst-rate 20
hostname(config)# threat-detection rate scanning-threat rate-interval 2400 average-rate 10 burst-rate 20
 

遮断したホストの管理

現在遮断されているホストを表示するには、次のコマンドを入力します。

hostname# show threat-detection shun
 

ホストの遮断状態を解除するには、次のコマンドを入力します。

hostname# clear threat-detection shun [ip_address [mask]]
 

IP アドレスを指定しない場合は、すべてのホストが遮断リストから消去されます。

次に、 show threat-detection shun コマンドの出力例を示します。

hostname# show threat-detection shun
Shunned Host List:
10.1.1.6
192.168.6.7
 

攻撃者とターゲットの表示

セキュリティ アプライアンスが攻撃者(遮断リストのホストを含む)と判断したホスト、および攻撃のターゲットにされたホストを表示するには、次のコマンドを入力します。

hostname# show threat-detection scanning-threat [attacker | target]
 

オプションを入力しない場合は、攻撃者とターゲットの両方のホストが表示されます。

次に、 show threat-detection scanning-threat attacker コマンドの出力例を示します。

hostname# show threat-detection scanning-threat attacker
10.1.2.3
10.8.3.6
209.165.200.225
 

脅威統計情報の設定および表示

広範な統計情報を収集するようにセキュリティ アプライアンスを設定することができます。脅威検出の統計情報には、許可されたトラフィックとドロップされたトラフィックの両方のレートが表示されます。基本脅威検出の統計情報を表示するには、「基本脅威検出の管理」を参照してください。デフォルトでは、アクセス リストの統計情報はイネーブルになっています。


注意 統計情報をイネーブルにすると、イネーブルにする統計情報のタイプに応じて、セキュリティ アプライアンスのパフォーマンスが影響を受けます。threat-detection statistics host コマンドを入力すると、パフォーマンスが著しく影響されます。トラフィックの負荷が高い場合、このタイプの統計情報は一時的にイネーブルにすることを検討できます。一方、threat-detection statistics port コマンドの影響は大きくありません。

この項は、次の内容で構成されています。

「脅威統計情報の設定」

「脅威統計情報の表示」

脅威統計情報の設定

デフォルトでは、アクセス リストの統計情報はイネーブルになっています。 すべての 統計情報をイネーブルにするには、次のコマンドを入力します。

hostname(config)# threat-detection statistics
 

特定の統計情報だけをイネーブルにするには、各統計情報のタイプに次のコマンドを 1 つ以上入力します。

アクセス リスト:アクセス リストの統計情報をイネーブルにする(ディセーブルになっている場合)には、次のコマンドを入力します。

hostname(config)# threat-detection statistics access-list
 

アクセス リスト統計情報は、 show threat-detection top access-list コマンドだけによって表示されます。

ホスト:ホストの統計情報をイネーブルにするには、次のコマンドを入力します。

hostname(config)# threat-detection statistics host
 

ホストがアクティブで、スキャン脅威ホスト データベース内に存在する限り、ホスト統計情報は累積されます。ホストは、非アクティブになってから 10 分後にデータベースから削除されます(統計情報も消去されます)。

TCP ポートと UDP ポート:TCP ポートと UDP ポートの統計情報をイネーブルにするには、次のコマンドを入力します。

hostname(config)# threat-detection statistics port
 

非 TCP/UDP IP ポート:非 TCP/UDP IP プロトコルの統計情報をイネーブルにするには、次のコマンドを入力します。

hostname(config)# threat-detection statistics protocol
 

TCP 代行受信:TCP 代行受信によって代行受信される攻撃の統計情報をイネーブルにするには(TCP 代行受信をイネーブルにするには「接続の制限値とタイムアウトの設定」を参照)、次のコマンドを入力します。

hostname(config)# threat-detection statistics tcp-intercept [rate-interval minutes] [burst-rate attacks_per_sec] [average-rate attacks_per_sec]
 

ここで、 rate-interval minutes 引数には、履歴モニタリング ウィンドウのサイズを 1 ~ 1440 分の範囲で設定します。デフォルトは 30 分です。セキュリティ アプライアンスはレート間隔中に攻撃回数を 60 回サンプリングするため、デフォルトの 30 分間は 60 秒ごとに統計情報が収集されます。

burst-rate attacks_per_sec 引数には、syslog メッセージ生成のしきい値を 25 ~ 2147483647 の範囲で設定します。デフォルトは 1 秒あたり 400 です。バースト レートが超過すると、syslog メッセージ 733104 が生成されます。

average-rate attacks_per_sec 引数には、syslog メッセージ生成の平均レートのしきい値を 25 ~ 2147483647 の範囲で設定します。デフォルトは 1 秒あたり 200 です。平均レートが超過すると、syslog メッセージ 733105 が生成されます。

脅威統計情報の表示

ディスプレイの出力には、次の情報が表示されます。

固定された期間の平均レート(イベント数/秒)

終了した最後のバースト間隔における現在のバースト レート(イベント数/秒)(バースト間隔は、平均レート間隔の 1/60 と 10 秒のうち、いずれか大きいほうの間隔)

レートを超過した回数(ドロップされたトラフィックの統計情報の場合だけ)

固定された期間におけるイベントの合計数

セキュリティ アプライアンスは、各バースト期間の終わりにカウント数を保存します。合計で 60 回分のバースト間隔を保存します。現在進行中の未完了バースト間隔は、平均レートに含まれません。たとえば、平均レート間隔が 20 分の場合、バースト間隔は 20 秒になります。最後のバースト間隔が 3:00:00 ~ 3:00:20 で、3:00:25 に show コマンドを使用すると、最後の 5 秒間は出力に含まれません。

この規則における唯一の例外は、合計イベント数を計算するときに、未完了バースト間隔のイベント数が最も古いバースト間隔(1/60 個目)のイベント数よりすでに多くなっている場合です。この場合、セキュリティ アプライアンスは、最後の 59 回の完了間隔で合計イベント数を計算し、その時点での未完了バースト間隔のイベント数を加算します。この例外により、イベント数の大幅な増加をリアルタイムで監視できます。

統計情報を表示するには、次のいずれかのコマンドを入力します。

上位 10 件の統計情報を表示するには、次のコマンドを入力します。

hostname# show threat-detection statistics [min-display-rate min_display_rate] top [[access-list | host | port-protocol] [rate-1 | rate-2 | rate-3] | tcp-intercept [all] detail]]
 

min-display-rate min_display_rate 引数により、毎秒あたりの最小表示レートを超過する統計情報に表示内容を限定します。 min_display_rate は、0 ~ 2147483647 の値に設定できます。

オプションを入力しない場合は、カテゴリ全体での上位 10 件の統計情報が表示されます。

許可 ACE と拒否 ACE の両方を含め、パケットに一致する上位 10 件の ACE を表示するには、 access-list キーワードを使用します。この表示では、許可および拒否されたトラフィックが区別されません。 threat-detection basic-threat コマンドを使用して基本脅威検出をイネーブルにする場合は、 show threat-detection rate access-list コマンドを使用して、アクセス リストによる拒否を追跡できます。

ホスト統計情報だけを表示するには、 host キーワードを使用します。

ポートおよびプロトコルの統計情報を表示するには、 port-protocol キーワードを使用します。 port-protocol キーワードを指定すると、TCP/UDP ポート タイプと IP プロトコル タイプを組み合せた統計情報が表示されます。TCP(プロトコル 6)と UDP(プロトコル 17)は、IP プロトコルの表示には含まれていませんが、TCP ポートと UDP ポートはポートの表示に含まれています。これらのタイプ(ポートまたはプロトコル)の 1 つの統計情報だけをイネーブルにすると、イネーブルにされた統計情報だけが表示されます。

TCP 代行受信の統計情報を表示するには、 tcp-intercept キーワードを使用します。この表示には、攻撃を受けている上位 10 件の保護されたサーバが含まれます。 all キーワードは、すべての追跡されたサーバの履歴データを表示します。 detail キーワードは、履歴サンプリング データを表示します。セキュリティ アプライアンスはレート間隔中に攻撃回数を 60 回サンプリングするため、デフォルトの 30 分間は 60 秒ごとに統計情報が収集されます。

rate-1 キーワードを指定すると、表示できる最小固定レート間隔の統計情報が表示され、 rate-2 を指定すると次に大きなレート間隔の統計情報が表示されます。3 つの間隔が定義されている場合には、 rate-3 を指定すると最大レート間隔の統計情報が表示されます。たとえば、ディスプレイに直前の 1 時間、8 時間、および 24 時間の統計情報が表示されるとします。 rate-1 キーワードを設定すると、セキュリティ アプライアンスは 1 時間の統計情報だけを表示します。

すべてのホスト、または特定のホストやサブネットの統計情報を表示するには、次のコマンドを入力します。

hostname# show threat-detection statistics [min-display-rate min_display_rate] host [ip_address [mask]]
 

すべてのポート、または特定のポートやポート範囲の統計情報を表示するには、次のコマンドを入力します。

hostname# show threat-detection statistics [min-display-rate min_display_rate] port [start_port[-end_port]]
 

すべての IP プロトコルまたは特定のプロトコルの統計情報を表示するには、次のコマンドを入力します。

hostname# show threat-detection statistics [min-display-rate min_display_rate] protocol [protocol_number | ah | eigrp | esp | gre | icmp | igmp | igrp | ip | ipinip | ipsec | nos | ospf | pcp | pim | pptp | snp | tcp | udp]
 

protocol_number 引数は、0 ~ 255 の整数です。

次に、 show threat-detection statistics host コマンドの出力例を示します。

hostname# show threat-detection statistics host
 
Average(eps) Current(eps) Trigger Total events
Host:10.0.0.1: tot-ses:289235 act-ses:22571 fw-drop:0 insp-drop:0 null-ses:21438 bad-acc:0
1-hour Sent byte: 2938 0 0 10580308
8-hour Sent byte: 367 0 0 10580308
24-hour Sent byte: 122 0 0 10580308
1-hour Sent pkts: 28 0 0 104043
8-hour Sent pkts: 3 0 0 104043
24-hour Sent pkts: 1 0 0 104043
20-min Sent drop: 9 0 1 10851
1-hour Sent drop: 3 0 1 10851
1-hour Recv byte: 2697 0 0 9712670
8-hour Recv byte: 337 0 0 9712670
24-hour Recv byte: 112 0 0 9712670
1-hour Recv pkts: 29 0 0 104846
8-hour Recv pkts: 3 0 0 104846
24-hour Recv pkts: 1 0 0 104846
20-min Recv drop: 42 0 3 50567
1-hour Recv drop: 14 0 1 50567
Host:10.0.0.0: tot-ses:1 act-ses:0 fw-drop:0 insp-drop:0 null-ses:0 bad-acc:0
1-hour Sent byte: 0 0 0 614
8-hour Sent byte: 0 0 0 614
24-hour Sent byte: 0 0 0 614
1-hour Sent pkts: 0 0 0 6
8-hour Sent pkts: 0 0 0 6
24-hour Sent pkts: 0 0 0 6
20-min Sent drop: 0 0 0 4
1-hour Sent drop: 0 0 0 4
1-hour Recv byte: 0 0 0 706
8-hour Recv byte: 0 0 0 706
24-hour Recv byte: 0 0 0 706
1-hour Recv pkts: 0 0 0 7
 

表 24-3 に、各フィールドの説明を示します。

 

表 24-3 show threat-detection statistics host のフィールド

フィールド
説明

Host

ホストの IP アドレスを表示します。

tot-ses

ホストがデータベースに追加されて以降の、このホストでの合計セッション数を表示します。

act-ses

ホストが現在関係しているアクティブなセッションの合計数を表示します。

fw-drop

ファイアウォールでのドロップ数を表示します。ファイアウォール ドロップは、基本脅威検出で追跡されたすべてのファイアウォール関連のパケット ドロップを含む組み合せレートです。これには、アクセス リストでの拒否、不良パケット、接続制限の超過、DoS 攻撃パケット、疑わしい ICMP パケット、TCP SYN 攻撃パケット、およびデータなし UDP 攻撃パケットが含まれます。インターフェイスの過負荷、アプリケーション検査で不合格のパケット、スキャン攻撃の検出のような、ファイアウォールに関連しないパケット ドロップは含まれていません。

insp-drop

アプリケーション検査に不合格になったためにドロップされたパケット数を表示します。

null-ses

ヌル セッションの数を表示します。ヌル セッションは、3 秒間のタイムアウト内に完了しなかった TCP SYN セッション、およびセッション開始の 3 秒後までにサーバからデータが送信されなかった UDP セッションです。

bad-acc

閉じられた状態のホストのポートに対する不正なアクセスの試行回数を表示します。ポートがヌル セッションと判断されると(上記を参照)、ホストのポートの状態は HOST_PORT_CLOSE に設定されます。そのホストのポートにアクセスしようとするクライアントはすべて、タイムアウトを待たずにすぐ不正アクセスとして分類されます。

Average(eps)

各間隔における平均レート(イベント数/秒)を表示します。

セキュリティ アプライアンスは、各バースト期間の終わりにカウント数を保存します。合計で 60 回分のバースト間隔を保存します。現在進行中の未完了バースト間隔は、平均レートに含まれません。たとえば、平均レート間隔が 20 分の場合、バースト間隔は 20 秒になります。最後のバースト間隔が 3:00:00 ~ 3:00:20 で、3:00:25 に show コマンドを使用すると、最後の 5 秒間は出力に含まれません。

この規則における唯一の例外は、合計イベント数を計算するときに、未完了バースト間隔のイベント数が最も古いバースト間隔(1/60 個目)のイベント数よりすでに多くなっている場合です。この場合、セキュリティ アプライアンスは、最後の 59 回の完了間隔で合計イベント数を計算し、その時点での未完了バースト間隔のイベント数を加算します。この例外により、イベント数の大幅な増加をリアルタイムで監視できます。

Current(eps)

完了した最後のバースト間隔における現在のバースト レート(イベント数/秒)を表示します。バースト間隔は、平均レート間隔の 1/60 と 10 秒のうち、いずれか大きいほうです。Average(eps) の説明で示された例の場合、現在レートは 3:19:30 ~ 3:20:00 のレートです。

Trigger

ドロップされたパケット レートの制限値を超過した回数が表示されます。送受信バイトとパケットの行で指定された有効なトラフィックの場合、この値は常に 0 です。これは、有効なトラフィックをトリガーするレート制限がないためです。

Total events

各レート間隔におけるイベントの合計数を表示します。現在進行中の未完了バースト間隔は、合計イベント数に含まれません。この規則における唯一の例外は、合計イベント数を計算するときに、未完了バースト間隔のイベント数が最も古いバースト間隔(1/60 個目)のイベント数よりすでに多くなっている場合です。この場合、セキュリティ アプライアンスは、最後の 59 回の完了間隔で合計イベント数を計算し、その時点での未完了バースト間隔のイベント数を加算します。この例外により、イベント数の大幅な増加をリアルタイムで監視できます。

20-min、1-hour、8-hour、および 24-hour

これらの固定レート間隔における統計情報を表示します。

Sent byte

ホストから正常に送信されたバイト数を表示します。

Sent pkts

ホストから正常に送信されたパケット数を表示します。

Sent drop

ホストから送信されたパケットの中で、スキャン攻撃の一部であったためにドロップされたパケット数を表示します。

Recv byte

ホストが正常に受信したバイト数を表示します。

Recv pkts

ホストが正常に受信したパケット数を表示します。

Recv drop

ホストが受信したパケットの中で、スキャン攻撃の一部であったためにドロップされたパケット数を表示します。

TCP 正規化の設定

TCP の正規化機能は、異常なパケットの検出時にセキュリティ アプライアンスが動作できる異常なパケットを指定します。たとえば、セキュリティ アプライアンスは、パケットの許可、ドロップ、消去ができます。TCP の正規化によって、セキュリティ アプライアンスを攻撃から保護できます。この項は、次の内容で構成されています。

「TCP 正規化の概要」

「TCP ノーマライザの正規化」

TCP 正規化の概要

TCP ノーマライザには、設定不可能なアクションと設定可能なアクションがあります。通常、接続をドロップまたは消去する、設定不可能なアクションが、常に不正なパケットに適用されます。設定可能なアクション(「TCP ノーマライザの正規化」で説明)は、場合によってはネットワーク要件に応じてカスタマイズする必要があります。

TCP 正規化の次のガイドラインを参照してください。

ノーマライザは、SYN フラッドを保護しません。セキュリティ アプライアンスには、他の方法での SYN フラッド保護が含まれます。

セキュリティ アプライアンスがフェールオーバーにより loose モードにならない場合は、ノーマライザは常に SYN パケットをフロー中の最初のパケットと見なします。

TCP ノーマライザの正規化

この機能はモジュラ ポリシー フレームワークを使用するため、TCP の正規化の実装は、トラフィックの特定、TCP の正規化アクションの指定、およびインターフェイスでの TCP の正規化のアクティブ化で構成されます。詳細については「モジュラ ポリシー フレームワークの使用」を参照してください。

TCP の正規化を設定するには、次の手順を実行します。


ステップ 1 検索する TCP の正規化基準を指定するには、次のコマンドを入力して TCP マップを作成します。

hostname(config)# tcp-map tcp-map-name
 

TCP マップごとに 1 つ以上の設定値をカスタマイズできます。

ステップ 2 (オプション)次の 1 つ以上のコマンド( 表 24-4 を参照)を入力して TCP マップ基準を設定します。すべての基準にデフォルト設定を使用する場合は、TCP マップにコマンドを入力する必要はありません。いくつかの設定をカスタマイズする場合は、入力していないコマンドにデフォルトが使用されます。デフォルト コンフィギュレーションには、次の設定が含まれます。

no check-retransmission
no checksum-verification
exceed-mss allow
queue-limit 0 timeout 4
reserved-bits allow
syn-data allow
synack-data drop
invalid-ack drop
seq-past-window drop
tcp-options range 6 7 clear
tcp-options range 9 255 clear
tcp-options selective-ack allow
tcp-options timestamp allow
tcp-options window-scale allow
ttl-evasion-protection
urgent-flag clear
window-variation allow-connection
 

 

表 24-4 tcp-map コマンド

コマンド
注意

check-retransmission

一貫性のない TCP 再送信を防止します。

checksum-verification

チェックサムを確認します。

exceed-mss { allow | drop }

データ長が TCP 最大セグメント サイズを超えるパケットに対するアクションを設定します。

(デフォルト) allow キーワードは、データ長が TCP 最大セグメント サイズを超えるパケットを許可します。

drop キーワードは、データ長が TCP 最大セグメント サイズを超えるパケットをドロップします。

invalid-ack { allow | drop }

不正な ACK を持つパケットに対するアクションを設定します。次のインスタンス内に不正な ACK が表示される場合があります。

TCP 接続の SYN-ACK 受信ステータスでは、受信された TCP パケットの ACK 番号が、送出される次の TCP パケットのシーケンス番号とまったく同じでない場合は、不正な ACK となります。

受信された TCP パケットの ACK 番号が、送出される次の TCP パケットのシーケンス番号よりも大きい場合は、常に不正な ACK となります。

allow キーワードは、不正な ACK を持つパケットを許可します。

(デフォルト) drop キーワードは、不正な ACK を持つパケットをドロップします。

(注) 不正な ACK を持つ TCP パケットは、WAAS 接続では自動的に許可されます。

queue-limit pkt_num [ timeout seconds ]

バッファリングして TCP 接続の順序に配置できる異常なパケットの最大数を 1 ~ 250 のパケット数に設定します。デフォルトは 0 で、この場合は、この設定がディセーブルにされてトラフィックのタイプに応じてデフォルト システム キュー制限が使用されることを意味します。

アプリケーション検査( inspect コマンド)、IPS( ips コマンド)、および TCP チェック再送信(TCP マップの check-retransmission コマンド)の接続には、3 つのパケットのキュー制限があります。セキュリティ アプライアンスが、異なるウィンドウ サイズを持つ TCP パケットを受信した場合は、キュー制限はアドバタイズされた設定と一致するようにダイナミックに変更されます。

他の TCP 接続の場合は、異常なパケットはそのままパススルーされます。

queue-limit コマンドを 1 以上に設定すると、すべての TCP トラフィックに許可されている異常なパケットの数がこの設定と照合されます。アプリケーション検査、IPS、および TCP チェック再送信トラフィックの場合は、アドバタイズされた設定は無視されます。他の TCP トラフィックの場合は、異常なパケットは、そのままパススルーされるのではなく、バッファリングされて順序正しく配置されます。

timeout seconds 引数には、異常なパケットがバッファ内で待機できる最大時間を 1 ~ 20 秒の範囲で設定します。異常なパケットが順序正しく配置されない場合、またはタイムアウト期間内に通過しない場合は、それらのパケットはドロップされます。デフォルトは 4 秒です。 pkt_num 引数が 0 に設定されている場合はトラフィックのタイムアウトを変更できません。 timeout キーワードを有効にするには、limit を 1 以上に設定する必要があります。

reserved-bits { allow | clear | drop }

TCP ヘッダー内の予約ビットに対するアクションを設定します。

(デフォルト) allow キーワードを指定すると、TCP ヘッダー内の予約ビットを持つパケットが許可されます。

clear キーワードを指定すると、TCP ヘッダー内の予約ビットが消去されてパケットが許可されます。

drop キーワードを指定すると、TCP ヘッダー内の予約ビットを持つパケットがドロップされます。

seq-past-window { allow | drop }

過去のウィンドウのシーケンス番号(つまり、受信された TCP パケットのシーケンス番号で TCP 受信ウィンドウの右端よりも大きいもの)を持つパケットに対するアクションを設定します。

allow キーワードを指定すると、過去のウィンドウのシーケンス番号を持つパケットが許可されます。このアクションは、 queue-limit コマンドが 0(ディセーブル)に設定された場合だけ許可されます。

(デフォルト) drop キーワードを指定すると、過去のウィンドウのシーケンス番号を持つパケットがドロップされます。

synack-data { allow | drop }

データを含んでいる TCP SYNACK パケットに対するアクションを設定します。

allow キーワードを指定すると、データを含んでいる TCP SYNACK パケットが許可されます。

(デフォルト) drop キーワードを指定すると、データを含んでいる TCP SYNACK パケットがドロップされます。

syn-data { allow | drop }

データを持つ SYN パケットに対するアクションを設定します。

(デフォルト) allow キーワードを指定すると、データを持つ SYN パケットが許可されます。

drop キーワードを指定すると、データを持つ SYN パケットがドロップされます。

tcp-options { selective-ack | timestamp | window-scale } { allow | clear }

または

tcp-options range lower upper { allow | clear | drop }

selective-ack、タイムスタンプ、またはウィンドウ スケール TCP オプションを含む TCP オプションを持つパケットに対するアクションを設定します。

(デフォルト) allow キーワードを指定すると、指定されたオプションを持つパケットが許可されます。

range のデフォルト) clear キーワードを指定すると、オプションが消去されてパケットが許可されます。

drop キーワードを指定すると、指定されたオプションを持つパケットがドロップされます。

selective-ack キーワードには、SACK オプションに対するアクションを設定します。

timestamp キーワードには、タイムスタンプ オプションに対するアクションを設定します。タイムスタンプ オプションを消去すると、PAWS と RTT がディセーブルになります。

widow-scale キーワードには、ウィンドウ スケール メカニズム オプションに対するアクションを設定します。

range キーワードは、オプションの範囲を指定します。 lower 引数は、範囲の下限を 6、7、または 9 ~ 255 に設定します。

upper 引数は、範囲の上限を 6、7、または 9 ~ 255 に設定します。

ttl-evasion-protection

TTL 回避保護をディセーブルにします。セキュリティ ポリシーを回避しようとする攻撃を防ぐ場合は、このコマンドを入力しないでください。

たとえば、攻撃者は TTL を非常に短くしてポリシーを通過するパケットを送信できます。TTL がゼロになると、セキュリティ アプライアンスとエンドポイントの間のルータはパケットをドロップします。この時点で、攻撃者は TTL を長くした悪意のあるパケットを送信できます。このパケットは、セキュリティ アプライアンスにとって再送信のように見えるため、通過します。一方、エンドポイント ホストにとっては、このパケットが攻撃者によって受信された最初のパケットになります。この場合、攻撃者はセキュリティによる攻撃の防止を受けず、攻撃に成功します。

urgent-flag { allow | clear }

URG フラグを持つパケットに対するアクションを設定します。URG フラグは、ストリーム中の他のデータよりもプライオリティの高い情報がこのパケットに含まれていることを示すために使用します。TCP RFC では、URG フラグの正確な解釈が明確にされていません。そのため、エンド システムは緊急オフセットをさまざまな方法で処理しており、これにより、エンド システムが攻撃に対して脆弱になることがあります。

allow キーワードを指定すると、URG フラグを持つパケットが許可されます。

(デフォルト) clear キーワードを指定すると、URG フラグが消去されてパケットが許可されます。

window-variation { allow | drop }

予想外のウィンドウ サイズの変更が発生した接続に対するアクションを設定します。ウィンドウ サイズ メカニズムによって、TCP は大きなウィンドウをアドバタイズでき、続いて、過剰な量のデータを受け入れずに、はるかに小さなウィンドウをアドバタイズできます。TCP 仕様により、「ウィンドウの縮小」は極力避けることが推奨されています。この条件が検出された場合に、接続をドロップできます。

(デフォルト) allow キーワードを指定すると、ウィンドウ サイズが変更された接続が許可されます。

drop キーワードを指定すると、ウィンドウ サイズが変更された接続がドロップされます。

ステップ 3 トラフィックを特定するには、 class-map コマンドを使用してクラス マップを追加します。詳細については、「通過トラフィック用のレイヤ 3/4 クラス マップの作成」を参照してください。

たとえば、次のコマンドを使用してすべてのトラフィックを照合できます。

hostname(config)# class-map TCPNORM
hostname(config-cmap)# match any
 

特定のトラフィックを照合するため、アクセス リストと照合できます。

hostname(config)# access list TCPNORM extended permit ip any 10.1.1.1 255.255.255.255
hostname(config)# class-map TCP_norm_class
hostname(config-cmap)# match access-list TCPNORM
 

ステップ 4 クラス マップ トラフィックで実行するアクションを設定するポリシー マップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
hostname(config-pmap)# class class_map_name
hostname(config-pmap-c)#
 

class_map_nameステップ 1 で指定したクラス マップです。

次の例を参考にしてください。

hostname(config)# policy-map TCP_norm_policy
hostname(config-pmap)# class TCP_norm_class
hostname(config-pmap-c)#
 

ステップ 5 次のコマンドを入力して、TCP マップをクラス マップに適用します。

hostname(config-pmap-c)# set connection advanced-options tcp-map-name
 

ステップ 6 1 つ以上のインターフェイスでポリシー マップをアクティブにするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

ここで、 global はポリシー マップをすべてのインターフェイスに適用し、 interface はポリシーを 1 つのインターフェイスに適用します。グローバル ポリシーは 1 つしか適用できません。インターフェイス サービス ポリシーは、特定の機能のグローバル サービス ポリシーよりも優先されます。たとえば、検査が設定されたグローバル ポリシーおよび TCP 正規化が設定されたインターフェイス ポリシーがある場合は、検査と TCP の正規化の両方がインターフェイスに適用されます。ただし、検査が設定されたグローバル ポリシーおよび検査が設定されたインターフェイス ポリシーがある場合は、インターフェイス ポリシー検査だけがインターフェイスに適用されます。


 

たとえば、既知の FTP データ ポートと Telnet ポートの間の TCP ポート範囲に送信されるすべてのトラフィックで緊急フラグと緊急オフセット パケットを許可するには、次のコマンドを入力します。

hostname(config)# tcp-map tmap
hostname(config-tcp-map)# urgent-flag allow
hostname(config-tcp-map)# class-map urg-class
hostname(config-cmap)# match port tcp range ftp-data telnet
hostname(config-cmap)# policy-map pmap
hostname(config-pmap)# class urg-class
hostname(config-pmap-c)# set connection advanced-options tmap
hostname(config-pmap-c)# service-policy pmap global

接続の制限値とタイムアウトの設定

この項では、TCP と UDP の最大接続数、最大初期接続数、クライアントあたりの最大接続数、接続タイムアウト、デッド接続検出を設定する方法、および TCP シーケンスのランダム化をディセーブルにする方法について説明します。セキュリティ アプライアンスを通過する接続、またはセキュリティ アプライアンスへの管理接続に対して制限値を設定できます。この項は、次の内容で構成されています。

「接続制限値の概要」

「接続の制限値とタイムアウトのイネーブル化」


) 最大接続数、最大初期接続数、および TCP シーケンスのランダム化は、NAT コンフィギュレーションでも設定できます。同じトラフィックに対して両方の方法でこれらの設定値を設定した場合、セキュリティ アプライアンスは小さい方の制限値を使用します。TCP シーケンスのランダム化がいずれかの方法でディセーブルにされている場合、セキュリティ アプライアンスは TCP シーケンスのランダム化をディセーブルにします。


接続制限値の概要

この項では、接続を制限する目的について説明します。次の項目を取り上げます。

「TCP 代行受信の概要」

「クライアントレス SSL 互換での管理パケットの TCP 代行受信のディセーブル化」

「デッド接続検出(DCD)の概要」

「TCP シーケンスのランダム化の概要」

TCP 代行受信の概要

初期接続の数を制限することで、DoS 攻撃(サービス拒絶攻撃)から保護されます。セキュリティ アプライアンスでは、クライアントあたりの制限値と初期接続の制限を利用して TCP 代行受信を開始します。代行受信によって、TCP SYN パケットを使用してインターフェイスをフラッディングする DoS 攻撃から内部システムを保護します。初期接続とは、送信元と宛先の間で必要になるハンドシェイクを完了していない接続要求のことです。TCP 代行受信では、SYN クッキー アルゴリズムを使用して TCP SYN フラッディング攻撃を防止します。SYN フラッディング攻撃は、通常はスプーフィングされた IP アドレスから送信されてくる一連の SYN パケットで構成されています。SYN パケットのフラッディングが定常的に生じると、サーバの SYN キューがいっぱいになる状況が続き、接続要求に対してサービスを提供できなくなります。接続の初期接続しきい値を超えると、セキュリティ アプライアンスはサーバのプロキシとして動作し、クライアント SYN 要求に対する SYN-ACK 応答を生成します。セキュリティ アプライアンスがクライアントから ACK を受信すると、クライアントを認証し、サーバへの接続を許可できます。

攻撃を受けている上位 10 のサーバを含む TCP 代行受信の統計情報を表示するには、「脅威統計情報の設定および表示」を参照してください。

クライアントレス SSL 互換での管理パケットの TCP 代行受信のディセーブル化

デフォルトでは、TCP 管理接続では TCP 代行受信が常にイネーブルになっています。TCP 代行受信をイネーブルにすると、3 ウェイ TCP 接続確立のハンドシェイク パケットが代行受信されるため、セキュリティ アプライアンスではクライアントレス SSL のパケットを処理できなくなります。クライアントレス SSL では、クライアントレス SSL 接続で selective-ack や他の TCP オプションを提供するために、3 ウェイ ハンドシェイク パケットを処理する機能が必要になります。管理トラフィックの TCP 代行受信をディセーブルにするには、初期接続制限を設定します。初期接続制限に達した後にだけ TCP 代行受信をイネーブルにできます。

デッド接続検出(DCD)の概要

DCD では、デッド接続を検出して、トラフィックをまだ処理できる接続を期限切れにすることなく、そのデッド接続を期限切れにすることができます。DCD は、アイドル状態でも有効な接続を維持する場合に設定します。

DCD をイネーブルにすると、アイドル タイムアウト動作が変化します。アイドル タイムアウトになると、DCD プローブが 2 つのエンドホストそれぞれに送信され、接続の有効性が判断されます。設定された間隔でプローブが送信された後にエンドホストが応答を返さないと、その接続は解放され、リセット値が設定されていれば各エンドホストに送信されます。両方のエンドホストが応答して接続の有効性が確認されると、アクティビティ タイムアウトは現在時刻に更新され、それに応じてアイドル タイムアウトが再スケジュールされます。

DCD をイネーブルにすると、TCP ノーマライザでのアイドルタイムアウト処理の動作が変更されます。DCD プローブにより、 show conn コマンドで表示される接続でのアイドル タイムアウトがリセットされます。タイムアウト コマンドで設定したタイムアウト値を超過していても、DCD プローブのために存続している接続を判別するため、 show service-policy コマンドには、DCD からのアクティビティ数を示すカウンタが含まれています。

TCP シーケンスのランダム化の概要

各 TCP 接続には、クライアントで生成される ISN とサーバで生成される ISN の 2 つの ISN があります。セキュリティ アプライアンスは、着信と発信の両方向で通過する TCP SYN の ISN をランダム化します。

保護されたホストの ISN をランダム化することにより、攻撃者が新しい接続で次の ISN を予測できないようにして、新規セッションがハイジャックされるのを防ぎます。

TCP 初期シーケンス番号のランダム化は、必要に応じてディセーブルにできます。次の例を参考にしてください。

別の直列接続されたファイアウォールでも初期シーケンス番号がランダム化され、トラフィックに影響することはないものの、両方のファイアウォールでこの動作を実行する必要がない場合。

セキュリティ アプライアンスで eBGP マルチホップを使用しており、eBGP ピアで MD5 を使用している場合。ランダム化により、MD5 チェックサムは分解されます。

セキュリティ アプライアンスで接続のシーケンス番号をランダム化しないようにする必要がある WAAS デバイスを使用する場合。

接続の制限値とタイムアウトのイネーブル化

接続の制限値とタイムアウトを設定するには、次の手順を実行します。


ステップ 1 トラフィックを特定するには、 class-map コマンドを使用してクラス マップを追加します。詳細については、「通過トラフィック用のレイヤ 3/4 クラス マップの作成」または 「管理トラフィック用のレイヤ 3/4 クラス マップの作成」を参照してください。

たとえば、次のコマンドを使用してすべてのトラフィックを照合できます。

hostname(config)# class-map CONNS
hostname(config-cmap)# match any
 

特定のトラフィックを照合するため、アクセス リストと照合できます。

hostname(config)# access list CONNS extended permit ip any 10.1.1.1 255.255.255.255
hostname(config)# class-map CONNS
hostname(config-cmap)# match access-list CONNS
 

ステップ 2 クラス マップ トラフィックで実行するアクションを設定するポリシー マップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
hostname(config-pmap)# class class_map_name
hostname(config-pmap-c)#
 

class_map_nameステップ 1 で指定したクラス マップです。

次の例を参考にしてください。

hostname(config)# policy-map CONNS
hostname(config-pmap)# class CONNS
hostname(config-pmap-c)#
 

ステップ 3 最大接続制限値、または TCP シーケンスのランダム化をイネーブルにするかどうかを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection {[conn-max n] [embryonic-conn-max n] [per-client-embryonic-max n] [per-client-max n] [random-sequence-number {enable | disable}]}
 

ここで、 conn-max n 引数には、許可される同時 TCP 接続または同時 UDP 接続、あるいはその両方の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は無制限接続が許可されることを意味します。

embryonic-conn-max n 引数には、許可される同時初期接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は無制限接続が許可されることを意味します。

per-client-embryonic-max n 引数には、クライアントごとに許可される同時初期接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は無制限接続が許可されることを意味します。

per-client-max n 引数には、クライアントごとに許可される同時接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は無制限接続が許可されることを意味します。

random-sequence-number { enable | disable } キーワードで、TCP シーケンス番号のランダム化をイネーブルまたはディセーブルにします。詳細については、「TCP シーケンスのランダム化の概要」を参照してください。

このコマンドを 1 行ですべて入力することも(順序は任意)、各アトリビュートを別々のコマンドとして入力することもできます。セキュリティ アプライアンスは、コマンドを実行コンフィギュレーション内で 1 行に結合します。


) 管理トラフィックの場合は、conn-max キーワードと embryonic-conn-max キーワードだけを設定できます。


ステップ 4 接続タイムアウトを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection timeout {[embryonic hh:mm:ss] {tcp hh:mm:ss [reset]] [half-closed hh:mm:ss] [dcd hh:mm:ss [max_retries]]}
 

ここで、 embryonic hh : mm : ss キーワードには、TCP 初期(ハーフオープン)接続が閉じられるまでのタイムアウトを 0:0:5 ~ 1193:00:00 の範囲で設定します。デフォルトは 0:0:30 です。この値は 0 に設定することもでき、この場合は接続がタイムアウトしないことを意味します。

tcp hh : mm : ss キーワードには、タイムアウトを 0:5:0 ~ 1193:00:00 の範囲で設定します。デフォルトは 1:0:0 です。この値は 0 に設定することもでき、この場合は接続がタイムアウトしないことを意味します。 reset キーワードを指定すると、接続のタイムアウト時にリセット パケットが TCP エンドポイントに送信されます。セキュリティ アプライアンスは、(同じ送信元ポートと宛先ポートで)タイムアウト フローとして別のパケットを送信するホストに対して応答する場合にだけリセット パケットを送信します。ホストは、リセット パケットを受信すると、内部の接続テーブルからその接続を削除します。その後ホスト アプリケーションは、SYN パケットを使用して新しい接続の確立を試行できます。

half-closed hh : mm : ss キーワードには、アイドル タイムアウトを 0:5:0 ~ 1193:00:00 の範囲で設定します。デフォルトは 0:10:0 です。ハーフクローズ接続は、DCD の影響を受けません。また、セキュリティ アプライアンスは、ハーフクローズ接続を切断するときにリセット パケットを送信しません。

dcd キーワードは、DCD をイネーブルにします。DCD では、デッド接続を検出して、トラフィックをまだ処理できる接続を期限切れにすることなく、そのデッド接続を期限切れにすることができます。DCD は、アイドル状態でも有効な接続を維持する場合に設定します。TCP 接続がタイムアウトすると、セキュリティ アプライアンスは、エンド ホストに DCD プローブを送信して接続の有効性を判断します。最大再試行回数を超えてもエンド ホストの 1 つが応答しない場合、セキュリティ アプライアンスはその接続を解放します。両方のエンド ホストが応答して接続の有効性が確認されると、セキュリティ アプライアンスはアクティビティ タイムアウトを現在時刻に更新し、それに応じてアイドル タイムアウトを再スケジュールします。retry-interval には、DCD プローブに応答がない場合に別のプローブを送信するまで待機する時間を、 hh : mm : ss 形式で、0:0:1 ~ 24:0:0 の範囲で設定します。デフォルト値は 0:0:15 です。max-retries には、接続が無活動状態であると宣言するまでに失敗する DCD の連続再試行回数を設定します。最小値は 1 で、最大値は 255 です。デフォルトは 5 です。

このコマンドを 1 行ですべて入力することも(順序は任意)、各アトリビュートを別々のコマンドとして入力することもできます。コマンドは実行コンフィギュレーションで 1 行に結合されます。


) このコマンドは、管理トラフィックでは使用できません。


ステップ 5 1 つ以上のインターフェイスでポリシー マップをアクティブにするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

policy_map_name は、ステップ 2 で設定したポリシー マップです。すべてのインターフェイスでトラフィックにポリシー マップを適用するには、 global キーワードを使用します。特定のインターフェイスでトラフィックにポリシー マップを適用するには、 interface interface_name オプションを使用します。 interface_name は、 nameif コマンドによってインターフェイスに割り当てた名前です。

グローバル ポリシーは 1 つしか適用できません。インターフェイスのグローバル ポリシーは、そのインターフェイスにサービス ポリシーを適用することで上書きできます。各インターフェイスには、ポリシー マップを 1 つだけ適用できます。


 

次の例では、すべてのトラフィックに対して接続の制限値とタイムアウトを設定しています。

hostname(config)# class-map CONNS
hostname(config-cmap)# match any
hostname(config-cmap)# policy-map CONNS
hostname(config-pmap)# class CONNS
hostname(config-pmap-c)# set connection conn-max 1000 embryonic-conn-max 3000
hostname(config-pmap-c)# set connection timeout tcp 2:0:0 embryonic 0:40:0 half-closed 0:20:0 dcd
hostname(config-pmap-c)# service-policy CONNS interface outside
 

複数のパラメータを使用して set connection コマンドを入力するか、各パラメータを別々のコマンドとして入力できます。セキュリティ アプライアンスは、コマンドを実行コンフィギュレーション内で 1 行に結合します。たとえば、クラス コンフィギュレーション モードで次の 2 つのコマンドを入力するとします。

hostname(config-pmap-c)# set connection conn-max 600
hostname(config-pmap-c)# set connection embryonic-conn-max 50
 

show running-config policy-map コマンドの出力には、2 つのコマンドの結果が単一の結合コマンドとして表示されます。

set connection conn-max 600 embryonic-conn-max 50

IP スプーフィングの防止

この項では、インターフェイスで Unicast Reverse Path Forwarding(Unicast RPF; ユニキャスト RPF)をイネーブルにします。Unicast RPF は、ルーティング テーブルに従い、すべてのパケットが正しい発信元インターフェイスと一致する送信元 IP アドレスを持っていることを確認して、IP スプーフィング(パケットが不正な送信元 IP アドレスを使用し、実際の送信元を隠蔽すること)から保護します。

通常、セキュリティ アプライアンスは、パケットの転送先を判定するときに宛先アドレスだけを調べます。Unicast RPF は、送信元アドレスも調べるようにセキュリティ アプライアンスに指示します。そのため、逆経路転送(Reverse Path Forwarding)と呼ばれます。セキュリティ アプライアンスの通過を許可するすべてのトラフィックについて、送信元アドレスに戻るルートをセキュリティ アプライアンスのルーティング テーブルに含める必要があります。詳細については、RFC 2267 を参照してください。

たとえば、外部トラフィックの場合、セキュリティ アプライアンスはデフォルト ルートを使用して Unicast RPF 保護の条件を満たすことができます。トラフィックが外部インターフェイスから入り、送信元アドレスがルーティング テーブルにない場合、セキュリティ アプライアンスはデフォルト ルートを使用して、外部インターフェイスを発信元インターフェイスとして正しく識別します。

ルーティング テーブルにあるアドレスから外部インターフェイスにトラフィックが入り、このアドレスが内部インターフェイスに関連付けられている場合、セキュリティ アプライアンスはパケットをドロップします。同様に、未知の送信元アドレスから内部インターフェイスにトラフィックが入った場合は、一致するルート(デフォルト ルート)が外部インターフェイスを示しているため、セキュリティ アプライアンスはパケットをドロップします。

Unicast RPF は、次のように実装されます。

ICMP パケットにはセッションがないため、個々のパケットはチェックされません。

UDP と TCP にはセッションがあるため、最初のパケットは逆ルート ルックアップが必要です。セッション中に到着する後続のパケットは、セッションの一部として保持されている既存の状態を使用してチェックされます。最初のパケット以外のパケットは、最初のパケットと同じインターフェイスに到着したことを保証するためにチェックされます。

 

Unicast RPF をイネーブルにするには、次のコマンドを入力します。

hostname(config)# ip verify reverse-path interface interface_name

フラグメント サイズの設定

デフォルトでは、セキュリティ アプライアンスは 1 つの IP パケットにつき最大 24 のフラグメントを許可し、最大 200 のフラグメントのリアセンブリ待ちを許可します。NFS over UDP のような、アプリケーションが日常的にパケットをフラグメント化する場合は、ネットワークでフラグメント化を許可する必要があります。ただし、トラフィックをフラグメント化するアプリケーションがない場合は、フラグメントがセキュリティ アプライアンスを通過できないようにすることをお勧めします。フラグメント化されたパケットは、DoS 攻撃によく使われます。フラグメントの禁止を設定するには、次のコマンドを入力します。

hostname(config)# fragment chain 1 [interface_name]
 

特定のインターフェイスでフラグメント化を禁止する場合は、インターフェイス名を入力します。デフォルトでは、このコマンドはすべてのインターフェイスに適用されます。

不要な接続のブロック

あるホストがネットワークを攻撃しようとしていることがわかった場合(たとえば、システム ログ メッセージで攻撃が示された場合)、送信元 IP アドレスおよびその他の識別パラメータに基づいて、接続をブロック(排除)できます。排除を解除するまで、新しい接続は作成できません。


) トラフィックを監視する IPS(AIP SSM)がある場合は、IPS で自動的に接続を排除できます。


接続を手動で排除するには、次の手順を実行します。


ステップ 1 必要に応じて、次のコマンドを入力し、接続に関する情報を表示します。

hostname# show conn
 

セキュリティ アプライアンスは、各接続に関する情報を次のように表示します。

TCP out 64.101.68.161:4300 in 10.86.194.60:23 idle 0:00:00 bytes 1297 flags UIO
 

ステップ 2 この送信元 IP アドレスからの接続を排除するには、次のコマンドを入力します。

hostname(config)# shun src_ip [dst_ip src_port dest_port [protocol]] [vlan vlan_id]
 

送信元 IP アドレスだけを入力した場合、以後のすべての接続が排除されます。既存の接続はアクティブのままです。

送信元 IP アドレスからの以後の接続をブロックするだけでなく、既存の接続もドロップするには、宛先 IP アドレス、送信元と宛先のポート、およびプロトコルを入力します。デフォルトでは、プロトコルは IP を表す 0 です。

マルチ コンテキスト モードでは、このコマンドは管理コンテキストで入力できます。また、他のコンテキストのインターフェイスに割り当てられている VLAN ID を指定することで、他のコンテキストの接続を排除できます。

ステップ 3 排除を解除するには、次のコマンドを入力します。

hostname(config)# no shun src_ip [vlan vlan_id]
 


 

基本 IPS をサポートする IP 監査の設定

IP 監査機能は、AIP SSM を使用しないセキュリティ アプライアンスに基本 IPS サポートを提供します。シグニチャの基本リストをサポートし、シグニチャと一致するトラフィックに対して 1 つ以上のアクションを実行するようにセキュリティ アプライアンスを設定できます。

IP 監査をイネーブルにするには、次の手順を実行します。


ステップ 1 情報シグニチャに対する IP 監査ポリシーを定義するには、次のコマンドを入力します。

hostname(config)# ip audit name name info [action [alarm] [drop] [reset]]
 

ここで、 alarm はパケットがシグニチャと一致したことを示すシステム メッセージを生成し、 drop はパケットをドロップし、 reset はパケットをドロップして接続を閉じます。アクションを定義しない場合、デフォルト アクションはアラームの生成です。

ステップ 2 攻撃シグニチャに対する IP 監査ポリシーを定義するには、次のコマンドを入力します。

hostname(config)# ip audit name name attack [action [alarm] [drop] [reset]]
 

ここで、 alarm はパケットがシグニチャと一致したことを示すシステム メッセージを生成し、 drop はパケットをドロップし、 reset はパケットをドロップして接続を閉じます。アクションを定義しない場合、デフォルト アクションはアラームの生成です。

ステップ 3 ポリシーをインターフェイスに割り当てるには、次のコマンドを入力します。

ip audit interface interface_name policy_name
 

ステップ 4 シグニチャをディセーブルにする方法およびシグニチャの詳細については、『 Cisco Security Appliance Command Reference 』の ip audit signature コマンドを参照してください。