2021-09-03 16:49:381080人阅读
全球DDoS网络攻击次数不断增长,反射攻击次数也是逐年上升,笔者在之前撰写的文章《史上最大DDoS攻击”之争”》中提到的几次”最大”攻击,都是以CLDAP为主的反射攻击。
除了CLDAP反射攻击外,SSDP、NTP等反射攻击也是历年来最为流行的攻击类型,最近几年不断有新的攻击类型被发现,行业内监测到的反射类型有50多种,其中智云盾团队针对其中12种做了首次技术分析和攻击预警。
DDoS攻击峰值和攻击频率不断增高,反射攻击的占比从2017年的21%,增长到2021年接近50%,下图展示了DDoS攻击次数与反射攻击增长的趋势。
图1 DDoS攻击与反射攻击趋势(数据来源:百度安全年报)
统计2021上半年DDoS攻击类型占比,udp反射攻击拥有高达38.85%的占比,相较于2020年同期上升明显。
图2 2021上半年攻击类型占比
统计反射攻击类型TOP6的数据,SSDP、NTP、SNMP、Memcache、DNS和CLDAP是最为活跃的反射攻击。
图3 2021上半年反射型攻击TOP6
其中CLDAP是近年来较火的攻击类型,业内披露的多次T级以上的超大攻击,都有CLDAP攻击的参与,CLDAP协议广泛应用于Windows服务器的活动目录服务(AD),反射放大倍数超过70倍。
原理如下图所示:
图4 反射攻击原理示意图
图中攻击者Attacker伪造了请求包Pva发送到反射服务器Amplifiers(简称A),但Pva的源IP是受害者Victim(简称V),所以A响应的时候发送Pav给到V,Pav往往是Pva的好几倍,甚至是成千上万倍。
反射攻击一方面隐藏了黑客IP,同时还有一个重要特征是放大攻击流量。
1)隐藏黑客IP
黑客实施攻击时,不是直接攻击受害者IP,而是伪造受害者IP的大量请求发给相应的开放服务,相应服务将大量的恶意流量发送给受害者,这样就产生的隐藏了发送者真实身份的效果。
有一种情况是国内三大运营商的边缘网络或路由器会检查源IP,对不是同一网络的IP出向包进行丢弃。
针对这种情况,黑客会在使用相应手段储备攻击资源,下图展示了BillGates木马收集的过程。
图5 BillGates木马
上图中序号19、20两个包中红色打码的是BillGates木马用真实IP收发心跳包,序号21和22是木马伪造不同的IP段发包,payload中记录了真实IP。木马收到请求包后根据payload是否包含真实IP来确定哪些IP段可以用于伪造。
BiillGates木马通过收发心跳包来确定哪些IP段是可以将伪造的请求顺利通过边缘网络或路由器发到主控端。
2)放大攻击流量
反射攻击流行的另一个重要原因是反射服务带有放大效果,这些服务使用的协议通常不对来源请求进行安全性校验,直接响应数倍乃至数万倍于请求的数据包,例如我们熟知的Memcache反射攻击,最大的放大倍数可达十几万倍。
很多知名的服务都可以用作反射攻击,如:NTP、SNMP,行业内监测到的50多种攻击类型中就有21种利用了物联网协议,7种游戏协议,16种网络服务以及6种私有协议,这些反射攻击的放大倍数少则几倍,多则高达十几万倍,这些反射攻击的放大倍数少则几倍,多则高达十几万倍,甚至payload为空的的情况下,也能响应超量数据包。
我们在长期与DDoS黑客”打交道”中,提炼出一套高效准确的研究识别方法,该方法包括两个方面:
1) 监测防御系统
智云盾在全球部署了大量节点,包含一些蜜罐节点,可以有机会观测到反射攻击的全过程。
图6 新型反射攻击发现
当黑客伪造的反射请求对监控系统进行攻击时,监测节点实时上报攻击事件到威胁中心,向全网节点下发采集被攻击IP地址的指令,深度包分析程序根据IP对应关系提取黑客使用新型反射攻击的请求指令。
使用这种方法,我们识别了多个新型反射攻击类型,如CoAP、PMDP等反射攻击,但是由于资源有限,仍然有许多新型类型难以识别。于是我们提出了基于协议模板fuzz的反射源攻击手法自动化探测方法。
2) 基于协议模板fuzz的反射源攻击手法自动化探测方法
使用RFC协议库,构建协议模板库,通过fuzz算法生成大量的反射请求数据包。对于捕获到大量响应包的反射攻击,通过协议模板库,fuzz识别协议类型,精准生成协议类型。
图7生成反射请求包
识别协议时:
l 如果协议载荷为文本——可打印的ASCII字符,选择简单协议分类的模版库进行比对,采用文本相似性算法
l 如果协议载荷为复杂协议——二进制数据和偶尔包含的人可读的ASCII字符串,选择复杂协议的模版库进行比对,采用二进制结构相似性算法。
使用基于生成generation-based的fuzz技术,对生成的协议进行文本建模,基于模型生成请求数据包。这样能够高效的获取新型反射攻击的请求指令。
3)研究成果
自2018年首次发现IPMI反射攻击以来,我们累计挖掘出12种新型反射放大攻击,同时也对业内流行的TCP反射攻击进行过深入研究,下表展示了我们近年来在反射攻击领域的研究成果。
序号 | 名称 | 特征(端口) | 传统倍数 | 科学倍数 | 发现时间 |
1 | IMPI | 623 | 1.1 | 1.07 | 2018.02 |
2 | A2S_INFO | 2303 | 7.36 | 2.7 | 2018.11 |
3 | WS-Discovery | 3702 | 500 | 414 | 2019.02 |
4 | Ubiquiti | 10001 | 11.7 | 6.88 | 2020.12 |
5 | CoAP | 5683 | 15.74 | 11.76 | 2019.04 |
6 | ARMS | 3283 | 22.3 | 12.76 | 2020.02 |
7 | 黑客自建数万倍反射源 | 随机大端口 | 53087.5 | 39746.4 | 2020.04 |
8 | PMDP | 32410,32414 | 12.9 | 3.77 | 2021.01 |
9 | DTLS | 443 | 28 | 26.5 | 2021.02 |
10 | WdbRPC | 17185 | 10.23 | 7.85 | 2018.05 |
11 | BACnet | 47808 | 2.96 | 2.5 | 2015.03 |
12 | SmartZone | 9001 | 无穷大 | 65.8 | 2021.07 |
黑客在寻找新的攻击方式上不再拘泥于传统公共服务,而是对暴露在公网,并且具备一定规模的UDP服务都尝试利用作为反射源。我们结合了自己的研究成果以及查阅多方资料,对反射攻击类型进行了总结,结果如下表:
序号 | 名称 | 特征(端口) | 传统倍数 | 科学倍数 | 发现时间 | 备注 |
1 | ADDP | 2362 | 7.14 | 1.47 | 2020.06 | 设备发现协议 |
2 | A2S_INFO | 2303 | 7.36 | 2.7 | 2018.12 | 游戏协议 |
3 | ARMS | 3283 | 22.3 | 12.76 | 2018.02 | |
4 | BACnet | 47808 | 2.96 | 2.5 | 2015.03 | 智能楼宇协议 |
5 | BitTorrent | 6881-6889 | 120 | 43 | 2015.08 | 比特流协议 |
6 | Chargen | 19 | 358.8 | 270.45 | 1996 | 字符发生器协议 |
7 | Chameleon | 20811 | 40 | 32 | 2021.02 | ChameleonVPN服务 |
8 | CMFAB | 1604 | 一款应用 | |||
9 | CLDAP | 389,636 | 70 | 53 | 2016.10 | 轻量目录访问协议 |
10 | CBEV | 2302,2303 | 2019.04 | Combat Evolve游戏 | ||
11 | CoAP | 5683 | 15.74 | 11.76 | 2019.04 | 约束应用协议 |
12 | DCCP | 2021.04 | 传输层协议,用于数据报拥塞控制 | |||
13 | DHDP | 37810 | 11.3 | 11.76 | 2019.04 | 视频监控服务 |
14 | DNS | 53 | 54 | 46 | 2015.04 | |
15 | DTLS | 443 | 28 | 26.5 | 2020.12 | 数据报安全传输协议 |
16 | Gameover | Any | 45.4 | 2010.04 | 一款游戏服务 | |
17 | IPMI | 623 | 1.1 | 1.07 | 2018.03 | IMPI管理服务 |
18 | IKEv1 | 500 | 4.6 | 3.79 | 2016.0 7 | VPN服务 |
19 | Jenkins | 33848 | 3 | 2.45 | 2020.02 | |
20 | KAD | 4672,6429 | 16.3 | 2012 | Kademlia | |
21 | MDNS | 5353 | 10 | 6.2
| 2015.03 | 局域网内组播DNS |
22 | Memcached | 11211 | 10000 | 100000 | 2017.06 | |
23 | MCSQLR | 1434 | 25 | 17.4 | 2015.07 | Microsoft SQL Server |
24 | NATPMP | 5351 | 2014.07 | 端口映射协议 | ||
25 | NetBIOS | 136,137,139 | 3.8 | 2015.02 | 网络输入输出协议 | |
26 | NTP | 123 | 556.9 | 437.5 | 2015.04 | 时间同步协议 |
27 | OpenVPN | 1194 | 40 | 60 | 2019.09 | |
28 | PMDP | 32410,32414 | 12.9 | 3.77 | 2021.01 | 应用于流媒体服务中的设备发现协议 |
29 | PortMap | 111 | 5.54 | 7.14 | 2018.09 | 端口映射协议 |
30 | PPTP | 1723 | 2002.08 | PPTPVPN服务 | ||
31 | QOTD | 17 | 140.3 | 1996 | ||
32 | Quake3 | 26000 | 63.9 | 63.9 | 2012.05 | |
33 | RDP | 3389 | 15.29 | 85.9 | 2020.12 | Windows RDP服务器 |
34 | RIPv1 | 520 | 6.29 | 8.4 | 2015.05 | 路由协议 |
35 | Sality | 9674 | 17 | 37.3 | 2002.01 | |
36 | Sentinel | 3588,5093 | 2015.02 | |||
37 | SIP | 5060 | 2014.08 | 会话初始协议 | ||
38 | SmartZone | 9001 | 无穷大 | 65.8 | 2021.07 | 网络控制设备 |
39 | SNMP | 161 | 6.3 | 4.67 | 2015.04 | 简单网络管理协议 |
40 | SRVLOC | 427 | 服务定位协议 | |||
41 | SSDP | 1900 | 4.78 | 30.8 | 2016.07 | 设备发现协议 |
42 | STUN | 3478 | 3.19 | 2.3 | 2017.06 | UDP穿透NAT |
43 | TeamSpeak2 | 8767 | 3.75 | 2.1 | 2015.08 | 语音通信服务器版本1 |
44 | TeamSpeak3 | 9987 | 4.62 | 2.6 | 2015.08 | 语音通信服务器版本2 |
45 | Tenfold | 658 | 37 | |||
46 | TFTP | 随机大端口 | 55.8 | 41.57 | 2015.03 | 简单文件传输协议 |
47 | Ubiquiti | 10001 | 11.7 | 6.88 | 2020.12 | AP发现服务 |
48 | VSE | 27015 | 一款游戏 | |||
49 | WSDP | 3702 | 500 | 414 | 2019.02 | 设备发现协议 |
50 | WdbRPC | 17185 | 10.23 | 7.85 | 2018.05 | 远程调试服务 |
51 | XDMCP | 177 | 2005.03 | 远程管理服务 |
注:表格科学倍数数据为安全专家计算得出,部分数据结合业内披露的信息,未查询到相关信息的部分留白
反射攻击都是互联网上开放服务参与的,作为这些开放服务的运营者应遵循以下防御措施避免成为DDoS反射攻击的帮凶。
a) 能使用TCP的服务,尽量不要启用UDP服务
b) 必须使用UDP服务时,应启用授权认证
c) 使用UDP服务无法启用授权认证时,应确保响应与请求的倍数不要大于1
d) 增强自身应对恶意请求的能力,及时封禁恶意IP
百度智云盾是百度安全专注在互联网基础设施网络安全攻防的团队,提供T级云防、定制端防和运营商联防等DDoS/CC防御解决方案。一直服务于搜索、贴吧、地图、云等百度业务,在保障百度全场景业务之余也进行防御能力外部输出,为互联网客户提供一体化的防御服务。
参考链接:
1.
2.
3.
4.
5.
6. https://anquan.chjunkong.com/article/807
7.
8. https://securityaffairs.co/wordpress/35607/hacking/mdns-amplify-ddos-attack.html
9.
10.