业界新闻

HTTP/2 Bomb攻击影响Nginx、Apache

安全研究人员披露的“HTTP/2 Bomb”拒绝服务攻击,引起了Web服务器运维人员的关注。与依靠海量流量冲击带宽的传统DDoS攻击不同,这类攻击利用HTTP/2协议处理中的资源消耗问题,可能通过相对较少的网络流量持续占用服务器内存,最终导致网页访问缓慢、接口超时或服务中断。

相关安全研究涉及Nginx、Apache HTTP Server、Envoy、Microsoft IIS以及Cloudflare Pingora等Web服务和代理组件。对于使用云服务器部署网站、业务系统及API服务的用户,有必要检查HTTP/2配置、软件版本和前置防护策略。

一、HTTP/2 Bomb是什么?为何不需要很大带宽?

HTTP/2是广泛应用于HTTPS网站的通信协议,它通过多路复用、请求头压缩等方式提升数据传输效率。正常情况下,这些机制能够减少重复传输并改善页面加载体验;但如果服务器在解析请求时缺少合理的资源限制,协议特性也可能被滥用。

HTTP/2 Bomb主要涉及两个值得关注的环节:

  • HPACK请求头压缩:经过压缩的请求头在网络上传输时体积较小,但服务器解码、展开后可能需要占用远大于原始数据量的内存。若缺乏有效限制,就会产生明显的资源放大效应。
  • HTTP/2流量控制:协议通过流量窗口协调数据收发。在某些存在问题的实现中,异常连接或流状态可能使服务器已经分配的缓冲资源不能及时释放。

这意味着服务器即便没有出现明显的带宽峰值,也可能因内存持续增长而失去响应能力。它的重点不是窃取数据或直接获取系统权限,而是破坏网站和接口的可用性。

二、对网站和云服务器会产生哪些影响?

HTTP/2 Bomb属于资源消耗型拒绝服务风险。攻击发生后,业务侧可能出现以下现象:

  • 网站打开缓慢,部分页面请求长时间没有响应;
  • API接口超时,前台或后台操作无法正常完成;
  • Nginx、Apache等Web进程的内存占用异常升高;
  • 服务进程被系统终止、重启,出现502或503等错误;
  • 在资源耗尽时,站点或相关业务暂时无法访问。

公开研究曾展示,在有限网络带宽下,部分受测Web服务仍可能在短时间内耗尽大量内存。因此,判断是否遭遇此类问题,不能只依靠流量峰值,还需要结合进程内存、连接状态及错误日志分析。

三、哪些Web服务器和版本需要排查?

不同产品对HTTP/2的实现方式不同,受影响范围及修复方式也存在差异。此次披露涉及的主要组件和修复信息如下:

  • Nginx:相关修复在1.29.8版本中引入了请求头数量限制。使用较早版本并启用HTTP/2的站点,应核对对应分支是否包含修复补丁。
  • Apache HTTP Server:CVE-2026-49975影响2.4.17至2.4.67版本,官方在2.4.68版本中修复了相关拒绝服务问题。
  • Envoy:研究披露了相应的HTTP/2资源消耗风险,运维人员应结合产品版本、厂商安全公告及具体配置核查。
  • Microsoft IIS与Cloudflare Pingora:也被研究人员列为需要关注的HTTP/2实现,处置方式应以各自维护方提供的安全信息为准。

需要注意:不同产品不一定使用同一个CVE编号,不能只查询CVE-2026-49975就判断所有HTTP/2组件是否安全。部分Linux发行版还可能将修复补丁回移至原有版本,版本号应结合发行版公告一起判断。

四、如何检查自己的服务器是否存在相关风险?

1. 确认Web服务版本

可通过SSH登录服务器,依据实际使用的软件执行以下命令:

nginx -v
apache2 -v
httpd -v

不需要三条命令都执行成功,选择对应的Web服务即可。使用宝塔面板的站点,也可以在软件商店查看已安装的Nginx或Apache版本。

2. 检查HTTP/2是否启用

如果本地curl支持HTTP/2,可以使用以下命令检查网站对外连接使用的协议:

curl -I --http2 https://example.com

将example.com替换为实际域名。需要特别注意:如果网站接入了CDN,这项检查反映的可能只是访客到CDN之间的协议,并不能直接证明源站是否开启HTTP/2,还需要核对源站或负载均衡的配置。

3. 观察资源和日志

重点查看Web进程的内存占用、异常连接数、5xx错误数量以及服务重启记录。若服务器在带宽使用不高的情况下持续出现内存暴涨、接口超时等情况,应进一步检查HTTP/2组件及相关访问日志,但不能仅凭这些现象就认定遭遇了HTTP/2 Bomb攻击。

五、无法立即升级时,应该如何防护?

对于承载线上业务的云服务器,优先措施是评估兼容性后部署官方修复版本。若暂时不能升级,可根据实际架构考虑以下缓解办法:

  1. 必要时暂时关闭HTTP/2:在确认风险且无法及时修复的情况下,可评估回退至HTTP/1.1。调整前应确认配置语法及应用兼容性。
  2. 限制请求资源消耗:在支持的Web服务器、反向代理、负载均衡或WAF中,对请求头数量、请求头大小、连接数和异常请求速率设置合理限制。
  3. 检查CDN与源站保护:接入CDN并不等于所有协议风险自动消失,应确认HTTP/2在哪一层终止,以及源站是否允许不必要的直接访问。
  4. 配置监控与告警:持续观察内存占用、Web服务健康状态和网站错误率,避免小流量异常长期未被发现。
  5. 变更前做好备份:升级Nginx或Apache前,保存站点配置、SSL证书配置、反向代理规则及自定义模块信息,并准备回滚方案。

尤其是使用宝塔面板管理生产环境的用户,Web服务升级可能影响自定义配置或第三方模块。建议先在低峰时段备份并执行升级,完成后逐项检查网站访问、登录、下单、接口调用等关键功能。

六、总结

HTTP/2 Bomb再次说明,服务器安全不仅取决于网络带宽和防火墙规则,也与Web服务的协议实现及资源限制密切相关。对于启用了HTTP/2的网站,建议按照“确认版本和协议配置—核查安全补丁—做好备份—升级或临时缓解—监控验证”的顺序开展排查。

无论使用的是独立服务器、云服务器还是托管在CDN后的站点,都应关注实际处理HTTP/2请求的组件,及时修复已知问题,降低因资源耗尽引发业务中断的风险。

返回业界新闻