网络通信 频道

使用思科路由器识别和跟踪数据包泛洪

Smurf反射者
如果入流量由响应请求组成,而不是由响应答复组成(换句话说,如果第一个访问控制列表条目计算的匹配数量远高于合理预测的数量,而第二个条目没有发生这种情况),我们应该怀疑,我们的网络在smurf攻击中被用作反射者,或者遭受了一次ping泛洪攻击。在这两种情况下,如果攻击成功,我们的串行线的输出和输入端将被淹没。实际上,由于扩散因素的原因,输出端的超载比输入端更加严重。

我们可使用如下方法区别smurf攻击和简单的ping泛洪:



Smurf激励数据包会发到定向的广播地址,而并非单播地址,而普通ping泛洪通常使用单播地址。正如上文所述,我们可以在相应的访问控制列表条目上使用log-input关键词看到这些地址。

如果您被用作smurf反射者,则系统的以太网端的show interface命令会显示数量不成比例的输出广播,show ip traffic命令通常还会显示一些数量不成比例的被发送广播。标准的ping泛洪不会增加后台广播流量。

如果您被用作smurf反射者,发往互联网的出流量将多于来自互联网的入流量。一般而言,串行接口上的输出数据包多于输入数据包。即使激励流完全占用输入接口,响应流也将大于激励流,数据包丢弃将被计数。
与smurf攻击的最终目标相比,smurf反射者的选择范围更广。如果反射者要终止攻击,通常只需正确使用no ip directed-broadcast命令(或同等的non-IOS命令)。即使没有实时攻击,这些命令也可以使用在每个配置中。要获得有关防止您的Cisco设备在smurf攻击中被利用的更多信息,请参阅 提高Cisco路由器的安全性。要获得有关smurf攻击和保护非Cisco设备的基本信息,请访问 http://users.quadrunner.com/chuegen/smurf.cgi.

与最终目标相比,smurf反射者与攻击者的距离更近一步,因此它在跟踪攻击方面处于更加有利的位置。如果您要跟踪攻击,则需要与有关ISP进行合作。完成跟踪后,如果要采取行动,您还需要与相关执法机构进行合作。如果要跟踪攻击,应尽早要求执法机构介入。请参阅跟踪部分 以获得有关跟踪泛洪攻击的技术信息。

Fraggle
Fraggle攻击与smurf攻击类似,不同之处是它使用UDP响应请求作为激励流,而没有使用ICMP响应请求。在访问控制列表地第三第四行定义了识别fraggle攻击。受害者的应对措施也相同,不同之处在于:在大多数网络中,UDP回应业务的重要性低于ICMP回应,因此我们可以完全禁用它而不会带来较多地负面影响。

SYN泛洪
我们的访问控制列表的第五行和第六行分别是:


access-list 169 permit tcp any any established
access-list 169 permit tcp any any

第一行将任何TCP数据包与ACK位设置进行匹配。真正能够帮助我们识别攻击的是它能匹配任何不是TCP SYN的数据包。因此,第二行只需匹配非TCP SYN数据包。我们可以很容易地通过这些访问控制列表条目的计数器识别SYN泛洪;在正常流量中,非SYN TCP数据包的数量至少要比SYN多一倍,通常能够达到SYN的4或5倍。在SYN泛洪中,SYN的数量通常超出非SYN TCP数据包若干倍。

如果没有遭受攻击,唯一能够产生此种现象的条件是:真正的连接请求大量超载。一般来说,这种超载现象不会出人意料地发生,也不会象真正的SYN泛洪那样发送尽可能多的SYN数据包。此外,SYN泛洪通常包括地址完全无效的数据包,使用log-input关键词能够查看连接请求是否来自此类地址。

有一种攻击通常被称为"进程表攻击",它与SYN泛洪有一些相似。在进程表攻击中,TCP连接实际上已经结束,在没有更多的协议流量时允许超时连接,而不会产生更多协议流量,而在SYN泛洪中,它们只会发送最初的连接请求。由于流程表攻击要求完成TCP初次交接(往往窃取通道),因此它通常必须通过攻击者真正进入的机器的IP地址来发动。因此,使用数据包日志能够轻易地将它和SYN泛洪区别开来。流程表中的所有SYN来自一个或多个地址,或者顶多来自一个或几个子网。

不幸的是,SYN泛洪的受害者能够采取的应对措施非常有限。遭受攻击的系统通常承担重要业务,攻击者也通常能够达到阻塞该系统入口的目的。很多路由器和防火墙产品,包括Cisco的产品,具备一些能够减轻SYN泛洪的影响的功能,但这些功能的有效性取决于环境。要获得更多信息,请参阅“Cisco IOS 防火墙功能设置”文档(Cisco IOS TCP拦截功能的文档)和 提高Cisco路由器的安全性。

我们也可能跟踪SYN泛洪,但跟踪过程要求攻击者和受害者之间的路径上的每一个ISP的协助。如果您决心尝试追踪SYN泛洪,应尽早与执法部门联系,并与您自己的上一级服务供应商合作。请参阅本文件的跟踪部分,以获得使用Cisco路由器进行跟踪的详细信息。

其它攻击
如果您确信自己受到攻击,并且能够通过IP源地址和目的地址、协议号和端口号来识别该攻击,那么您可使用访问控制列表来验证您的假设。您可以创建一个与怀疑流量匹配的访问控制列表条目,将其用于相应接口,观察匹配计数器或记录流量。

日志和计数器告警
请记住,访问控制列表条目上的计数器会计算所有与该条目的匹配。如果您在两个接口上都使用访问控制列表,那么您看到的计数将是总计数。

访问控制列表日志不会显示与条目匹配的每个数据包。日志受到速率限制,以防止CPU超载。日志显示的是适当的有代表性的例子,而并非完整的数据包追踪。请记住,有一些数据包是您无法看见的。

在一些软件版本中,访问控制列表日志只能在某些交换模式下工作。如果访问控制列表条目对大量匹配进行计数,但却没有进行记录,应尝试清除路由器缓存,以迫使数据包按照过程进行交换。在负载很高的多接口路由器上进行上述操作时,我们应该谨慎,大量数据流可能在重建缓存时被丢弃。在可能的情况下,应使用CEF。

访问控制列表和日志会影响性能,但影响不会很大。当路由器运行的CPU负载达到80%时,或在高速接口上使用访问控制列表时,应小心谨慎。

0
相关文章