HTTP 慢速攻击是一种利用 HTTP 协议特性进行的攻击方式,对服务器资源造成严重占用,带来极大危害。
Slow read 攻击中,攻击者建立连接后发送完整请求给服务器端,然后以很低的速度读取 Response,如很长一段时间不读取数据,通过发送 Zero Window 到服务器,直到连接快超时前才读取一个字节。这就像吃完饭不离开一直霸占座位的客人,导致新的顾客无法进来就餐,长时间占用服务器的连接和内存资源。
Slow headers 攻击是攻击者对服务器发起 HTTP 请求,一直不停发送 HTTP 头部,但不发送结束符,服务器在处理之前需接收完所有 HTTP 头部,导致连接一直被占用。好比点餐犹豫不决的人,不停说又说不清自己要点什么菜,消耗了服务器的连接和内存资源。
Slow body 攻击是攻击者发送 HTTP POST 请求,将 Content-Length 头部值设置很大,表示要发送大量数据,服务器保持连接准备接收数据,可攻击者每次只发送很少量的数据。就像顾客结账时从口袋一个一个摸硬币出来付款,使服务器端一直等待攻击者发送数据,以此消耗服务器资源。
据相关数据显示,如在使用 slowhttptest 工具进行测试时,攻击者可通过建立大量连接,短时间内使服务器连接池被占满。例如,使用 Slowloris 模式,参数设置为 “slowhttptest -c 1000 -H -i 10 -r 200 -s 4096 -t GET -u
http://xxx.com -p 3 -x 10 -g -o Attack_status”,几秒钟后 web 服务器的连接池就可能被占满无法访问,当前连接数甚至可达 996,使目标服务器服务不可用。这种攻击方式隐蔽性高,利用 HTTP 协议的合法特性,很难被传统安全设备识别,且占用资源少、攻击效果显著,能迅速导致服务器性能下降,甚至崩溃。
二、防御措施探讨
(一)设置连接数限制
在服务器端设置最大连接数限制是一种有效的防御 HTTP 慢速攻击的方法。通过限制连接数,可以防止攻击者通过大量半开连接占满服务器资源。例如,在 Apache HTTP 服务器中,可以在配置文件(如 httpd.conf)中使用MaxClients指令来设置最大连接数。假设将最大连接数设置为 500,当连接数达到这个阈值时,服务器将不再接受新的连接请求,从而避免了攻击者通过大量慢速连接耗尽服务器资源。
(二)设定超时时间
对 web 服务器的 HTTP 头部传输设置最大许可时间非常重要。为每个连接设置合理的超时时间,当连接在一定时间内没有活动时,自动关闭该连接。以 Nginx 服务器为例,在配置文件(如 nginx.conf)中可以使用keepalive_timeout指令设置连接超时时间。例如,将连接超时时间设置为 30 秒,当一个连接在 30 秒内没有任何活动时,Nginx 服务器将自动关闭这个连接,释放资源。这样可以防止攻击者通过长时间保持连接来占用服务器资源。
(三)检查并发连接数
针对 HTTP 慢速攻击的特点,对每秒钟 HTTP 并发连接数进行检查是一种有效的防御手段。若发现如 POST 报文的报文头都没有结束标识等异常情况,应断开此 IP 地址与 HTTP 服务器的连接。可以通过编写脚本或使用专门的安全软件来实现对并发连接数的监测。例如,使用一些网络监测工具,可以实时监测服务器的连接情况,当发现异常连接时,及时采取措施断开连接,保护服务器资源。
(四)借助工具防护
NGINX 本身对慢速攻击有很好的防护效果。NGINX 可以通过调整配置参数来限制连接速度、请求大小等,从而有效地防止慢速攻击。另外,Tomcat 可以通过运行模式 NIO 和设置connectionTimeout值进行缓解。在 Tomcat 的配置文件(如 server.xml)中,可以设置connectionTimeout属性,例如设置为 10000 毫秒(10 秒),当连接在 10 秒内没有完成请求时,Tomcat 将自动关闭这个连接,避免资源被长时间占用。同时,使用 NIO 运行模式可以提高 Tomcat 的性能和并发处理能力,对抵御慢速攻击也有一定的帮助。
墨者安全 防护盾
墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。