0x00概述
百度安全智云盾团队在2020年2月为某第三方IDC提供DDoS防御能力时,首次捕获到利用开启netAssistant(网络调试助手)服务的网络设备发起的DDoS反射攻击。据现有资料表明,这种反射攻击方式尚属全网首次出现,智云盾系统在2秒内识别攻击,实时对流量做了隔离和清洗,保障用户免遭DDoS的伤害。
netAssistant服务常见绑定于3283端口,服务支持TCP与UDP两种传输协议,此次反射基于UDP协议传输。由于UDP协议的不可靠性质,导致开启该服务的网络设备被黑客利用作为反射源进行DDoS反射攻击。
0x01反射攻击原理
反射类型的DDoS攻击不是直接攻击受害者IP,而是攻击者以受害者的IP为源IP伪造相关的请求包发送给对应的开放服务,开放服务会完成响应,这类服务就是反射源,将响应数据包发送到受害者IP,实现了攻击流量的反射。
反射攻击原理如下图所示:
图1 反射攻击原理示意图
图1中攻击者P发送请求包BA到PA,但数据包BA的源IP是PV,所以PA响应的时候发送BV给到PV。
反射攻击一方面隐藏了攻击IP,同时还有一个重要特征是放大,上述原理图中的BV往往是BA的好几倍,甚至是成千上万倍。正是因为有了这样的特性,黑客组织乐此不疲的使用这一攻击方式,并不断的研究新型反射攻击增强攻击效果。
0x02攻击分析
智云盾系统检测到攻击时,自动对流量进行采样,安全专家及时介入对采样包进行深层次的分析和研究。
1.攻击包分析
通过分析智云盾的攻击采样包发现,反射流量的端口来自于3283端口,下图红色箭头指向的是反射源端口:
数据包中的payload显示为网络设备的系统标识,采样包中udp携带payload如下图所示:
图3 采样包内udp携带payload
在采样包内攻击数据包携带的payload中前126个字节为固定值,并且从第127个字节携带有系统标识信息。
这是以开启netAssistant服务的网络设备作为反射源的反射攻击事件。智云盾安全团队对攻击采样包中的系统标识信息提取分析发现设备标识分散。采样包内的操作系统标识分布如下图所示:
图4 操作系统标识占比图
上图中other选择占比高达94%,黑客在选择反射源上没有固定特征或者侧重于某厂商设备;netAssistant虽然不是网络公共服务,也没有被定义在RFC,但在网络的分布情况具有跨平台的特性,依然能够被黑客利用作为DDoS的攻击方式。
2.netAssistant服务介绍
netAssistant服务是一种网络调试助手服务,常见绑定在3283端口,默认支持TCP与UDP两种协议。本次攻击黑客利用其支持UDP的特性,发起了DDoS反射攻击。
netAssistant服务在设计之初便存在缺陷,在使用UDP传输协议的情况下,客户端向netAssistant服务端口(默认3283端口)发送一个UDP最小包,netAssistant服务便会返回携带有主机标识的超大包。请求与响应相差十数倍。
严格上来说暴露在公网上的UDP服务,为了避免被黑客利用,应该严格限制请求与响应比为1:1的关系,但此处netAssistant未遵循这一原则,导致了暴露在公网上开启netAssistant服务的网络设备被当作反射源使用。
3.攻击模拟
安全专家对该事件深入分析,同从智云盾威胁中心提取到的请求流量进行比对,并完成攻击场景模拟,模拟过程中抓包截图如下:
图5 攻击过程模拟抓包截图
图5中模拟了一次UDP小包向反射源传输无验证数据,反射源返回大包的过程。返回大包UDP携带payload内容与攻击采样包内的payload特征规律基本一致。
4.放大倍数
按照我们前期对反射放大倍数的研究,采用科学的统计放大倍数时,请求响应的包头甚至网络间隙都要考虑在内。详细的方案可以参阅《Memcached DRDoS攻击趋势》一文。
根据我们对攻击的模拟请求,从攻击事件中提取到的攻击包大小为1048字节,请求包为47字节。根据上述提到的标准计算还应该考虑每包的网络间隙20字节,由于Wireshark包长度没有包括FCS字段的4个字节,另外小于60字节会被填充。所以每包在Wireshark显示字节的基础上还应该增加24字节。所以计算得到的放大倍数为(1048+20+4)/(60+20+4)=12.76倍。
0x03反射源分析
本次攻击事件捕获到的反射源达到2693个。通过对反射源IP进行调查发现,反射源分布在全球74个国家和地区,其中59%的反射源分布在美国。验证发现这些设备都开启了netAssistant服务,Top 10地区分布如下图6:
图6 反射源地区分布
从shodan上对全球3283端口进行检索发现,全球约有3万台公网的设备主动暴露了3283端口。这些设备都将可用做反射源攻击,如下图所示:
图7 shodan全球数据
图7中shodan检索到的IP数据与本次攻击参与的反射源并不相同,我们推测netAssistant在互联网的暴露情况会比shodan显示的更多。
0x04防范建议
此次攻击是netAssistant服务处理UDP协议时的返回包过大导致被黑客利用。反射攻击与传统的flood攻击相比,能更好的隐藏攻击者,并且产生的流量更大,因而反射攻击正越来越受到黑客青睐。
如果业务可能存在被DDoS的风险,我们建议参考下面方式提升防护能力:
1)对互联网服务
禁用UDP服务,不能禁用时,确保请求与响应不要有倍数关系,
UDP服务采取授权认证,对未授权请求不予响应
2)对企业用户
如果没有UDP相关业务,可以在上层交换机或者本机防火墙过滤UDP包,寻求运营商提供UDP黑洞的IP网段做对外网站服务,选择接入DDoS云防安全服务