Raptor 防火墙是赛门铁克的企业级防火墙,它在产生 ISN(Initial Sequence Numbers,初始序列号)时,在 IP 堆栈的实现上存在一个安全缺陷:被用来产生初始序列号的运算法则并不是随机的,远程攻击者能利用此缺陷截获到 Raptor 防火墙的数据包或成功入侵防火墙。 在传输和转发数据包时,初始序列号由 Raptor 防火墙的 IP 堆栈产生。但产生这些初始序列号时的一个脆弱性允许一个远程攻击者能轻易地预测到一特定会话(session)的序列号。 初始序列号的产生通常是基于两个因数:源和目的端口号,源和目的IP地址。针对一个单独连接的初始序列号通常相当长的一段时间都不会改变。例如一段会话连接可以被描述如下: session = {
} 分配给一指定会话连接的初始序列号能被保留相当长一段时间。以下对 Raptor 防火墙实现过程中 ISN 数据的一段引用就可以说明这个问题。在这个实现过程中是由源地址
的1700端口发送 SYN 数据包到目的地址
的80端口: ------------------------------------------------------------------- Timeline Connection ISN Delta ------------------------------------------------------------------- 10:33:05 x.x.x.x:1700 -> z.z.z.z:80 2088144436 - 10:33:06 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 10:33:07 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 ... 10:35:30 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 10:35:31 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 10:35:32 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 ... 10:50:43 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 10:50:44 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 10:50:45 x.x.x.x:1700 -> z.z.z.z:80 2088144436 0 ... ------------------------------------------------------------------- 从以上我们可以看出对于同一连接会话,初始序列号在相当长一段时间内都没有改变。 在我们另外的一个测试中我们还得出一旦一个初始序列号被分配给一个会话,会话和初始序列号将会一起作为这个会话的特征存储相当长一段时间,而不管在同一源 IP 地址是否有新的会话被建立。攻击者将利用获得的初始序列号,伪造一个新的连接会话,骗过防火墙。 这个问题影响到所有 Raptor IP 堆栈的缺陷,包括所有连接到或通过 Raptor 防火墙的会话。 受影响系统: Raptor Firewall 6.5 (Windows NT) Raptor Firewall V6.5.3 (Solaris) Symantec Enterprise Firewall 6.5.2 (Windows 2000 and NT) Symantec Enterprise Firewall V7.0 (Solaris) Symantec Enterprise Firewall 7.0 (Windows 2000 and NT) VelociRaptor Model 500/700/1000 VelociRaptor Model 1100/1200/1300 Symantec Gateway Security 5110/5200/5300 风险等级: 高 攻击方法: 暂无有效攻击代码 解决方案: Technical Bulletin: http://www.symantec.com/techsupp/bulletin/archive/firewall/082002firewall.html Patches and HotFixes: http://www.symantec.com/techsupp/