漏洞名称 :Slow Http attack、慢速攻击
漏洞描述:慢速攻击基于HTTP协议,通过精心的设计和构造,这种特殊的请求包会造成服务器延时,而当服务器负载能力消耗过大即会导致拒绝服务。HTTP协议规定,HTTP Request以\r\n\r\n(0d0a0d0a)结尾表示客户端发送结束,服务端开始处理。那么,如果永远不发送\r\n\r\n就会产生慢速攻击的漏洞,常见的Slowloris就是利用这一点来做DDoS攻击的。攻击者在HTTP请求头中将Connection设置为Keep-Alive,要求Web Server保持TCP连接不要断开,随后缓慢地每隔几分钟发送一个key-value格式的数据到服务端,如a:b\r\n,导致服务端认为HTTP头部没有接收完成而一直等待。如果攻击者使用多线程或者傀儡机来做同样的操作,服务器的Web容器很快就被攻击者占满了TCP连接而不再接受新的请求\r\n\r\n, 每隔几分钟写入一些无意义的数据流, 拖死机器。
检测条件:
1、 Web业务运行正常
2、 HTTP请求头中Connection可设置
检测方法:
1、 通过web扫描工具,可发现该类漏洞,但不一定准确。
2、 或者通过kali环境下的slowhttptest工具来进行检测,它是一款对服务器进行慢攻击的测试软
件,包含了几种攻击方式,像Slowloris、SlowHTTP POST、Slow Read attack等。在执行相关
的命令或者参数后,发现网站访问缓慢,则存在该漏洞。
修复方案:
1、配置Nginx反向代理解决该问题,参考以下链接:
Apache:
https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache
Tomcat:
http://www.mkyong.com/nginx/nginx-apache-tomcat-configuration-example/
Java servers like Jetty, GlassFish and Tomcat
https://www.nginx.com/resources/wiki/start/topics/examples/javaservers/
其他方法:
Apahce配置参考:
http://blog.secaserver.com/2011/08/protect-apache-slowloris-attack/
暂未验证该配置方法有效性,建议配置Nginx反向代理解决该问题