您的位置: 新闻资讯 > 行业动态 > 正文

小心!HTTP/2 Rapid Reset漏洞正在威胁你的Tomcat(图文)


来源:mozhe 2025-07-28

HTTP/2 Rapid Reset 漏洞是什么



HTTP/2 是超文本传输协议的最新版本,自 2015 年发布以来,凭借其显著的性能优势,逐渐成为互联网通信的标准协议之一 。与 HTTP/1.x 相比,HTTP/2 引入了二进制分帧层,实现了多路复用,允许在单个 TCP 连接上并发处理多个请求和响应,大大提升了传输效率,减少了延迟,为用户带来更流畅的网络体验。同时,HTTP/2 还支持头部压缩、服务器推送等特性,进一步优化了网络性能。
然而,安全研究人员发现了 HTTP/2 协议中的一个严重漏洞 ——Rapid Reset(快速重置)漏洞,编号为 CVE-2023-44487。该漏洞的核心原理在于攻击者恶意利用 HTTP/2 协议中的 RST_STREAM 帧,绕过服务端对单个 TCP 连接的并发流数量限制(max_concurrent_streams),从而发起大规模的拒绝服务(DoS)攻击,导致服务器资源耗尽,无法正常处理合法用户的请求。
在正常的 HTTP/2 通信中,每个 TCP 连接都会设置一个并发流数量的上限,以防止资源被过度占用。例如,一个 Web 服务器可能设置每个 TCP 连接最多允许同时处理 100 个并发流。而 HTTP/2 协议规定,只有处于 “OPEN” 或 “Half-closed” 状态的流才会被计入并发流数量统计,当一个流被 RST_STREAM 帧重置后,它会立即进入 “Closed” 状态,不再被统计。攻击者正是利用了这一特性,通过自动化工具,在短时间内快速打开大量的请求流,并立即发送 RST_STREAM 帧取消这些请求,使得服务端的并发流数量限制形同虚设。
假设攻击者控制了一个由数千台机器组成的僵尸网络,每台机器都向目标服务器发起大量的 HTTP/2 请求流,并迅速重置。在这种攻击下,服务器会在极短的时间内接收到海量的请求,需要不断地为这些请求分配资源进行处理,而这些请求又被迅速取消,导致服务器的 CPU、内存等资源被大量消耗,最终无法正常响应合法用户的请求,造成服务中断。

漏洞引发的攻击有多严重


HTTP/2 Rapid Reset 漏洞引发的攻击规模和影响极其严重,多家知名互联网企业都遭受了攻击。在 2023 年 8 月下旬,Cloudflare 监测到针对其客户的一次攻击,峰值达到了惊人的每秒 2.01 亿次请求 ,是该公司之前所记录到的最大规模攻击的三倍之多,而这次攻击仅仅利用了由 20,000 台受感染设备组成的僵尸网络。
同一时期,谷歌也未能幸免,观察到的一次 DDoS 攻击峰值可达每秒 3.98 亿次请求,是谷歌此前遭遇的最大规模攻击的七倍多。这些攻击使得服务器在短时间内收到海量请求,资源被迅速耗尽,无法正常处理合法用户的请求,导致大量用户遭遇 HTTP 502 错误网关错误消息和 HTTP 499 客户端关闭错误,严重影响了业务的正常运行。
亚马逊云服务(AWS)同样遭受了攻击,在 8 月下旬的两天内,遭遇了十几起 HTTP/2 快速重置攻击,最大峰值达到每秒 1.55 亿次请求 。这些攻击导致服务器的 CPU 使用率急剧上升,内存消耗大幅增加,网络带宽也被大量占用,使得服务器无法及时响应合法请求,业务陷入瘫痪。
对于使用 Tomcat 服务器的用户而言,该漏洞带来的危害更是直接。当 Tomcat 服务器受到攻击时,由于需要不断处理大量的恶意请求,会迅速消耗服务器的 CPU 和内存资源。这可能导致服务器出现 OutOfMemoryError 错误,最终造成拒绝服务,使依赖 Tomcat 服务器的应用程序无法正常提供服务。例如,一个基于 Tomcat 搭建的在线商城,遭受攻击后用户将无法正常浏览商品、下单购买,不仅会导致直接的经济损失,还会严重损害企业的声誉,降低用户对平台的信任度,导致用户流失。

