前言
2023年10月Cloudflare、Google、AWS等厂商公布了一种利用HTTP/2快速重置进行应用层DDoS攻击的0day漏洞(CVE-2023-44487)[1][2],即H2 Rapid Reset DDoS。Google宣传其监控到此种攻击峰值超过每秒3.98亿个请求,打破互联网历史最大应用层DDoS攻击记录[3]。而本文中火山引擎网络安全团队将对H2 Rapid Reset DDoS进行深入的研究分析,并介绍火山引擎对这种新型攻击手法的防护效果。
想要了解网络安全,学习网络安全知识的小伙伴可以扫描下方二维码~
关键信息速读
【关键点一】H2 Rapid Reset DDoS漏洞可绕过HTTP/2协议的并发流限制,迫使服务端处理超量请求,但无法绕过NGINX的keepalive_requests,故攻击威力视服务端配置而定
【关键点二】H2Rapid Reset DDoS对服务端CPU的压力实际略小于一般的应用层DDoS,但仍具有一定威力
【关键点三】H2Rapid Reset DDoS可阻塞反向代理集群中TLS decryption->上层应用的通道,从而瘫痪代理对外服务能力
【关键点四】H2Rapid Reset DDoS经过反向代理后会转化成对源站的SYN + RST的四层DDoS,在特定场景甚至可转换成TCP connection Flood
【关键点五】H2Rapid Reset DDoS相比一般的应用层DDoS能够节省攻击端的下行带宽,为攻击者带来"降本增效"
【关键点六】火山引擎已上线H2 Rapid Reset DDoS的优化补丁,对这种新型攻击攻击有显著的防护效果,如需更强的防护能力,推荐接入高防产品
一、背景知识:HTTP/2与多路复用
HTTP/2是超文本传输协议的最新版本,与HTTP/1对同一个TCP连接的每个请求需串行处理不同,HTTP/2通过引入二进制分帧层(Binary Framing Layer)的方式实现了多个请求和响应在同一个TCP连接上用不同流进行并发传输,实现多路复用,大大提升互联网访问效率。如图1所示:
图1 HTTP/1和HTTP/2访问流程对比
所谓的二进制分帧层即HTTP/2将HTTP协议通信分解为二进制编码帧,然后将其映射到特定的流(stream)中,具体流程见图2。
图2 HTTP/2将HTTP信息分解为二进制编码帧
在同一个TCP连接上,不同stream的帧并交错传输,并在对端重新组合,还原完整HTTP消息,最终实现在单个TCP连接上的多路复用。
此外HTTP/2还支持客户端发送RST_STREAM帧来让服务端终止处理和应答对应stream的请求,以节省服务端资源和客户端下行带宽,类似IM软件的“消息撤回功能" 。如图3中ID为3的流被客户端重置,服务端停止处理不作应答。
图3 HTTP/2传输过程和流重置
但正所谓"福祸相依",HTTP/2以其强大的功能为用户提供更高效、快速服务的同时也不可避免地增加了被黑客恶意利用,实现更高效DDoS的风险,而H2Rapid Reset DDoS就是其中一个典型的例子。
二、什么是H2 Rapid Reset DDoS
H2 Rapid Reset DDoS(CVE-2023-44487)的核心原理就是:恶意利用HTTP/2的重置机制绕过服务端对单个TCP连接的并发流数量限制(max_concurrent_streams),迫使服务端处理超量的请求,增强攻击效果。
具体漏洞利用过程如下:
(1)首先HTTP/2出于安全考虑,支持对单个TCP连接的并发流数量进行限制(详情见RFC9113)[4]
(2)但该限制策略只统计"OPEN"或"Half-closed"状态下的流,而"Closed"状态的流并不计入并发数[1],这也是整个漏洞的关键所在。
(3)而HTTP/2 RST_STREAM帧可让对应stream快速进入"Closed"状态
(4)攻击者通过大规模发送应用层请求并快速重置,让服务端接收到请求后对应的stream快速进入"Closed"状态,最终并发流数量限制被绕过,服务端无法忽略超量的stream,造成资源被大量消耗。
图4 HTTP/2 Rapid Reset attack攻击过程
备注:这种快速重置的方式无法绕过NGINX对单TCP连接上的HTTP/2请求总数限制策略,故开启了此项功能的NGINX服务端对此类手法有一点抵御能力
由此可见整个漏洞利用的过程本身并不复杂,并且给人一种似曾相识的感觉…
但是,大家可能会不禁疑惑:
(1)这种攻击手法有DDoS效果吗?
(2)跟一般的H2的应用层DDoS有什么差别?
(3)攻击过程中会有哪些异常迹象?
为此,火山引擎Anit-DDoS团队进行了HTTP/2快速重置攻击进行了深入的研究和测试。
三、H2 Rapid Reset DDoS威力如何
为了全面、客观、量化地分析H2 Rapid Reset DDoS的实际效果,火山引擎Anit-DDoS团队基于NGINX搭建了HTTP/2 Server和HTTP2 Proxy(反向代理)两种常见的业务场景进行测试(见图5)。
3.1 CPU使用率指标分析
应用层DDoS攻击的效果主要依赖耗尽服务端CPU资源,故在同等量级请求速率的前提下,对服务端的CPU消耗量是量化攻击威力的重要指标。火山引擎网络安全团队通过控制变量法测试了各种场景:
图6 各类被攻击场景下的NGINX的CPU使用率
由测试结果可见:
(1)H2 Rapid Reset DDoS不管在H2 Server还是H2 Proxy场景下威力均略弱于一般的H2应用层DDoS,这是因为快速Reset后NGINX马上终止了对攻击请求的处理,"节省"了服务端资源;
(2)H2 Proxy对一般的H2应用层DDoS的抗压能力最差,这是由于H2 Proxy既要处理客户端请求,又要处理源站应答。而H2 Rapid Reset DDoS的快速"撤回"请求,无需Proxy过多处理,反而降低了H2 Rapid Reset DDoS对H2 Proxy的压力;
(3)H2 Proxy的回源协议版本对应用层攻击的抗压能力影响不大。
综上所述:H2 Rapid Reset DDoS虽然能绕过服务端的并发流限制,但对在等量的请求频率下对服务端压力弱于一般的H2应用层DDoS,特别是在H2 Proxy场景下,反而为Proxy"减负"。而且H2 Rapid Reset DDoS无法绕过绕过NGINX对单TCP连接上的HTTP/2请求总数限制[5],所以其攻击效果的"增益"并没有想象中大.
3.2 对反向代理架构的压力分析
前面只是在协议层面的分析,而实际现网的攻击效果中还需结合业务架构综合评估。当前业界常见的HTTP服务架构通常是在Web服务段前部署HTTP/2反向代理集群,且为了实现高性能、高可靠,代理集群会对请求作异步处理:例如处理HTTPS流量时,要先经过TLS解密模块进行解密,再将解密后的明文数据上报至上层服务,这使得H2 Rapid Reset DDoS有更大发挥空间:(如图7)
(1)攻击者对目标域名发起H2 Rapid Reset DDoS;
(2)TLS解密模块至上层服务间的通道被大规模攻击数据阻塞;
(3)正常用户访问由于阻塞问题,Proxy返回"502 Bad Gateway",正常业务受损。
图7 H2 Rapid Reset DDoS对HTTP服务架构的威胁
当然事实上所有经过TLS加密的应用层DDoS都有此类风险,而并非H2 Rapid Reset DDoS所独有的特性。
3.3 H2 Proxy场景下源站性能分析
H2 Proxy场景中除了要评估反向代理自身的压力以外,还需考虑源站的受影响情况。在一般的H2应用层DDoS中,如果反向代理上层的安全策略被绕过,那么攻击请求将到达源站,也就是源站自身也遭受应用层DDoS攻击。而H2 Rapid Reset DDoS由于会在发送请求后会马上重置,所以应用层攻击请求并不会透传到源站,那是否意味着在Rapid Reset DDoS源站完全无压力?--事实并非如此。
火山引擎网络安全团队测试确认:当H2 Proxy遭受H2 Rapid Reset DDoS时,攻击请求的QPS会被转化针对源站的SYN Flood + RST Flood,具体过程:
(1)H2 Proxy收到应用层请求后马上给源站发syn报文,准备回源;
(2)而后H2 Proxy收到对应流的"RST_STREAM"帧,H2 Proxy停止后续处理并清空对应回源的SYN_SENT节点;
(3)此时源站收到syn后应答synack,但由于H2 Proxy的SYN_SENT节点被回收,直接返回rst;
(4)最终大量的Rapid Reset经过H2 Proxy后被转化成对源站的大规模SYN+ RST的四层DDoS(当然实际现网回源会有复用已有连接的情况,故这个转化率不一定能达到1:1)
图8 H2 Proxy场景下H2 Rapid Reset DDoS会转化成对源站的四层DDoS
当然从源站来说,处理SYN Flood + RST Flood的性能消耗比等量的应用层DDoS要小,故也从侧面说明H2 Rapid Reset DDoS相比一般的H2应用层DDoS对源站的威力更小
值得注意的是,火山网络安全团队测试中发现当H2 Rapid Reset DDoS攻击满足一定条件时,可以转换成对源站的TCP connection Flood(即完成TCP握手后,马上fin断连),这种情况下会耗尽源站的连接池,消耗更多的CPU资源/内存,对源站压力更大。
综上所述:在H2 Proxy场景中Rapid Reset DDoS会转化成对源站的四层DDoS攻击,对源站也有压力和威胁。
3.3 流量指标分析
虽然应用层DDoS攻击重点在于应用层请求的QPS,但实际四层的流量大小也会影响服务端的带宽成本、肉鸡自身的带宽瓶颈,故也具备一定的分析和评估意义。
经过对比测试,在发起相同QPS的情况下:
(1)H2 Rapid Reset DDoS和General H2 DDoS在上行带宽维度(客户端->服务端)差别不大;
(2)但下行带宽维度(客户端->服务端)差别很大:H2 Rapid Reset DDoS的下行带宽远小于General H2 DDoS(见图9)。这其实也很好理解,毕竟快速重置后,服务端不会进行应用层应答。
图9 攻击带宽对比
这就意味着H2 Rapid Reset DDoS可为肉鸡节省大量的下行带宽成本,为攻击者"降本增效"。当然也有些攻击场景专门请求服务端大文件,通过大规模下行流量来阻塞服务端带宽资源,所以H2 Rapid Reset DDoS这个特性并非在所有场合下都能称为优点。
最后需要补充说明的是:上述分析数据是在实验环境控制变量下的测试结果,以客观、准确地量化攻击威力,而实际现网的攻防情况由业务架构、防护策略、肉鸡规模等多种因素共同决定,故实际攻防结果需具体情况具体分析。
四、火山的应对和防护效果
面对H2 Rapid Reset DDoS的威胁,火山网络安全团队联WAF、LB、CDN等相关团队进行了紧急分析和评估,并在火山相关产品(包括但不限于高防IP、高防WAF、CDN、LB等)上线了优化补丁,经过测试确认:火山引擎可在不影响正常业务的基础上对Rapid Reset DDoS攻击的识别和拦截,如图10所示
图10 火山引擎优化补丁对H2 Rapid Reset DDoS的防护效果
然而所谓"大力出奇迹",假设攻击者发起的攻击量足够大,还是有可能耗尽HTTP/2反向代理集群的资源,最终影响业务整体稳定性。为此对于有严重DDoS威胁的业务,建议接入火山DDoS高防产品(DDoS高防IP/高防WAF)进行应对。
火山引擎高防在精确识别各类应用层DDoS的同时,还基于四七层防御系统联动,对超大规模应用层DDoS攻击分层治之,为客户提供专业、可靠的防护服务。
题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
- 2023届全国高校毕业生预计达到1158万人,就业形势严峻;
- 国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。
网络安全行业特点
1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取