一、问题说明
问题概述
2005.04.12,英国NISCC(532967)和美国US-CERT(VU#222750)相继发布安全公告:多种TCP/IP协议栈的实现没有对ICMP报文进行严格检查,导致TCP连接可能被伪造的ICMP攻击使连接复位或效率降低。按照RFC 1122实现的主机系统,TCP协议需对特定的ICMP消息做出响应,由于多数网络设备在处理ICMP报文(包括目的不可达和源抑制两种类型)时,不会对ICMP报文中携带的TCP序列号字段进行检查,攻击者可伪造ICMP,引起对应TCP连接断开、基于TCP的上层应用(比如BGP等)邻居振荡等严重后果。下面对这两种攻击方式做了较为具体描述:
第一种发送ICMP报文模拟一个已经建立的TCP连接的hard error(RFC 1122 section 4.2.3.9,包括ICMP Type 3 Code 2和3)攻击报文给源节点,ICMP error 报文记录了导致错误的IP头和TCP头的前64bits(包含了源、目的端口和序列号)。多数ICMP的实现只检查IP地址和TCP端口,而不检查序列号是不是在可接受的范围。伪造一个Type 3 Code 4的ICMP报文,即需要分片但是DF已经置位的报文并且报告一个假的下一次使用的MTU,触发源节点启用Path MTU发现机制(详见RFC 1191),导致TCP减小单个发送报文的长度。
第二种也是伪造ICMP Source Quench报文(Type 4 Code 0),带有TCP连接信息。根据RFC 1122的描述,收到这种Source Quench报文的TCP接点会限制对应TCP连接的发送速率(通过调整TCP窗口大小实现),导致转发性能受到一定的影响。
攻击可实施性
假如被攻击系统只检查IP地址和TCP端口,而不检查序列号是不是在可接受的范围,攻击者发送带有正确源、目的IP地址和端口号的ICMP报文(ICMP Type 3 Code 2和3)就有可能断开已经建立的TCP连接,或者降低连接的传输效率(ICMP Type 3 Code4和Type 4 Code 0), 导致转发性能受到一定的影响。这种DOS攻击的目标是所有的TCP连接,非凡是源端口被指定的或者可以猜出来的那些TCP连接。
二、影响的产品
经过代码分析和严格测试,现已确认Huawei-3Com公司基于VRP操作系统的AR系列路由器产品受到此问题影响。在TCP连接进入Establish状态以前假如收到第一种类型的ICMP hard error,可导致连接无法建立。ICMP Type 3 Code4和Type 4 Code 0的攻击报文没有导致明显可观测的效率下降。
受影响的功能包括:X.25 over TCP, DLSW, Voice over IP
不受此问题影响的功能包括:BGP, Telnet, FTP等
三、解决措施
Huawei-3Com在其即将发布的软件中已修正ICMP hard error导致连接断开问题。
软件修改说明:
减轻被攻击影响临时的措施:
1. 在设备接口上启用防火墙功能,并配置ACL过滤掉特定类型的ICMP报文。
2. 启用URPF功能降低设备受到攻击的可能。
最终的解决措施:
升级新的软件版本,华为3Com公司AR系列路由器软件版本将于2005年6月1日前发布。
四、参考文档
1、http://www.niscc.gov.uk/niscc/docs/al-20050412-00308.Html?lang=en
2、http://www.kb.cert.org/vuls/id/222750
3、http://www.ietf.org/internet-drafts/draft-gont-tcpm-icmp-attacks-03.txt
附件
icmp攻击tcp协议分析报告v1.0.pdf