Tomcat 受影响的版本范围


如果你的项目使用了 Tomcat 服务器,且版本在以下范围内,那么就可能受到 HTTP/2 Rapid Reset 漏洞的威胁:
  • 11.0.0-M1 到 11.0.0-M11
  • 10.1.0-M1 到 10.1.13
  • 9.0.0-M1 到 9.0.80
  • 8.5.0 到 8.5.93
你可以通过查看 Tomcat 安装目录下的version.properties文件,或者在启动 Tomcat 时查看控制台输出的版本信息,来确定自己使用的 Tomcat 版本。如果你的版本在受影响范围内,务必高度重视,尽快采取措施进行修复 。

如何判断 Tomcat 是否受影响


及时判断自己使用的 Tomcat 是否受 HTTP/2 Rapid Reset 漏洞影响,是保障服务器安全的关键一步。你可以通过以下几种方法进行判断:
  • 查看版本号:最为直接的方式就是确认 Tomcat 的版本。如前文所述,若你的 Tomcat 版本处于 11.0.0-M1 到 11.0.0-M11、10.1.0-M1 到 10.1.13、9.0.0-M1 到 9.0.80、8.5.0 到 8.5.93 这些区间内,那么就存在受漏洞影响的风险。你可以在 Tomcat 的安装目录下找到version.properties文件 ,打开后查看server.number属性的值,即可确定当前 Tomcat 的版本。另外,在启动 Tomcat 时,控制台也会输出版本信息,仔细留意这部分内容也能获取版本号。
  • 检查服务器日志:密切关注服务器日志,查看是否有异常流量和错误信息。当 Tomcat 受到攻击时,日志中可能会出现大量的 RST_STREAM 帧相关记录,以及类似 “OutOfMemoryError” 这样的内存耗尽错误提示。比如,你可能会看到类似 “[ERROR] org.apache.coyote.http2.Http2Processor - Error processing HTTP/2 request: RST_STREAM received” 的日志内容,这就表明服务器可能正在遭受与 HTTP/2 Rapid Reset 漏洞相关的攻击。此外,如果发现服务器日志中短时间内出现大量来源不明的请求,且这些请求的处理时间极短,也需要警惕是否受到了攻击 。你可以使用文本搜索工具,在日志文件中搜索关键词 “RST_STREAM”“OutOfMemoryError” 等,以便快速定位相关信息。
  • 利用安全检测工具:借助专业的安全检测工具,如 Nessus、OpenVAS 等,对服务器进行全面扫描。这些工具能够检测出服务器中存在的各种安全漏洞,包括 HTTP/2 Rapid Reset 漏洞。以 Nessus 为例,在安装并配置好 Nessus 后,创建一个新的扫描任务,将目标服务器的 IP 地址添加到扫描范围内,选择合适的扫描策略,然后启动扫描。扫描完成后,Nessus 会生成详细的报告,列出检测到的所有漏洞及其风险等级,你可以从中查看是否存在与 HTTP/2 Rapid Reset 漏洞相关的信息 。需要注意的是,在使用这些工具时,要确保其规则库是最新的,以保证能够检测到最新的漏洞。

应对漏洞,Tomcat 该怎么做


面对 HTTP/2 Rapid Reset 漏洞的威胁,及时采取有效的防护措施至关重要。对于使用 Tomcat 服务器的用户来说,可以从以下几个方面入手:

