IP源地址欺骗可以应用在多种不同的攻击方式中,例如TCP SYN flooding、UDP flooding、ICMP flooding等,伪造的源地址可以是不存在的地址,或者是最终攻击目标的地址。
一、在UDP flooding中,攻击者则是通过连接目标系统的changen端口到伪造源地址指向的主机的echo端口,导致changen端口产生大量的随机字符到echo端口,而echo端口又将接收到的字符返回,最后导致两个系统都因耗尽资源而崩溃。
二、为了防御UDP flooding,我们必须防止路由器的诊断端口或服务向管理域之外的区域开放,如果不需要使用这些端口或者服务,应该将其关闭,防止IP源地址欺骗的最有效方法就是验证源地址的真实性,在Cisco路由器上,我们可以采用下列两种方法:
1、在网络边界实施对IP源地址欺骗的过滤,阻止IP源地址欺骗的一个最简单有效的方法是通过在边界路由器使用向内的访问列表,限制下游网络发进来的数据包确实是在允许接受的地址范围,不在允许范围的数据将被删除。同时,为了追溯攻击者,可以使用log记录被删除的数据信息 。
2、使用反向地址发送,使用访问控制列表在下游入口处做ip限制,是基于下游ip地址段的确定性,但在上游入口处,流入数据的ip地址范围有时是难于确定的。在无法确定过滤范围时,一个可行的方法是使用反向地址发送。
三、uRPF的工作原理是:
路由器在一个接口上收到一个数据包时,它会查找CEF(Cisco Express Forward)表,验证是否存在从该接收接口到包中指定的源地址之间的路由,即反向查找路径,验证其真实性,如果不存在这样的路径就将数据包删除,相比访问控制列表,uRPF具有很多优点,例如:耗费CPU资源少、可以适应路由器路由表的动态变化(因为CEF表会跟随路由表的动态变化而更新),所以维护量更少,对路由器的性能影响较小。
四、在攻击中,攻击者将ping数据包发向一个网络的广播地址,路由器在接收到该广播包之后,默认会将这个第三层广播转换成第二层广播,而该广播网段上的所有以太网接口卡在接收到这个第二层广播之后,就会向主机系统发出中断请求,并对这个广播作出回应,从而消耗了主机资源,并且做出的回应可能造成对源地址所指目标的攻击,所以,在绝大多数情况下,应该在边界路由器上禁止定向广播,使用以下接口命令禁止
五、在绝大部分情况下,是不需要使用路由器的定向广播功能的,会使用定向广播的特例也有,例如,如果一台SMB或者NT服务器需要让一个远程的LAN能够看到自己,就必须向这个LAN发送定向广播,但对于这种应用可以通过使用WINS服务器解决。
六、当前绝大部分的操作系统都可以通过特别的设置,使主机系统对于ICMP ECHO广播不做出回应,通过阻止网络上的主机对ICMP ECHO广播做出回应,可以阻止该广播网络成为攻击的帮凶。
总结:
通过上面可以知道,当大量的数据涌入一个接口的时候,即使使用了访问策略对ICMP包进行了删除,接口还是可能会因为忙于不断删除大量数据而导致接口不能提供正常服务,与被动的删除数据相比,一个主动的方法是,在接口上设置承诺速率限制,将特定数据的流量限制在一个范围之内,允许其适量的通过,同时保证了其它流量的正常通过。