ネットワークを介した通信確認のためのツールにpingコマンドがあるが、pingでは通信確認したい相手に対してICMP Echo Requestパケットを送信します。
Pingではこのecho requestを受け取ったホストはICMP Echo Replayパケットを投げ返します。しかし、ICMP Echo Requestパケットを特定のホストではなくブロードキャストアドレス(.255)に対して送信した場合、そのネットワークに属するすべてのコンピュータからICMP Echo Requestパケットが投げ返されてきます。Smurf攻撃はこれを悪用した攻撃方法ですね。
攻撃者は、ICMP Echo Requestパケットの送信元アドレスをターゲットとなるホストのアドレスに偽造して、このパケットをターゲットとなるホストが属するネットワークのブロードキャストアドレスに対して大量に送信し続ければ、そのネットワーク内のすべてのホストからICMP Echo Replayパケットが、ターゲットとなるホストに対して大量に送り続けられることになるわけです。その結果、ターゲットとなるホストは応答不能やサービス停止といった状態に陥ったり、ネットワーク内の負荷が増大するといった被害を受けることになります。
この攻撃を防ぐためには2つあります。
- まずはルータがip directed-broadcast宛てのパケットを中継しないようにする方法
ルータ側のパケットフィルタリング機能を利用し、ネットワーク外部からのブロードキャストアドレス向けのパケットを内部に通さないようにする方法があります。Cisco IOSだとno ip directed broadcastを対象Interfaceに設定しておけば簡単に予防できます。ただdirected broadcastを利用しているアプリケーションがないかを確認することは必要です。 - 次にネットワーク内の各ホストでブロードキャストアドレス向けのICMP Echo Requestパケットに応答しないようにする方法
Cisco IOSルータはデフォルトの動作としては.255のブロードキャストのICMP Echo Requestに反応してしまいますね。これを止めてしまうわけです。勿論255.255.255.255宛てのブロードキャストは停めちゃ駄目です。
例としてネットワークが 172.16.0.0 で、サブネット・マスクが全て 255.255.255.0 の場合、Cisco のアクセスリストを以下のようにします。
access-list 101 deny ip 0.0.0.0 255.255.255.255 172.16.0.255 0.0.255.0
※Sourceは全て、Destinationは172.16.*.255となっているものをフィルタリングするリストです。
0 件のコメント:
コメントを投稿