安全研究

安全漏洞
Apache服务器不完整HTTP请求拒绝服务漏洞

发布日期:2009-07-07
更新日期:2009-07-07

受影响系统:
Apache Group Apache 2.x
Apache Group Apache 1.x
描述:
Apache HTTP Server是一款流行的Web服务器。

如果远程攻击者使用发包工具向Apache服务器发送了不完整的HTTP请求,服务器会打开连接等待接受完整的头,但如果发包工具不再继续发送完整请求而是发送无效头的话,就会一直保持打开的连接。这种攻击所造成的影响很严重,因为攻击者不需要发送很大的通讯就可以耗尽服务器上的可用连接。也就是说,即使低带宽的用户也可以攻击大流量的服务器。

<*来源:Bojan Zdrnja (Bojan.Zdrnja@LSS.hr
  
  链接:http://isc.sans.org/diary.html?storyid=6601
        http://isc.sans.org/diary.html?storyid=6613
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

HTTP请求的初始部分是合法的:

GET / HTTP/1.1\r\n
Host: host\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
Content-Length: 42\r\n

之后等待一段时间后再发送无效的头:

X-a: b\r\n

服务器会一直等待头的剩余部分。

建议:
临时解决方法:

* 修改Apache服务器的TimeOut配置选项

  默认值为5分钟,可以将其值调低,比如30秒,这样会增加攻击者所需要的数据发送量。调低此值可能导致一些访问速度比较慢的用户访问时出错,所以在调整后需要观察服务器的访问情况是否大致正常。

* 使用mod_limitipconn模块限制单个IP地址的连接数

  限制单个IP到服务器的连接数可以比较有效地抵抗攻击者从单个主机发起的攻击,但如果攻击者使用比较大量的主机依然可以攻击成功。

* 绿盟科技的黑洞产品对此类连接耗尽类攻击有比较成熟的解决方案,条件允许的情况下建议采用。

厂商补丁:

Apache Group
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.apache.org

浏览次数:5222
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障