近日,Google、AWS等主要云服务商披露HTTP/2协议中的一个隐藏很久的漏洞被广泛用于实施大规模DDoS攻击。
其利用HTTP/2流重置漏洞的DDoS攻击仍在继续,Google已经监测到多种变体,其中一些可能是为了应对缓解措施。例如,一种攻击变体会分批打开和重置流,在发送RST_STREAM帧之前等待,然后打开另一批。这可能是为了挫败那些通过检测同一TCP连接上出现大量RST_STREAM帧来关闭连接的缓解措施。
另一种变体根本不使用RST_STREAM重置功能,而是尝试打开尽可能多的并发流,忽略服务器通告的限制。HTTP/2标准规定,在这种情况下,超过限制的流应由服务器无效,但不应取消完整的TCP连接。因此,这种攻击变体允许攻击者始终保持请求管道满载。
谷歌工程师表示:“我们并不认为简单地阻止单个请求就能有效缓解此类攻击,相反,当检测到滥用行为时,需要关闭整个TCP连接。”
措施:
HTTP/2 DDoS攻击的缓解策略并不简单,因为RST_STREAM流重置有合法的用途,每位服务器用户都需要根据连接统计信息和业务逻辑来确定何时发生滥用以及采取何种力度的响应措施。例如,如果一个TCP连接有超过100个请求,并且客户端取消了其中超过50%的请求,该连接可能被视为滥用。缓解措施的力度范围可以从发送强制的GOAWAY帧到立即关闭TCP连接。
Nginx(一种流行的反向代理和负载均衡器)的开发人员也提供了基于服务器内置功能(例如keepalive_requests、limit_conn和limit_req)的缓解措施。在接下来的几天里,他们还将发布一个补丁,以进一步缓解此类攻击的影响。
Web服务器或负载均衡软件开发商都已经发布了缓解措施或补丁。用户可以关注CVE漏洞跟踪器中的官方条目,获取有关供应商更新响应的链接进行补救。