セキュリティ : Cisco IOS ファイアウォール

UDP 診断ポート サービス拒否攻撃からの防御方法の定義

2002 年 10 月 1 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2007 年 12 月 27 日) | フィードバック


要約

Internet Service Provider(ISP; インターネット サービス プロバイダー)は、ネットワーク デバイスをターゲットとするサービス拒否攻撃を受ける可能性があります。

  • UDP 診断ポート攻撃:ルータの UDP 診断サービスに大量の要求が送信されると、これらの偽の要求を処理するためにすべての CPU リソースが消費されます。

この文書では、UDP 診断ポート攻撃の実行方法を技術的な側面から説明し、Cisco IOS ソフトウェアを使用した防御方法を示します。

問題の説明

UDP 診断ポート攻撃

Cisco ルータでは、echo、chargen、discard など、ある特定の UDP および TCP サービスを提供するために一連の診断ポートがデフォルトで有効になっています。ホストがこれらのポートに接続すると、その要求を処理するために少量の CPU が使用されます。

1 台の攻撃デバイスから、互いに異なるランダムな偽送信元 IP アドレスを持つ大量の要求が集中的に送信された場合、Cisco ルータの制御が追いつかずに処理速度が低下するか、またはルータに障害が発生するおそれがあります。

この問題は、外面上はプロセス テーブルが満杯になったことを示すエラー メッセージ(%SYS-3 NOPROC)や CPU 使用率の大幅な上昇といった症状として現れます。show process exec コマンドを実行すると、同じ名前のプロセス(「UDP Echo」など)が大量に表示されます。

ネットワーク デバイスへの直接の攻撃に対する防御

UDP 診断ポートの無効化

UDP および TCP 診断サービスが組み込まれているネットワーク デバイスはすべて、ファイアウォールによって保護するか、サービスを無効にする必要があります。Cisco ルータでサービスを無効にするには、次のグローバル設定コマンドを使用します。

no service udp-small-servers

  no service tcp-small-servers

これらのコマンドの詳細については、「付録」を参照してください。このコマンドは Cisco IOS ソフトウェア リリース 10.2(9)、10.3(7)、および 11.0(2)で導入され、それ以降のすべてのリリースで使用できます。Cisco IOS 12.0 では、これらのコマンドはデフォルトで設定されています。

ネットワークがいつのまにか攻撃に加担している事態の防止

サービス拒否攻撃の基本的なメカニズムはランダムな IP アドレスを送信元とするトラフィックを生成することであるため、インターネットに送信されるトラフィックをフィルタリングすることをお勧めします。基本的に、「無効な送信元 IP アドレスを持つパケットがあればインターネットに入る前に廃棄する」と考えてください。これはお客様のネットワークへのサービス拒否攻撃を防止するものではありませんが、こうしておけば、攻撃者が攻撃の送信元としてお客様のサイトを選択することはありません。また、お客様のネットワークがこの種の攻撃に利用される事態も回避できます。

無効な IP アドレスの送信の禁止

お客様のネットワークをインターネットに接続するルータ上でパケットをフィルタリングすれば、有効な送信元 IP アドレスを持つパケットだけをお客様のネットワークからインターネットに送信できます。

たとえば、お客様のネットワークが 172.16.0.0 のネットワークから構成されていて、ルータの FDDI0/1 インターフェイスが ISP に接続している場合は、次のようなアクセスリストを適用できます。

access-list 111 permit ip 172.16.0.0 0.0.255.255 any

  access-list 111 deny ip any any log *

  

  interface Fddi 0/1

  ip access-group 111 out

  

* 注:このアクセスリストの最後の行は、インターネットに流入するトラフィックの中に無効な送信元アドレスを持つものがあるかどうかを判別します。この行はそれほど重要ではありませんが、起こりうる攻撃の送信元を特定する際に役立ちます。

無効な IP アドレスの受信の禁止

末端のネットワークにサービスを提供している ISP では、クライアントから到達する着信パケットを検証することをお勧めします。これを行うには、境界ルータ上で着信パケットのフィルタリングを行います。

たとえば、クライアントのネットワーク番号が次のとおりで、これらのネットワークが ISP 側ルータの FDDI インターフェイス(「FDDI0/1」)を介して接続している場合は、次のようなアクセスリストを作成できます。

The network numbers are 192.168.0.0 to 192.168.15.0, and 172.18.0.0

  

  access-list 111 permit ip 192.168.0.0 0.0.15.255 any

  access-list 111 permit ip 172.18.0.0 0.0.255.255 any

  access-list 111 deny ip any any log

  

  interface Fddi 1/0

  ip access-group 111 in

  

注:このアクセスリストの最後の行は、インターネットに流入するトラフィックの中に無効な送信元アドレスを持つものがあるかどうかを判別します。この行はそれほど重要ではありませんが、起こりうる攻撃の送信元を特定する際に役立ちます。

付録:スモール サーバに関する説明

スモール サーバとは、ルータ上で実行されている診断に便利なサーバ(Unix 用語でのデーモン)です。したがって、デフォルトで動作しています。

TCP および UDP のスモール サーバに対するコマンドは次のとおりです。

service tcp-small-servers

  service udp-small-servers

  

ルータによってルーティング以外のサービスを実行しない場合は、これらをオフにすることができます(上記のコマンドの no 形式を使用します)。

TCP スモール サーバには次の機能があります。

  • Echo:入力されたものをエコーバックします。確認するには、telnet x.x.x.x echo とコマンドを入力してください。

  • Chargen:ASCII データのストリームを生成します。確認するには、telnet x.x.x.x chargen とコマンドを入力してください。

  • Discard:入力されたものを廃棄します。確認するには、telnet x.x.x.x discard とコマンドを入力してください。

  • Daytime:システムの日付と時刻が正しい場合、その日時を返します。NTP を実行しているか、EXEC レベルから手動で日付と時刻を設定していれば正確です。確認するには、telnet x.x.x.x daytime とコマンドを入力してください。

UDP スモール サーバには次の機能があります。

  • Echo:送信したデータグラムのペイロードをエコーします。

  • Discard:送信したデータグラムを応答せずに廃棄します。

  • Chargen:送信したデータグラムを廃棄し、CR+LF で終端する 72 文字の ASCII 文字列で応答します。
注:

UNIX 機のほとんどで、上記のスモール サーバがサポートされています。ルータでは finger サービスと async line bootp サービスも提供しています。これらはグローバル設定コマンドの no service fingerno ip bootp server をそれぞれ使用することで、個別にオフにすることができます。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


Document ID: 13367