当前位置:   article > 正文

基于OpenAFS文件系统的反射攻击深度分析

openafs

00109f0e10a631434427ec3cfb1dfccb.png

0x00概述

百度智云盾团队在2022年3月首次捕获到利用OpenAFS服务的反射放大攻击。据现有资料表明,这种反射攻击方式尚属全网首次出现,智云盾系统在2秒内识别攻击,实时对流量做了隔离和清洗,保障用户免遭DDoS的伤害。

经过深入分析,我们确认了本次攻击是黑客利用了基于OpenAFS系统的客户端服务发起的DDoS反射攻击,OpenAFS是一套成熟的分布式文件系统,客户端在UDP7001端口提供服务,由于OpenAFS 多个版本存在安全漏洞,导致开启该服务的主机容易被黑客利用作为反射源进行DDoS反射攻击。

0x01反射原理

攻击者采用反射方式实施DDoS攻击时,不是直接攻击受害者IP,而是伪造了大量受害者IP的请求发给相应的开放服务,通常这类开放服务不对源进行校验而是立即完成响应,这样更大更多的响应数据包发送到受害者IP,从而实现了流量的反射,这类开放服务就是反射源。

原理如下图所示:

cc3d44857ce08865a67b2a9baa56ac4b.png

图1 反射攻击原理示意图

图1中攻击者Attacker伪造了请求包PVA并发送到反射服务器A,但PVA的源IP是V,所以A响应的时候发送PAV给到V。

反射攻击一方面隐藏了攻击IP,同时还有一个重要特征是放大,上述原理图中的PAV往往是PVA的好几倍,甚至是成千上万倍。正是有了这样的特征,黑客组织乐此不疲的使用这一攻击方式,并不断的研究信息反射攻击增强攻击效果。

0x02攻击分析

智云盾系统检测到攻击时,自动对攻击流量进行采样,安全专家对采样包及时进行了深层次的分析和演练。本次攻击事件共涉及反射源2594个。

  1. 攻击包分析

通过分析智云盾的攻击采样包发现,反射流量的端口来自于7001端口,下图红色箭头指向的是反射源端口:

03880239379ca001dcb3479748c55703.png

图2 采样包内攻击来源端口图

采样包中udp携带的攻击载荷如下图所示:

1bdff0c22544080690a04a9bb887bf94.png

图3 攻击载荷

数据包中的攻击载荷固定包含OpenAFS,通过搜索分析,这是一款分布式文件系统。攻击载荷如下图所示:

fe714ab2b1c9cdb23cad1bb92cc55ac2.png

图4 格式化后的攻击载荷

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端口有响应。复现攻击如下图所示:

dd542688a0c03945e4bee8df05f3ab2a.png

图5 反射源的响应(版本号:1.6)

我们在模拟攻击请求的验证中,发出一个载荷长度为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字节的响应内容,下图为模拟过程:

47c3f1ba24cf31409512266f9f7c415e.png

图6 模拟测试(版本号:1.7)

2e7c33e51d75dd7a0ef6ad98182af958.png

fde8f52420a266dd070d9b886b96a5bf.png

图7 格式化后的响应内容(版本号:1.7)

版本1.8:

发送一个载荷长度为29字节的请求,共获取到5个载荷为18字节的响应内容,下图为模拟过程:

2e5e83c36225b95908004acaee1b992c.png

图8 模拟测试(版本号:1.8)

3737196082df74d822fa665403c12536.png

c07b9732923b7030e489bbe6a7f092df.png

图9 格式化后的响应内容(版本号:1.8)

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的全球分布情况:

de716435531c2ff821c3e524cd56084f.png

图10 OpenAFS服务全球分布

0x04防范建议

反射攻击与传统的flood攻击相比,能更好的隐藏攻击者,并且产生的流量更大,因而反射攻击越来越受到黑客青睐。

建议参考以下方式提升防护能力。

1.对互联网服务应避免被滥用,充当黑客攻击的帮凶

    1. 禁用UDP服务,不能禁用时,应确保响应与请求不要有倍数关系

    2. 启用的UDP服务应采取授权认证,对未授权请求不予响应

2.对企业用户应做好防范,减少DDoS对自有网络和业务的影响

    1. 如果没有UDP相关业务,可以在上层交换机或者本机防火墙过滤UDP包

    2. 寻求运营商提供UDP黑洞的IP网段做对外网站服务

    3. 选择接入DDoS云防安全服务对抗大规模的DDoS攻击

智云盾团队介绍

百度智云盾是百度安全专注在互联网基础设施网络安全攻防的团队,提供T级云防、定制端防和运营商联防等DDoS/CC防御解决方案。一直服务于搜索、贴吧、地图、云等百度业务,在保障百度全场景业务之余也进行防御能力外部输出,为互联网客户提供一体化的防御服务。

135580c3fa2505fc03a6c6a3339e1a6d.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/210309
推荐阅读
相关标签
  

闽ICP备14008679号