Apache项目日前发布警告:发现一个Apache http server的拒绝服务(DoS)漏洞,该漏洞可让攻击者轻松地让Apache软件拒绝服务。Apache指出,攻击工具正在坊间广泛流传,并且已经留意到一些活跃分子。
漏洞影响到了Apache的所有版本。该攻击能够在远程发动,并且使Apache HTTP服务器占用大量的内存和CPU资源,而导致无法处理正常的请求。默认安装的Apache更容易受此攻击。
目前尚无相应的补丁或新版本。Apache预计在48小时内将进行修复,发布补丁或是新版本。需要注意的是,该补丁或新版本将针对Apache 2.0及2.2,Apache 1.3则建议弃用。
在完整补丁发布前,Apache给出了以下几个应对措施:
1.启用SetEnvlf和mod_rewrite检测访问中是否有大量的Range,若有的话,则忽略该Range请求头或直接拒绝请求。
Option 1:(适用于Apache 2.0、2.2)
1 | # Drop the Range header when more than 5 ranges. |
3 | SetEnvIf Range (,.*?){5,} bad-range=1 |
4 | RequestHeader unset Range env=bad-range |
7 | CustomLog logs/range-CVE-2011-3192.log common env=bad-range |
Option 2:(也适用于Apache 1.3)
1 | # Reject request when more than 5 ranges in the Range: header. |
5 | RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$) |
2.限制访问字段大小为几百字节。
1 | LimitRequestFieldSize 200 |
3.使用mod_header来彻底禁止Range header的使用。
1 | RequestHeader unset Range |
4.部署一个Range header计数模块来进行临时的监测。
http://people.apache.org/~dirkx/mod_rangecnt.c
5.及时关注并安装下面链接中发布的补丁:
http://mail-archives.apache.org/mod_mbox/httpd-dev/201108…
更多详情查看:Range header DoS vulnerability Apache HTTPD 1.3/2.x。