更新时间:2023-11-17 21:28
Smurf攻击是一种病毒攻击,以最初发动这种攻击的程序“Smurf”来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。
Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃。
攻击的过程是这样的:Woodlly Attacker向一个具有大量主机和因特网连接的网络的广播地址发送一个欺骗性Ping分组(echo 请求),这个目标网络被称为反弹站点,而欺骗性Ping分组的源地址就是Woodlly希望攻击的系统。
这种攻击的前提是,路由器接收到这个发送给IP广播地址(如206.121.73.255)的分组后,会认为这就是广播分组,并且把以太网广播地址FF:FF:FF:FF:FF:FF:映射过来。这样路由器因因特网上接收到该分组,会对本地网段中的所有主机进行广播。
读者肯定能够想到下面会发生什么情况。网段中的所有主机都会向欺骗性分组的IP地址发送echo响应信息。如果这是一个很大的以太网段,可以会有500个以上的主机对收到的echo请求进行回复。
由于多数系统都会尽快地处理ICMP传输信息,Woodlly Attacker把分组的源地址设置为目标系统,因此目标系统都很快就会被大量的echo信息吞没,这样轻而易举地就能够阻止该系统处理其它任何网络传输,从而引起拒绝为正常系统服务。
这种攻击不仅影响目标系统,还影响目标公司的因特网连接。如果反弹站点具有T3连接(45Mbps),而目标系统所在的公司使用的是租用线路(56Kbps),则所有进出该公司的通讯都会停止下来。
这种攻击已经很少见,大多数的网络已经对这种攻击免疫了。
在分析Smurf 攻击原理的基础上,本文提出Smurf 攻击的检测方法。
ICMP 应答风暴的检测
对网络进行监控和统计发现, 若出现Smurf 攻击, 则会出现大量的echo 报文。由于存在echo 应答风暴, 此时,echo 报文在所有报文中所占的比例大大增加。所以,如出现这种情况, 就可能遭到了Smurf 攻击。
报文丢失率和重传率的上升
由于echo 风暴造成网络负载过重,会出现大量报文丢失和报文重传现象。所以,若有明显的报文丢失率和重传率上升现象,就有可能遭到了Smurf 攻击。
常出现意外的连接重置的现象
在受到Smurf 攻击时, 由于网络重载,会使其它的网络连接出现意外的中断或重置的现象。如反复出现意外的中断或重置,也可能受到了Smurf 攻击。
挫败一个Smurf攻击的最简单的方法就是对边界路由器的回音应答(echo reply)信息包进行过滤,然后丢弃他们,使网络避免被湮没。
如果你的主机不幸成为了Smurf攻击的目标,在这儿可以找到很多种方法来限制这种拒绝服务攻击造成的影响。在最近新进修改的Cisco IOS操作系统中,被访问列表所拒绝的数据包直接就被丢弃(其丢弃速度几乎接近于硬件速度)。不过每秒钟每个列表行有两个数据包例外,这就是向中间代理回思科学习视频资料下载中心送ICMP不可达消息的数据包。因此,如果你不想做为别人Ping的目标,那么在边界路由器上就直接可以阻塞掉。
激活这个列表的命令是:
ip icmp rate-limit unreachable
如果必须允许Ping命令,你可以通过使用命令访问速率(Committed Access Rate ,CAR)来限制ICMP的流量。以下列出了其它Cisco IOS的例子:
config t
Access-list 100 permit icmp any {你的网络号} {你的网络子网掩码} echo-reply
Access-list 100 permit icmp any {你的网络号} {你的网络子网掩码} echo
Interface e1
Rate-limit input access-group 100 512000 8000 8000 conform action transmit exceed action drop
这个例子限制ICMP的传输速率不能超过512Kbps,突发速率不能超过8000bits。所有多出的包将被丢弃。可以有多个速率限制命令同时添加到一个接口上,可以对不同的数据包进行不同的速率限制。
查找黑客
对发起Smurf攻击的机器的定位非常困难,但并不是不可能的。不过在你开始查找之前,应该考虑是否使用法律这一重要武器。
为了跟踪这类拒绝服务攻击的真正源头,可以采取以下几步:
确定中间代理的IP地址空间,并与他们的网络管理员取得联系。记住你看到的这些包是从中间代理那儿来的,并不是从真正黑客处来的。那些以被攻击的主机的IP地址为源IP地址的进入该网络的数据包,就是黑客使用的源地址欺骗数据包。
从这些数据包上取得源IP地址欺骗的物理地址,并用这些物理地址做一下ip arp(适用于Cisco IOS),得到的结果就是源IP地址欺骗来的最后一跳节点的IP地址。与他们的管理员取得联系。
重复以上几步,直到你找到与跟踪的物理地址相同的路由器。
在cisco路由器上配置如下可以防止将包传递到广播地址上:
Router(config-if)# no ip directed-broadcast
why this command can prevent Smurf attacks?
The reason is that it prevents your network device from being a reflector in an attack.