CVE-2002-2150
CVSS5.0
发布时间 :2002-12-31 00:00:00
修订时间 :2008-09-05 16:32:27
NMCO    

[原文]Firewalls from multiple vendors empty state tables more slowly than they are filled, which allows remote attackers to flood state tables with packet flooding attacks such as (1) TCP SYN flood, (2) UDP flood, or (3) Crikey CRC Flood, which causes the firewall to refuse any new connections.


[CNNVD]多家厂商防火墙包淹没导致状态表填满漏洞(CNNVD-200212-425)

        
        多种防火墙产品使用状态表判断是否获得的包属于两个主机间已经存在的会话中,当防火墙遇到包匹配规则库但不匹配单前定义的状态时,状态表中会增加一条新的会话条目。防火墙根据不同原因会从状态表中移去相关条目,这些原因包括会话time-out值过期,检测到TCP FIN或者TCP、RST包等。
        如果新的状态条目增加速度超过防火墙删除条目的速度,远程攻击者就可以利用这个问题填满所有状态表缓冲区,导致产生拒绝服务攻击。
        攻击者可以发送短小的,大量匹配规则库的包给防火墙,这样新的条目增加就可能超过防火墙删除的速度,状态表就可以很容易的被填满,导致许多防火墙实现对那些不匹配已经存在会话状态的包拒绝接受,而新的连接也将不能建立,使得产生拒绝服务攻击。
        攻击者可以利用下面几种方法进行攻击:
        TCP SYN FLOOD
        为了建立TCP连接,客户端和服务器端必须参与三次握手。客户端系统通过发送SYN消息给服务器,然后服务器通过发送SYN-ACK消息应答SYN消息给客户端。客户端最后通过应答ACK消息完成建立连接,然后进行数据传输。
        在SYN FLOOD攻击中,攻击者可以发送伪造IP源地址的SYN包,使得这些通信看起来来自多个客户端。假如这些包匹配防火墙规则,就会建立状态表跟踪这些连接。由于客户端地址是伪造的,发送给客户端的SYN-ACK消息将被丢弃,大量此类通信可导致防火墙装条表被伪造条目填满,产生拒绝服务攻击。
        UDP Flood
        在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,没有一些会话状态指示信息(SYN、SYN-ACK、ACK、FIN或RST)帮助防火墙检测不正常的协议状态。结果,基于状态的防火墙必须依靠源和目的地址建立状态表条目和设置会话超时值。大量此类信息填充状态表可导致防火墙产生拒绝服务攻击。
        Crikey CRC Flood
        Stephen Gill报告了一种新的攻击基于状态防火墙的方法,他称为Crikey CRC Flood (C2 Flood)。CRC校验在每个网络层中计算,并用来判断传输中是否数据有破坏。C2 Flood是一种包含传输层(TCP,UDP)非法检验和的包,由于传输层的检查不经过防火墙操作,多种实现选择了通过忽略这些校验来优化性能,因此如果C2 Flood类型的包匹配防火墙规则,就会在防火墙中建立会话表条目,并传递非法数据包到目的地址。
        但是与防火墙不同,目的主机必须对接收到的包进行校验操作,由于接收到的是非法数据包,因此主机就会简单的丢弃C2 Flood包,由于没有对源主机进行应答因此源主机也不会进行重传操作。这就导致防火墙由于没有接收到任何目的地址反馈,而不能进行有效的调整状态表,导致产生状态表被填满,拒绝接收新的连接。
        

- CVSS (基础分值)

CVSS分值: 5 [中等(MEDIUM)]
机密性影响: NONE [对系统的机密性无影响]
完整性影响: NONE [不会对系统完整性产生影响]
可用性影响: PARTIAL [可能会导致性能下降或中断资源访问]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

- CPE (受影响的平台与产品)

cpe:/o:juniper:netscreen_screenos:3.0.1r1Juniper NetScreen ScreenOS 3.0.1 r1
cpe:/o:juniper:netscreen_screenos:3.0.1r2Juniper NetScreen ScreenOS 3.0.1 r2
cpe:/o:juniper:netscreen_screenos:3.0.3_r1.1
cpe:/o:juniper:netscreen_screenos:2.7.1r3Juniper NetScreen ScreenOS 2.7.1 r3
cpe:/o:juniper:netscreen_screenos:2.7.1r2Juniper NetScreen ScreenOS 2.7.1 r2
cpe:/o:juniper:netscreen_screenos:2.10_r4
cpe:/o:juniper:netscreen_screenos:2.10_r3
cpe:/o:juniper:netscreen_screenos:2.7.1r1Juniper NetScreen ScreenOS 2.7.1 r1
cpe:/o:juniper:netscreen_screenos:2.7.1Juniper NetScreen ScreenOS 2.7.1

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-2150
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2002-2150
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200212-425
(官方数据源) CNNVD

- 其它链接及资源

