HTTP/2于2015年推出,为HTTP协议带来了多项增强功能,包括高效的数据传输、请求处理、响应速度,以及对基于网站的信息交易进行标头压缩。但除了这些效率之外,HTTP/2也给管理员和安全团队带来了一系列独特的挑战。本周早些时候,研究人员公布了一个新发现的与HTTP/2相关的漏洞,该漏洞可用于对易受攻击的目标实施拒绝服务(DoS)攻击。
在thehackernews的报道中,安全研究员BartekNowotarski于1月25日向卡内基梅隆大学计算机应急小组(CERT)协调中心报告了这一问题。
该漏洞被称为"HTTP/2CONTINUATIONFlood",它利用了配置不当的HTTP/2实现,这些实现未能限制或净化请求数据流中的CONTINUATION帧。
CONTINUATION帧是一种用于延续报头块片段序列的方法,允许报头块在多个帧中分割。当服务器收到一个特定的END_HEADERS标志,表明没有其他CONTINUATION或其他帧时,先前分割的报头块就被视为已完成。
如果HTTP/2实现不限制单个数据流中可发送的CONTINUATION帧的数量,就很容易受到攻击。如果攻击者开始向未设置END_HEADERS标志的易受攻击服务器发送HTTP请求,该请求将允许攻击者向该服务器持续发送CONTINUATION帧流,最终导致服务器内存不足而崩溃,并导致成功的拒绝服务(DoS)攻击。
CERT还列举了该漏洞的另一个变种,即使用HPACKHuffman编码的CONTINUATION帧造成CPU资源耗尽,同样导致DoS攻击成功。
Nowotarski指出,这意味着单台机器甚至单TCP连接都有可能破坏服务器的可用性,造成从服务崩溃到性能下降等各种后果。
分布式拒绝服务(DDoS)攻击会创建大规模僵尸网络,通过纯粹的流量来压垮网络,而DoS攻击则不同,它可以通过向传输控制协议(TCP)连接发送大量请求来耗尽目标服务器的资源,从而利用单个设备制造虚假网络流量。
与该新漏洞有关的几个常见漏洞和暴露(CVE)记录已经创建。这些记录包括:
CVE-2024-2653-amphp/http
CVE-2024-27316-ApacheHTTPServer:HTTP/2DoSbymemoryexhaustiononendlesscontinuationframes
CVE-2024-24549-ApacheTomcat:HTTP/2headerhandlingDoS
CVE-2024-31309-ResourceexhaustioninApacheTrafficServer
CVE-2024-27919-HTTP/2:memoryexhaustionduetoCONTINUATIONframeflood
CVE-2024-30255)-HTTP/2:CPUexhaustionduetoCONTINUATIONframeflood
CVE-2023-45288-HTTP/2CONTINUATIONfloodinnet/http
CVE-2024-28182-ReadingunboundednumberofHTTP/2CONTINUATIONframestocauseexcessiveCPUusage
CVE-2024-27983-node::http2::Http2Session::~Http2Session()leadstoHTTP/2servercrash
CVE-2024-2758-TempestaFWratelimitsarenotenabledbydefault
建议用户将受影响的软件升级到最新版本,以减轻潜在威胁。在没有修复程序的情况下,建议考虑暂时禁用服务器上的HTTP/2。
【查看完整讨论话题】 | 【用户登录】 | 【用户注册】