作者:百度安全实验室
原文链接:https://mp.weixin.qq.com/s/CIAdpOoxQ-ARwitVmTxX7Q
0x00概述
百度智云盾团队在2022年3月首次捕获到利用OpenAFS服务的反射放大攻击。据现有资料表明,这种反射攻击方式尚属全网首次出现,智云盾系统在2秒内识别攻击,实时对流量做了隔离和清洗,保障用户免遭DDoS的伤害。
经过深入分析,我们确认了本次攻击是黑客利用了基于OpenAFS系统的客户端服务发起的DDoS反射攻击,OpenAFS是一套成熟的分布式文件系统,客户端在UDP7001端口提供服务,由于OpenAFS 多个版本存在安全漏洞,导致开启该服务的主机容易被黑客利用作为反射源进行DDoS反射攻击。
0x01反射原理
攻击者采用反射方式实施DDoS攻击时,不是直接攻击受害者IP,而是伪造了大量受害者IP的请求发给相应的开放服务,通常这类开放服务不对源进行校验而是立即完成响应,这样更大更多的响应数据包发送到受害者IP,从而实现了流量的反射,这类开放服务就是反射源。
原理如下图所示:
图1中攻击者Attacker伪造了请求包PVA并发送到反射服务器A,但PVA的源IP是V,所以A响应的时候发送PAV给到V。
反射攻击一方面隐藏了攻击IP,同时还有一个重要特征是放大,上述原理图中的PAV往往是PVA的好几倍,甚至是成千上万倍。正是有了这样的特征,黑客组织乐此不疲的使用这一攻击方式,并不断的研究信息反射攻击增强攻击效果。
0x02攻击分析
智云盾系统检测到攻击时,自动对攻击流量进行采样,安全专家对采样包及时进行了深层次的分析和演练。本次攻击事件共涉及反射源2594个。
- 攻击包分析
通过分析智云盾的攻击采样包发现,反射流量的端口来自于7001端口,下图红色箭头指向的是反射源端口:
采样包中udp携带的攻击载荷如下图所示:
数据包中的攻击载荷固定包含OpenAFS,通过搜索分析,这是一款分布式文件系统。攻击载荷如下图所示:
2.攻击模拟(OpenAFS版本号:1.6)
为了进一步分析,我们在一台纯净的Ubuntu16.04的机器上安装了OpenAFS服务,不同版本的服务在我们的测试中,响应情况不同,此次安装的版本号为1.6。通过对攻击载荷的分析,并借鉴官方文档中查询请求的消息格式,我们编写软件向这几个端口发送攻击载荷为
\x00\x00\x03\xe7\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x05 \x00\x00\x00\x00\x00\x00\x00的udp数据包,并针对反射源IP进行抓包,最后发现7001端口有响应。复现攻击如下图所示:
我们在模拟攻击请求的验证中,发出一个载荷长度为29字节,获取到的响应包载荷为93字节。
3.攻击模拟(OpenAFS版本号:1.7和1.8)
OpenAFS从1.0到1.9共有10个大版本,我们对每个版本都进行了测试分析,最后发现,1.7和1.8两个较新的版本也存在安全漏洞,但是与1.6版本不同的是,响应包内容不再包含服务器的主机信息。下面展示了我们的验证过程:
版本1.7:
发送一个载荷长度为29字节的请求,共获取到5个载荷为24字节的响应内容,下图为模拟过程:
版本1.8:
发送一个载荷长度为29字节的请求,共获取到5个载荷为18字节的响应内容,下图为模拟过程:
4.放大倍数
按照我们前期对反射倍数的研究结果,科学的统计放大倍数,应当包括数据包协议头和网络帧间隙。详细的方案可以参阅《MEMCACHED DRDoS攻击趋势》一文。
协议头和网络帧间隙计算为:14(以太头)+20(IP头)+8(UDP头)+4(FCS头)+20(帧间隙)=66字节。所以三个版本反射倍数计算不同,
1.6版本的实际响应的数据包大小为93+66=159字节,1.7版本的为5x(66+24)=450字节,1.8版本的为5x(60+24)=420字节。请求包大小均为29+66 = 95字节。
最终我们计算得到的放大倍数为
版本号 | 放大倍数 |
---|---|
1.6 | 159/95=1.67 |
1.7 | 450/95=4.74 |
1.8 | 420/95=4.42 |
0x03反射源分析
1.全网数据
攻击发生以后,我们联合 ZoomEye 对在UDP7001上存在漏洞的服务进行了全网扫描,对扫描的反射源进行了调查分析,全球共有超过26w的OpenAFS服务存在安全漏洞,主要来源于中国,占比超过48%。下图是IP的全球分布情况:
0x04防范建议
反射攻击与传统的flood攻击相比,能更好的隐藏攻击者,并且产生的流量更大,因而反射攻击越来越受到黑客青睐。
建议参考以下方式提升防护能力。
1.对互联网服务应避免被滥用,充当黑客攻击的帮凶
- 禁用UDP服务,不能禁用时,应确保响应与请求不要有倍数关系
- 启用的UDP服务应采取授权认证,对未授权请求不予响应
2.对企业用户应做好防范,减少DDoS对自有网络和业务的影响
- 如果没有UDP相关业务,可以在上层交换机或者本机防火墙过滤UDP包
- 寻求运营商提供UDP黑洞的IP网段做对外网站服务
- 选择接入DDoS云防安全服务对抗大规模的DDoS攻击
智云盾团队介绍
百度智云盾是百度安全专注在互联网基础设施网络安全攻防的团队,提供T级云防、定制端防和运营商联防等DDoS/CC防御解决方案。一直服务于搜索、贴吧、地图、云等百度业务,在保障百度全场景业务之余也进行防御能力外部输出,为互联网客户提供一体化的防御服务。
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1861/