http://www.kb.cert.org/vuls/id/539363
(VENDOR_ADVISORY)  CERT-VN  VU#539363
http://www.securityfocus.com/bid/6023
(UNKNOWN)  BID  6023
http://www.iss.net/security_center/static/10449.php
(UNKNOWN)  XF  firewall-state-table-dos(10449)

- 漏洞信息

多家厂商防火墙包淹没导致状态表填满漏洞
中危 设计错误
2002-12-31 00:00:00 2006-08-23 00:00:00
远程  
        
        多种防火墙产品使用状态表判断是否获得的包属于两个主机间已经存在的会话中,当防火墙遇到包匹配规则库但不匹配单前定义的状态时,状态表中会增加一条新的会话条目。防火墙根据不同原因会从状态表中移去相关条目,这些原因包括会话time-out值过期,检测到TCP FIN或者TCP、RST包等。
        如果新的状态条目增加速度超过防火墙删除条目的速度,远程攻击者就可以利用这个问题填满所有状态表缓冲区,导致产生拒绝服务攻击。
        攻击者可以发送短小的,大量匹配规则库的包给防火墙,这样新的条目增加就可能超过防火墙删除的速度,状态表就可以很容易的被填满,导致许多防火墙实现对那些不匹配已经存在会话状态的包拒绝接受,而新的连接也将不能建立,使得产生拒绝服务攻击。
        攻击者可以利用下面几种方法进行攻击:
        TCP SYN FLOOD
        为了建立TCP连接,客户端和服务器端必须参与三次握手。客户端系统通过发送SYN消息给服务器,然后服务器通过发送SYN-ACK消息应答SYN消息给客户端。客户端最后通过应答ACK消息完成建立连接,然后进行数据传输。
        在SYN FLOOD攻击中,攻击者可以发送伪造IP源地址的SYN包,使得这些通信看起来来自多个客户端。假如这些包匹配防火墙规则,就会建立状态表跟踪这些连接。由于客户端地址是伪造的,发送给客户端的SYN-ACK消息将被丢弃,大量此类通信可导致防火墙装条表被伪造条目填满,产生拒绝服务攻击。
        UDP Flood
        在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,没有一些会话状态指示信息(SYN、SYN-ACK、ACK、FIN或RST)帮助防火墙检测不正常的协议状态。结果,基于状态的防火墙必须依靠源和目的地址建立状态表条目和设置会话超时值。大量此类信息填充状态表可导致防火墙产生拒绝服务攻击。
        Crikey CRC Flood
        Stephen Gill报告了一种新的攻击基于状态防火墙的方法,他称为Crikey CRC Flood (C2 Flood)。CRC校验在每个网络层中计算,并用来判断传输中是否数据有破坏。C2 Flood是一种包含传输层(TCP,UDP)非法检验和的包,由于传输层的检查不经过防火墙操作,多种实现选择了通过忽略这些校验来优化性能,因此如果C2 Flood类型的包匹配防火墙规则,就会在防火墙中建立会话表条目,并传递非法数据包到目的地址。
        但是与防火墙不同,目的主机必须对接收到的包进行校验操作,由于接收到的是非法数据包,因此主机就会简单的丢弃C2 Flood包,由于没有对源主机进行应答因此源主机也不会进行重传操作。这就导致防火墙由于没有接收到任何目的地址反馈,而不能进行有效的调整状态表,导致产生状态表被填满,拒绝接收新的连接。
        

- 公告与补丁

        临时解决方法:
        如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:
        * 使用防火墙功能检测和阻挡淹没通信
        多种防火墙提供检测和阻挡UDP和TCP SYN淹没攻击模式。建议管理员使用这些防火墙功能。
        * 使用动态更改状态表大小
        状态表使用动态分配可以动态的状态状态条目。这会一定程度上增加利用这个漏洞的难度。
        * 对初始会话使用分离的Time-out值
        对初始化和已建立会话维护分离不同的会话超时值,允许攻击通信产生的条目快速删除,不过仍旧维护状态表中的合法条目。
        * 使用动态调整会话时间(Aggressive Aging)
        会话超时值减少的情况下,攻击者必须增加攻击强度以确保新建立的条目能快于防火墙删除这些条目的速度。通过使用动态会话时间,可以减低状态表收敛的时间,使攻击难度增加。
        * 允许连接跟踪关闭
        对部分协议关闭连接跟踪功能,可以增加攻击难度。
        厂商补丁:
        Alcatel
        -------
        Alcatel产品受此漏洞影响,供应商报告OmniAccess 200系列设计用于保护这些类型的攻击并且不存在此漏洞。用户需要联系供应商获得补丁程序:
        
        http://www.ind.alcatel.com/

        NetScreen
        ---------
        Netscreen承认它们的某些产品线受此漏洞影响,用户必须联系供应商获得解决方法:
        
        http://www.netscreen.com/

- 漏洞信息

4729
NetScreen H.323/NetMeeting Firewall Session Entry Saturation DoS
Denial of Service
Loss of Availability

- 漏洞描述

Unknown or Incomplete

- 时间线

2002-11-25 Unknow
Unknow Unknow

- 解决方案

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站