Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞

以下文字全部转载自“绿盟科技紧急通告”
 
受影响的软件及系统:
====================
Apache 1.3 全部版本
Apache 2 全部版本
 
综述:
======
  Apache HTTP Server由于其开源及跨平台的特性,是目前互联网上使用最广泛的Web服务器程序。近期Apache Web服务器被发现存在一个远程拒绝服务漏洞,攻击者只要能够连接服务器,通过发送畸形的恶意请求,可以导致服务器失去响应从而无法提供正常的服务。由于Apache服务器的巨大流行程度,而且漏洞影响几乎全部版本的Apache服务器,因此需要引起相关用户的高度重视。
 
  此漏洞是一个0day漏洞,技术细节及相应的利用代码已经公开,也已经出现了利用此漏洞进行攻击的案例。软件的厂商Apache软件基金会已经得知了此漏洞的存在并开始处理,但还没有提供正式的补丁或新版本的软件,因此强烈用户立即采用本公告提供的临时解决方案以免受此漏洞的影响。
 
分析:
======
  漏洞源于Apache HTTP Server处理来自客户端的HTTP请求中畸形的Range头选项时存在的问题,如果在Range选项中设置了大量重叠的范围指定命令,则Apache会在构造回应数据时消耗大量内存和CPU资源,导致Apache失去响应,甚至造成操作系统资源耗尽。
 
  此漏洞可以实现稳定的触发和利用,攻击者可以利用较小的代价实现对目标服务器的拒绝服务攻击。服务器遭受攻击以后响应正常请求的能力取决于服务器的配置情况,部分服务器可能完全失去服务功能,采用一定的配置加固措施可以免受此漏洞攻击的影响。
 
解决方法:
==========
  在厂商提供官方补丁或新版本软件之前,建议用户采用如下的配置方案之一以尽可能免受漏洞的影响:
 
  * 使用SetEnvIf配置命令来忽略畸形的Ranger选项,适用于Apache 2.0和2.2 。
 
  修改Apache的配置文件httpd.conf。 
  去掉如下行的注释:
  LoadModule headers_module modules/mod_headers.so
  增加如下行的配置命令:
  SetEnvIf Range (,.*?){5,} bad-range=1
  RequestHeader unset Range env=bad-range
  重启Apache服务器。  
 
  * 安装启用mod_rewrite,设置规则过滤规则禁止带有畸形的Ranger选项的请求,适用于所有版本的Apache 。
 
  修改Apache的配置文件httpd.conf。
  去掉如下行的注释:
  LoadModule rewrite_module modules/mod_rewrite.so
  加入如下的mod_rewrite的规则配置行:
  RewriteEngine on
  RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$)
  RewriteRule .* �C [F]
  重启Apache服务器。
 
  上述两种配置会禁止Range选项包含超过5个范围指定命令的请求,在通常应用场景中对Web应用应该不会有什么影响,如果Web应用提供PDF数据或流媒体信息,可能需要调整阈值到更大的数值。
 
  * 使用配置命令限制请求头单个选项的大小,此方法不依赖其他的模块,适用于所有版本的Apache 。
 
  修改Apache的配置文件httpd.conf。
  增加如下的配置行:
   LimitRequestFieldSize 200
 
  此配置限制每个请求头的单个选项的最大字节数为200,在大多数应用场景下应该可以正常工作,如果Web应用使用了比较长的头选项,比如包含很多数据的Cookie,需要根据实际情况调整此阈值。
 
厂商状态:
==========
  目前厂商还未提供正式补丁或修复了漏洞的新版本软件,请密切关注厂商网站下载更新:
   http://www.apache.org
 
声 明
==========
  本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

你可能感兴趣的:(apache,漏洞,网络安全,休闲,拒绝攻击)