SLOWLORIS:HTTP DOS(拒绝服务)攻击和预防
DDOS(分布式拒绝服务)攻击是组织如今正在处理的主要问题之一。
这种攻击很难缓解,特别是对于具有小型基础结构的小型组织。
应对DDOS攻击的主要困难是,传统的防火墙过滤规则不能很好地发挥作用。
此问题背后的主要原因是,在大多数情况下,攻击机(参与DDOS攻击并成为僵尸网络一部分的计算机)数量众多,并且来自不同的地理位置。
还有一个要点是,通常用于关闭服务的请求类型看起来是合法的,但是大量请求会使服务对于合法请求脱机。
Slowloris通常不会被IDS(入侵检测系统)注意到,因为它不会向网络服务器发送格式错误的请求,而是合法请求。
因此,它绕过了大多数IDS系统。
与lowloris攻击有关的一件重要的有趣事情是,一旦攻击者停止运行脚本,该就会恢复在线状态。
因为连接将在一段时间后(在超时间隔之后)由Web服务器自动关闭。
如何预防/保护/缓解慢虫袭击?
1.使用仅接受完整http连接的硬件负载平衡器。
使用配置了http配置文件的硬件负载平衡器将是阻止此类攻击的最佳方法。
因为负载平衡器将检查数据包的内容,并将仅将完成的那些http请求转发到Web服务器。
如果我们使用的是基于F5的BIG-IP负载平衡器,我建议我们阅读以下链接,以缓解lowloris攻击。
减轻BIG-IP F5负载平衡器上的Slowloris
其他类似以下的负载均衡器也可以使用http配置文件进行配置,以缓解这种攻击
- 思杰NetScaler
- 思科CSS
2.通过限制来自特定主机的连接,使用IPtables保护Web服务器
我们当然可以借助iptables将连接数限制为端口80。
例如,如果我想阻止
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j DROP
3.在apache中配置超时指令
尽管这根本不是一个好的解决方案,但是我们仍然可以提高Web服务器获得无效连接的速率。
我们可以简单地在/etc/httpd/conf/httpd.conf文件中修改timout指令。
将其降低到较低的值至少会使攻击变得困难(但仍然可以通过增加请求数来使服务器瘫痪)
这根本不是一个好的解决方案。
- mod_antiloris Apache模块
我测试的另一个好的解决方案是一个称为mod_antiloris的apache模块。
可以使用以下步骤安装此模块。
[root@localhost ~]# wget http://sourceforge.net/projects/mod-antiloris/files/mod_antiloris-0.4.tar.bz2/download [root@localhost ~]# tar -xvjf mod_antiloris-0.4.tar.bz2 mod_antiloris-0.4/ mod_antiloris-0.4/ChangeLog mod_antiloris-0.4/mod_antiloris.c [root@localhost ~]# cd mod_antiloris-0.4 [root@localhost mod_antiloris-0.4]# apxs -a -i -c mod_antiloris.c
现在,只需重新启动apache即可加载新模块。