升级到安全版本

  • 安全版本信息:Apache 官方已经发布了修复该漏洞的版本,建议用户尽快将 Tomcat 升级到安全版本,具体如下:
    • Apache Tomcat >= 11.0.0-M12
    • Apache Tomcat >= 10.1.14
    • Apache Tomcat >= 9.0.81
    • Apache Tomcat >= 8.5.94
  • 升级步骤
    • 备份数据:在升级之前,务必备份 Tomcat 服务器上的所有重要数据,包括 Web 应用程序、配置文件、日志文件等。可以使用命令行工具或图形化备份软件进行备份,例如在 Linux 系统中,可以使用cp命令复制整个 Tomcat 安装目录,或者使用tar命令将重要文件打包压缩。
    • 下载新版本:访问 Apache Tomcat 官方网站(https://tomcat.apache.org/download-10.cgi ),根据自己的需求选择对应的版本进行下载。注意选择与操作系统和 Java 版本兼容的 Tomcat 版本。
    • 停止旧版本服务:在升级前,先停止正在运行的 Tomcat 服务。在 Linux 系统中,可以进入 Tomcat 安装目录下的bin文件夹,执行sh shutdown.sh命令;在 Windows 系统中,可以在命令提示符中进入 Tomcat 的bin目录,运行shutdown.bat命令。
    • 安装新版本:解压下载的新版本 Tomcat 压缩包,将解压后的文件夹放置在合适的位置。如果是覆盖安装,可以将新版本的文件复制到旧版本的安装目录中,替换旧文件;如果是全新安装,则需要根据实际情况调整配置文件中的路径和参数。
    • 恢复配置和数据:将之前备份的配置文件(如server.xml、web.xml等)和数据文件复制到新版本 Tomcat 的相应目录中,确保应用程序的配置和数据保持不变。
    • 启动测试:启动新版本的 Tomcat 服务,在 Linux 系统中执行sh startup.sh,在 Windows 系统中运行startup.bat。然后,通过浏览器访问 Tomcat 服务器,检查应用程序是否正常运行,确保升级过程没有引入新的问题。
  • 注意事项
    • 兼容性测试:在生产环境升级之前,务必在测试环境中进行充分的兼容性测试,确保新版本的 Tomcat 与现有的应用程序、依赖库以及操作系统等完全兼容。例如,某些应用程序可能依赖于旧版本 Tomcat 的特定功能或配置,升级后可能会出现不兼容的情况,需要提前进行调整和适配。
    • 关注官方文档:升级过程中,要密切关注 Apache Tomcat 官方文档中的升级指南和注意事项,按照官方建议进行操作,以避免出现不必要的问题。官方文档通常会提供详细的升级步骤、可能遇到的问题及解决方案,遵循这些指导可以大大提高升级的成功率 。
    • 监控运行状态:升级完成后,要持续监控 Tomcat 服务器的运行状态,包括 CPU 使用率、内存占用、网络流量等指标,及时发现并解决可能出现的性能问题或异常情况。可以使用系统自带的监控工具,如 Linux 的top、htop命令,或者第三方监控软件,如 Prometheus、Grafana 等。

临时防护措施


如果由于某些原因无法立即升级 Tomcat 版本,可以采取以下临时防护措施来降低风险:
  • 限制并发连接数:通过修改 Tomcat 的配置文件server.xml,调整连接器(Connector)的相关参数,限制每个 IP 地址的最大并发连接数和最大线程数,从而减少攻击者能够利用的资源。例如,可以在Connector标签中添加或修改以下属性:

 
<Connector port="8080" protocol="HTTP/1.1"
maxConnections="1000" <!-- 最大并发连接数,可根据服务器性能调整 -->
maxThreads="500" <!-- 最大线程数,可根据服务器性能调整 -->
acceptCount="100" <!-- 等待队列长度,可根据服务器性能调整 -->
connectionTimeout="20000" <!-- 连接超时时间,单位毫秒 -->
keepAliveTimeout="5000" <!-- 长连接超时时间,单位毫秒 -->
redirectPort="8443" />
这样设置后,当服务器的并发连接数或线程数达到上限时,新的请求将被放入等待队列或直接拒绝,从而限制了攻击者的请求数量。
  • 启用防火墙规则:利用防火墙对进入服务器的 HTTP/2 流量进行过滤,阻止异常流量和恶意请求。可以配置防火墙规则,限制特定 IP 地址段的访问,或者对 HTTP/2 协议的请求进行严格的合法性检查,只允许符合规范的请求通过。以 Linux 系统中的 iptables 防火墙为例,可以添加以下规则:

 
# 允许本地回环接口的所有流量
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接和相关连接的流量通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许特定IP地址段(如192.168.1.0/24)的HTTP/2流量通过
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 8080 -m string --string "PRI * HTTP/2.0" --algo bm -j ACCEPT
# 拒绝其他所有HTTP/2流量
iptables -A INPUT -p tcp --dport 8080 -m string --string "PRI * HTTP/2.0" --algo bm -j DROP
# 其他常规的防火墙规则设置,如允许SSH访问等
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 默认策略为拒绝所有未匹配的流量
iptables -P INPUT DROP
这些规则将允许本地回环接口和已建立连接的流量通过,同时只允许指定 IP 地址段的 HTTP/2 流量访问服务器的 8080 端口,其他不符合条件的 HTTP/2 流量将被拒绝,从而有效地防止恶意攻击。
  • 使用 Web 应用防火墙(WAF):部署 Web 应用防火墙,对 HTTP/2 请求进行深度检测和过滤,识别并拦截恶意的 RST_STREAM 帧和异常请求模式。WAF 可以实时监测和分析网络流量,根据预设的规则和算法,对潜在的攻击行为进行预警和阻断。许多商业化的 WAF 产品都提供了针对 HTTP/2 协议的安全防护功能,如阿里云的 Web 应用防火墙、腾讯云的大禹 Web 应用防火墙等,用户可以根据自己的需求选择合适的产品进行部署 。此外,也有一些开源的 WAF 项目,如 ModSecurity,可以与 Tomcat 服务器集成使用,提供基本的安全防护能力。

未来如何防范类似漏洞


HTTP/2 Rapid Reset 漏洞的出现,为我们敲响了网络安全的警钟,也让我们深刻认识到防范类似漏洞的紧迫性和重要性。在未来的网络安全防护中,我们需要从多个方面入手,建立起全方位、多层次的防范体系。
日常的安全管理工作至关重要。要养成定期更新系统和软件补丁的好习惯,这就如同给我们的网络系统穿上一层坚固的铠甲,能够及时修复已知的安全漏洞,有效抵御各类攻击。许多软件供应商会在发现漏洞后迅速发布补丁,及时更新可以确保我们的系统始终处于安全状态。以 Windows 操作系统为例,微软会定期发布安全更新,修复系统中存在的漏洞,如果用户长期不更新,就可能面临被攻击的风险 。同时,加强访问控制也是必不可少的环节。通过合理设置用户权限,严格限制不必要的访问,只允许授权的用户和设备访问关键资源,能够大大降低安全风险。比如,在企业内部网络中,根据员工的工作需要,为不同岗位的员工分配不同的权限,普通员工只能访问与自己工作相关的文件和系统,而管理员则拥有更高的权限,这样可以防止内部人员的误操作或恶意攻击。
借助先进的安全产品也是提升防护能力的重要手段。防火墙可以对网络流量进行过滤,阻止未经授权的访问和恶意流量进入网络;入侵检测系统(IDS)和入侵防御系统(IPS)能够实时监测网络活动,及时发现并阻止入侵行为。一些企业还会使用安全信息和事件管理(SIEM)系统,对来自不同安全设备的日志和事件进行集中管理和分析,以便快速发现潜在的安全威胁。例如,某电商企业通过部署防火墙和 IDS 系统,成功拦截了多次针对其网站的 DDoS 攻击和恶意扫描,保障了网站的正常运行 。
关注安全资讯,及时了解最新的安全动态和漏洞信息同样关键。订阅权威的安全资讯平台,如国家互联网应急中心(CNCERT)、乌云漏洞报告平台等,能够让我们第一时间获取安全漏洞的相关信息,提前做好防范措施。同时,加入安全社区,与其他安全爱好者和专业人士交流经验,分享安全防护的技巧和心得,也能帮助我们不断提升安全意识和防护能力。
HTTP/2 Rapid Reset 漏洞虽然给我们带来了巨大的挑战,但也让我们更加重视网络安全。只要我们保持警惕,采取有效的防范措施,就能够在一定程度上降低安全风险,保障网络系统的稳定运行 。希望大家都能将网络安全放在首位,共同营造一个安全、可靠的网络环境。

关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和DDoS攻击防御

热门文章

X

7x24 小时

免费技术支持

15625276999


-->