浅谈Slowloris拒绝服务攻击

来源:互联网 发布:优化理论与方法第二版 编辑:程序博客网 时间:2024/05/20 05:31

0X01 前言

一提起攻击,第一反应就是海量的流量,海量的报文。但是有一种攻击却反其道而行之,以慢著称,以至于有些攻击目标被打死了都不知道是怎么死的,这就是慢速连接攻击,最具代表性的是rsnake发明的SlowLoris
HTTP协议规定,HTTP Requestrnrn结尾表示客户端发送结束,服务端开始处理。那么,如果永远不发送\r\n\r\n会如何?SlowLoris就是利用这一点来做DDoS攻击。攻击者在HTTP请求头中将Connection设置为Keep-Alive,要求Web Server保持TCP连接不要断开,随后缓慢的每隔几分钟发送一个key value格式的数据到服务端,如a:b\r\n,导致服务端认为HTTP头部没有接收完成而一直等待。如果攻击者使用多线程或者傀儡机来做同样的操作,服务器的WEB容器很快就被攻击者占满了TCP连接而不再接受新的请求。

 

0X02 演示

下面就采用slowloris攻击虚拟机测试,附上下载地址

服务器:www.dvwa.com  IP:10.10.10.103

攻击机:10.10.10.106

1,获取keep-alive时间: slowloris.pl  -dns www.dvwa.com -port 80 -test

可以看到,默认的时间是90s。

./slowloris.pl -dnswww.dvwa.com -timeout 90 -cache -num 2000

下面看一下实际的效果:

建立了很多的连接

发送http header 维持连接

现象

0X04 结论

这种慢速攻击很类似于http flood,http flood是消耗服务器的资源,包括数据库服务器。但是它们之间又是有所区别的,慢速攻击就是要维持跟服务器的连接,导致正常客户端的连接不能建立,从而达到拒绝服务的目的。

对于这种慢速攻击的防御,可以简单的依据其特征,修改些参数即可,包括:限制单机IP的连接数、限制http request header/body 的超时时间、包括其头部包含的字段也是其特征。

0 0
原创粉丝点击