作者:百度安全实验室
原文链接:https://mp.weixin.qq.com/s/XjzudJNIDEEa4zmOHE7-OQ
0x00概述
Ubiquiti(优倍快)网络公司生产的网络设备在全球有较广泛的部署。2019年2月某安全团队披露了基于Ubiquiti设备的AP发现服务实施的反射DDoS攻击,攻击发生在2018年7月,这是最早被爆出该公司网络设备可被利用作为DDoS的反射放大器的案例。
攻击披露后,Ubiquiti网络公司即时发布了漏洞补丁,并提醒用户升级更新。但近几年来该公司的网络设备一直被黑客频繁利用发起DDoS反射放大攻击。百度安全智云盾团队在对抗DDoS攻击中也经常拦截到此类反射攻击流量。
0x01 攻击态势
1)攻击趋势
智云盾团队持续关注Ubiquiti反射攻击态势,多次针对这类攻击进行过跟踪分析。在2020年监测到4301次Ubiquiti反射攻击,并在去年十月达到顶峰。虽然Ubiquiti公司发布过补丁修复,但是从智云盾监测到的攻击趋势来看,公网上仍然存在大量的未实施修复的设备。
2)首次攻击
2019年2月安全研究人员Troutman披露黑客自2018年7月开始利用Ubiquiti公司设备上的AP发现服务进行DDoS反射放大攻击活动,Troutman表示黑客向Ubiquiti设备上开放UDP 10001端口的AP发现服务发送56字节的小数据包,设备立即回复206字节的数据包。之后另一安全研究人员Jon Hart表示,这类服务的放大倍数可以提高到30-35倍。
Ubiquiti网络公司官方在关注到这些攻击后确认了这一问题,并临时提供了两个解决方案:
1、非必要,禁用UDP 10001上的AP发现服务;
2、如果必须使用AP发现服务,开启仅限内部网络使用的ACL策略。之后官方第一时间发布新版本,用于增强该服务器的安全性。
攻击首次披露后,Ubiquiti网络公司统计共有485,000个设备向公网开放了UDP 10001端口,攻击资源分布在全球各地。
0x02 技术分析
智云盾系统跟踪这类攻击时,自动对流量进行采样,安全专家及时介入对采样包进行深层次分析和演练。
1)攻击分析
通过对智云盾的攻击采样包发现,反射流量的来源端口是10001端口,下图红色箭头指向的是反射源端口
数据包中的payload明显为某类设备名称和版本,通过搜索分析,我们确定了这是Ubiquiti公司的设备和版本信息,采样包中UDP携带的payload如下图所示:
查询Ubiquiti公司官网可知,他们在UDP10001上使用发现服务协议。这个协议格式与SSDP设备发现服务不同,没有固定格式,为此我们将此类反射攻击命名为UbiquitiDP Reflection,中文简称为Ubiquiti反射攻击。
我们提取数据包中的设备名进行统计分析,分析发现有87%的设备名为Ubiquiti公司标准名称,并能在公司的官网检索到,但是有13%的数据包payload带有HACKED(被黑)字样,很明显这些设备名已经被黑客恶意修改。
我们对含有HACKED的数据进行统计分析发现,分析发现每个名称均以HACKED-ROUTER-HELP-SOS开头,剩余字段有WAS-MFWORM-INFECTED、HAD、VULN-EDB-39710、FTP这四类,其中WAS-MFWORM-INFECTED占比67%,MFWORM表明这个设备已经被MF蠕虫感染,我们查询MF蠕虫披露的资料很少。少部分设备包含FTP字样,我们主动探测这些IP的FTP服务发现均关闭,我们推测这些服务器最早可能被黑客利用作为FTP服务。
2)Ubiquiti服务缺陷
造成此次攻击的是Ubiquiti公司设备自带的AP发现服务,该服务使用UDP传输数据,绑定在设备10001端口,响应任何UDP包。
该服务在设计之初便没有按照UDP协议的安全规范实现,一方面开放到公网的UDP服务应当避免请求与响应存在倍率,另一方面UDP服务本身应对客户端进行校验。黑客向设备发送一个构造的UDP最小包,该服务便会返回一个或多个UDP大包,请求与响应相差数倍。
3)攻击模拟
我们在攻击模拟的过程中发现,大多数反射源在收到单个请求时只回复一个响应包,但是有少数反射源在收到单个请求后,会响应海量的UDP大包,每个数据包长固定。我们分别对这两类反射源进行分析,结果如下:
A单包反射
安全专家对该事件深入分析,同时从智云盾威胁中心提取到的请求流量进行对比,并完成攻击场景模拟,模拟过程中抓包如下:
图6中模拟发送了载荷长为4字节的UDP小包向反射源传输无验证数据,反射源返回载荷长为512字节的数据包,返回的UDP大包payload包含了Ubiquiti公司的设备信息。
B海量包反射
我们在选取反射源发起请求时,发现有少数IP地址在发送任意内容的UDP请求后,会响应超量的UDP大包,最多的一个反射源响应了3510个UDP大包。
我们向其中一个反射源发送一个空载荷的请求包,并抓包分析,下图展示了发包过程:
服务器共响应3510个UDP大包(去掉一个请求包),每个数据包长度固定为1370字节,下图展示了我们发送的空请求与服务器的响应。
在测试过程中,我们分别发送空请求、小包和大包UDP请求到反射源,每次均收到海量的UDP大包。这些反射源对任何UDP请求均会响应大量的数据包,危害较大。
我们在单包反射中发送一个请求载荷为4字节的数据包,收到一个载荷长512字节的响应包。在海量包反射中发送一个0字节的数据包,收到总共3510个载荷长为1328字节的海量数据包。在智云盾系统监测到具备响应超量UDP大包的IP共计127个。截止到目前,这些IP仍然可以响应海量UDP大包。
0x03 放大倍数
按照我们前期对反射放大倍数的研究,采用科学的统计放大倍数时,请求响应的包头甚至网络间隙都要考虑在内。详细的方案可以参阅《Memcached DRDoS攻击趋势》一文。
科学的计算方式还应该考虑每包的网络间隙20字节,没有包括FCS字段的4个字节,另外数据包小于60字节会被自动填充到60字节。
协议头和网络帧间隙计算为:14(以太头)+20(IP头)+8(UDP头)+4(FCS头)+20(帧间隙)=66字节。
单包反射中计算得到的放大倍数为(512+66)/(60+20+4)=6.88倍。
海量包反射计算得到的放大倍数为(1328+66)*3510 / (60+20+4)= 58249.29倍。
如果按照传统方式(攻击载荷之比)计算海量包反射的放大倍数:1328*3510 / 0(空请求)= ∞,那么得到的结果为无穷大,可见这个计算方式存在理论缺陷。
0x04 全网数据
1)Ubiquiti公司介绍
Ubiquiti公司主要在全球范围内设计、制造和销售创新性的网络设备。主品涵盖了无线设备,安全网关,交换机,远程管理控制器和摄像机这五种设备。目前Ubiquiti公司的产品部署在全球超过180个国家和地区。
Ubiquiti公司的设备在10001端口会开启AP发现服务,该服务采用UDP传输数据,并且支持客户端采用组播或者单播的请求方式进行数据交互。
2)反射源
智云盾共捕获到的反射源达到39002个。通过对反射源IP进行调查发现。反射源分布在全球82个国家和地区,其中42%的反射源分布在美国。验证发现这些设备都为Ubiquiti公司的设备并且10001端口对公网UDP请求数据包都响应,TOP10地区分布如下图:
从zoomeye上对全球10001端口进行检索发现,全球约有百万台公网设备主动暴露了10001端口。这些设备都将可被用作反射源进行攻击,如下图所示:
我们在zoomeye上查询被攻击者恶意修改主机名的数据发现,共计8W多Ubiquiti设备被恶意修改了主机名。
0x05 防范建议
此次攻击是黑客利用固定设备厂商的UDP服务缺陷发起的DDoS反射放大攻击。反射攻击相比较传统的洪泛攻击具有更好的隐蔽性,并且流量更大的特点。从我们近期对新型攻击的监测发现,黑客在寻找新的攻击方式上不再拘泥于传统公共服务,而是对暴露在公网,并且具备一定规模的UDP服务都尝试利用作为反射源。
针对此次攻击行为我们建议相关厂商参考下面方式提升防护能力。
对Ubiquiti公司:
10001的AP发现服务应该限制请求响应字节数比例为1:1
对使用Ubiquiti公司设备的企业用户:
1.在设备或者上层交换机配置策略,限制非本网段的UDP包请求10001端口.
2.遵循Ubiquiti的建议,禁止使用AP发现服务
3.如果必须使用AP发现服务,升级开放10001端口的AP发现服务为最新版
0x06 智云盾团队介绍
智云盾防护系统基于百度安全成熟的防御技术,为数据中心建设安全基础设施。具备本地快速检测和防御DDoS,同时能自动化拓展T级云防。并集成一系列百度安全能力,在提高数据中心防御DDoS基础上,具备完善的安全威胁检测和防御能力。
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1519/