似水无痕

个人技术博客

嗨,我是似水无痕。


我是一名90后的java开发者,欢迎了解更多。

【绿盟科技】检测到目标主机可能存在缓慢的HTTP拒绝服务攻击漏洞修复方案

1、漏洞说明

  缓慢的HTTP拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量HTTP请求攻击,直到服务器带宽被打满,造成了拒绝服务。 慢速HTTP拒绝服务攻击经过不断的演变和发展,主要有三种攻击类型,分别是Slowheaders、Slowbody、Slowread。以Slowheaders为例,Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。攻击者利用这点,发起一个HTTP请求,一直不停的发送HTTP头部,消耗服务器的连接和内存源。抓包数据可见,攻击客户端与服务器建立TCP连接后,每10秒才向服务器发送一个HTTP头部,而Web服务器在没接收到2个连续的\r\n时,会认为客户端没有发送完头部,而持续的等等客户端发送数据。如果恶意攻击者客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致拒绝服务。这种攻击类型称为慢速HTTP拒绝服务攻击。

2、基于Nginx的修复方案

修改nginx.conf文件,如下:

http {
	#limit_conn_zone $binary_remote_addr zone=addr:10m;
	limit_conn_status 503;
	#限制ip
    limit_req_zone $binary_remote_addr zone=ip_second:10m   rate=100r/s;
    limit_req   zone=ip_second  burst=5  nodelay;
    #限制url
    limit_req_zone $request_uri zone=url_minute:10m   rate=100r/s;
    limit_req   zone=url_minute  burst=5  nodelay;
    server {
        listen       80;
        server_name  localhost;
		#以下两段代码是关闭慢速连接,解决缓慢的HTTP拒绝服务攻击的关键两行
		client_body_timeout 3s;
		client_header_timeout 3s;
        location / {
            root   html;
            index  index.html index.htm;
		#	limit_conn addr 100;
        }
    }
}

参考链接: https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/