Secur1ty just lik3 a girl. B0th of th3m h4ve s0me h0les. Y0u alw4ys try to f1nd the h0le, but n0t 3very tim3 y0u c4n 3xpl0it it!
查看文章 |
Slowloris 与基于 Resource Limit 的攻击
2009-06-22 11:11
这几天圈内关于 Slowloris 的讨论比较多,原因是 RSnake 的一篇文章 http://ha.ckers.org/blog/20090617/slowloris-http-dos/ Sowhat 也写了点评论 http://hi.baidu.com/secway/blog/item/c7aca3a28f9521a4cbefd0e2.html 这种攻击是很古老的攻击了,apache的连接数有限(并发),配置文件里可以更改,如果这个连接数到达了上限,就不能接收新的请求了,所以就被dos了。 发起攻击的时候一般是攻击者占住一个连接不让apache释放,就可以累计占用连接数。 Harry同学说,他有更好的方式来达成这个效果,而不是用Slowloris 里的方式 1.- send a content-length header without sending enough data 2.- use the keep-alive header and an incomplete request 3.- send a lot of small headers very slow 应该还有更多的方式。 而apache的人则不认为这个是他们的问题,认为这个是feature,因为这项是可配置的。 http://httpd.apache.org/docs/trunk/misc/security_tips.html#dos Apache的很多配置选项比如 Timeout, KeepAliveTimeOut, MaxClients 等都可以用于缓解这种dos的。 而我们认为这种攻击容易防御的原因,是在于 1. 攻击者没有abuse IP,所以源IP可查,如果abuse了,就变成DDOS了,就该辅助用防DDOS的手段 2. 这种攻击特征明显,容易block 所以很明显,解决方案有以下几种 1、修改apache的配置文件以缓解 2、写一个apache mod专门处理这种攻击,或者使用现有的比如 mod_evasive, 或者是 mod_security 再辅助其他手段进行block 3、配置 Iptables, 对于连接最多的IP进行block 4、使用WAF,或者其他前置的网络设备,自己配置条规则 其中关于3还是harry告诉我的,以前没用过iptables的这个功能,有兴趣的倒不妨研究研究。 而这些天听说有很多小网站被dos,apache的受害最大。应该是很多人拿了slowloris这个工具在滥用。而 Apache 的 default 配置对此类攻击并没有防御效果,导致了攻击的猖獗。Default Insecure, 也是 RSnake 坚持认为这是 Apache 漏洞的原因。 Resource Limit Attack 在我看来,这属于典型的 Resource Limit Attack的一种。与之前的 Server Limit Dos 类似。 现在的很多应用中,都会有各种各样的 Limit , 如果这些 Limit 的值被恶意填满,就会造成一种DOS。设计者在设计时如果没有考虑到这种情况,随意设置 Limit,就容易造成安全隐患。 RSnake 最新的一篇blog也表明了另一种附带的Resource Limit。 http://ha.ckers.org/blog/20090620/http-longevity-during-dos/ 他提到在测试 Slowloris 的时候,不全是返回服务器错误,有时候还返回DB错误,猜测可能是因为DB也限制了连接数,先达到了这个限制导致问题发生。 类似的 Limit 还有 PHP 的 Memory Limit 等等,所以一个 Memory Leak 才会这么可怕,Limit达到后,应用也就被DOS了。 |
最近读者: