【格物实验室】DHDiscover反射攻击:可将攻击放大近200倍

摘要

2020年3月,腾讯发表了一篇关于某DVR被用于反射攻击的文章。该DVR的服务端口为37810,因其中有DHDiscover字样,因此,我们将其称之为DHDiscover服务。借助绿盟威胁情报中心(NTI)的全网测绘数据和绿盟威胁捕获系统的威胁捕获数据,本文对其全网暴露情况、反射攻击趋势、攻击者常用的攻击手法、反射攻击带宽放大因子等进行了分析。

本文的关键发现如下:

  • 全球有约31万个IP开放了DHDiscover服务,存在被利用进行DDoS攻击的风险。
  • 开放DHDiscover服务的资产暴露数量最多的五个国家依次是韩国、巴西、越南、中国和美国。
  • 通过对绿盟威胁捕获系统在2020年6月1日到2020年8月18日捕获到的访问37810端口的日志数据进行分析,从6月初到8月上旬攻击呈现上升趋势,8月中旬有所下降,单蜜罐单日捕获数据包数量最大达到了90万个。
  • 绿盟威胁捕获系统捕获的攻击报文长度主要为4字节(54.7%)和62字节(44.9%)。
  • 我们采用了两种方式来对DHDiscover的带宽放大因子进行评估:一是发送62字节的报文,可以得到DHDiscover的平均带宽放大因子为11.4;二是发送4字节的报文,可以得到DHDiscover的平均带宽放大因子为178.8,约有53.6%的DHDiscover服务会对这一报文进行响应,近200倍的带宽放大因子值得引起重视。
  • 绿盟威胁捕获系统数据显示,美国是受DHDiscover反射攻击影响最严重的国家,美国的IP占全部受害者IP的42%。
  • 具备DHDiscover反射攻击能力的样本最早出现于2019年12月7日,当前已经有至少5个样本具备该反射攻击能力。随着攻击者发现其实际放大倍数可达近200倍,相信会有更多的样本中内置该反射攻击能力。

最后,我们也提出了我们对于设备发现类服务在设计层面的思考。设备发现类协议设计的初衷是方便局域网内的设备发现,所以,一般在进行设备发现时,采用的是多播地址。因此,我们认为比较理想的设备发现报文回复策略为:

  1. 对多播报文进行回复。
  2. 如果是单播报文,判断发送方的IP是否和设备的IP在同一网段,如果在同一网段则回复。也可以把这一策略改为判断发送方的IP是否为局域网IP。
  3. 若不为1、2,则不回复。同时,设备加入Discovery回复任意单播报文的功能,可在需要时由用户开启,但是设备出厂时默认关闭该功能。

一、DHDiscover简介

2020年3月,腾讯发表了一篇关于某DVR被用于反射攻击的文章[1]。该DVR的服务端口为37810,因其探测报文中包含DHDiscover字样,因此,我们将其称之为DHDiscover服务。

DHDiscover服务探测报文长度为62字节,设备返回的内容如下所示,可以看到关于设备的很多信息,如MAC地址、设备类型、设备型号、HTTP Port、设备序列号、设备版本号等,因此,我们推测该服务被用于设备发现:

‘\x00\x00\x00DHIP\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x02\x00\x00\x00\x00\x00\x00\xa6\x02\x00\x00\x00\x00\x00\x00{“mac”:”38:af:29:26:f8:80″,”method”:”client.notifyDevInfo”,”params”:{“deviceInfo”:{“AlarmInputChannels”:16,”AlarmOutputChannels”:3,”DeviceClass”:”HCVR”,”DeviceType”:”DH-********-*”,”Find”:”BD”,”HttpPort”:80,”IPv4Address”:{“DefaultGateway”:”192.168.0.1″,”DhcpEnable”:true,”IPAddress”:”192.168.0.19″,”SubnetMask”:”255.255.255.0″},”IPv6Address”:{“DefaultGateway”:””,”DhcpEnable”:null,”IPAddress”:”\\/64″,”LinkLocalAddress”:”fe80::3aaf:29ff:fe24:****\\/64″},”Init”:166,”MachineName”:”XVR”,”Manufacturer”:”Private”,”Port”:37777,”RemoteVideoInputChannels”:0,”SerialNo”:”4D019B8PAZ4****”,”Vendor”:”Private”,”Version”:”4.000.10****.0″,”VideoInputChannels”:16,”VideoOutputChannels”:0}}}\n\x00’

我们将DHDiscover相关关键词在威胁情报平台AlienVault OTX进行了检索,检索方式为Google: DHDiscover.search site:otx.alienvault.com/。如图 1.1 所示,可以看到有5条记录,分别对应5个样本,也即已经有至少5个样本将其放入反射攻击武器库了。

图 1.1 DHDiscover在AlienVault OTX中的检索记录(2020/8/19)

我们对这5个样本出现的时间进行了简要分析,发现有1个样本最早出现在2019年12月7日(注:第一个样本的时间数据来自AlienVault OTX,其他样本的时间数据以及所有样本的下载URL数据来自VirusTotal。),并且这个样本处于持续活跃的状态,有1个样本出现在2020年3月3日,还有3个样本出现在2020年4月13日。

样本MD5URL出现时间
73697e97fb48df3d9b52a4fa4d97c074http://144.217.34.147/jug7 http://ip04.montreal01.cloud.hosthavoc.com/jug72019/12/7-2020/8/18
ccbd299499183b3b889951071182fcb1http://104.168.215.223/jibmips2020/3/3
b46d2b948d239e257445b6c62f41a6dfhttp://103.214.6.199/fuk.mips642020/4/13
a58b18742f910ee979bd55678ad6e54ahttp://103.214.6.199/fuk.mips2020/4/13
c29ed229587825b425b215b8f9f2ef5ehttp://103.214.6.199/fuk.spc2020/4/13

表 1.1 相关样本及其出现时间

二、DHDiscover服务暴露情况分析

本章我们对DHDiscover服务的暴露情况进行了分析,采用的是绿盟威胁情报中心(NTI)在2020年6月的一轮完整测绘数据。

全球有约31万个IP开放了DHDiscover服务,存在被利用进行DDoS攻击的风险。

在绿盟威胁捕获系统的数据中,我们不只捕获了对37810端口的DHDiscover服务探测行为,也在23000端口捕获到少量探测行为。因此,我们对这两个端口分别进行了一轮测绘。过滤掉无关数据后,发现开放37810端口的资产多达30万个,而开放23000端口的资产也有7000多个。

开放DHDiscover服务的资产暴露数量最多的五个国家依次是韩国、巴西、越南、中国和美国。

图 2.1 是开放DHDiscover服务的资产国家分布情况。在腾讯捕获的反射攻击事件中,反射源区域分布集中于美洲、亚洲、欧洲的众多国家和地区,尤其以韩国、巴西为重灾区。而在我们得到的国家分布情况中,韩国和巴西的暴露数量也是最多的。

图 2.1 开放DHDiscover服务的资产国家分布情况

我们对测绘数据中的Vendor字段、DeviceClass字段和Version字段进行了统计。图 2.2 是Vendor字段分布情况,从中可以看出,除了Private和General无法判断外,相关厂商有Intelbras、CPPLUS、QSee等。不过,由于这些设备的服务探测报文是一致的,都包含DHDiscover,而返回的报文中又出现了37777端口,因此,基本可以确认这些设备都与某视频监控厂商有关。

图 2.2 Vendor字段分布情况

图 2.3 是DeviceClass字段分布情况,我们对于视频监控设备的分类不是很了解,仅听过IPC、NVR、DVR,有43.1%的设备类别是HCVR。

图 2.3 DeviceClass字段分布情况

图 2.4 是Version字段的分布情况,有上千种之多。

图 2.4 Version字段分布情况

三、DHDiscover反射攻击分析

本章我们通过绿盟威胁捕获系统在2020年6月1日到2020年8月18日捕获到的访问37810端口的日志数据来说明当前DHDiscover反射攻击的威胁态势。

我们对绿盟威胁捕获系统捕获到的37810端口的日志数量进行了分析,如图 3.1 所示。从图中可以看出,从6月初到8月上旬攻击呈现上升趋势,8月中旬有所下降,单蜜罐单日捕获数据包数量最大达到了90万个。

图 3.1 DHDiscover服务被访问趋势

我们对37810端口收到的日志数据中的payload进行了统计,出于尽量不扩散攻击报文的考虑,这里我们按照出现的报文的长度对其命名。从图 3.2 中可以看出,攻击者较常使用的Payload的长度有4字节和62字节,其中,62字节的Payload也在腾讯写的文章中被提及过。

图 3.2 绿盟威胁捕获系统捕获的payload占比情况

结合绿盟威胁捕获系统捕获的payload占比情况,我们分别采用Payload4和Payload62进行了一轮全网测绘。如表 3.1 所示,53.6%的DHDiscover服务对Payload4进行了响应,这些IP可能造成的反射攻击带宽放大因子(放大因子我们采用NDSS 2014的论文Amplification Hell: Revisiting Network Protocols for DDoS Abuse上对于带宽放大因子的定义,不包含UDP的报文头。)[2]高达178.5。通过采用Payload62进行测绘,可以得到DHDiscover服务的全网暴露情况,由此得到的带宽放大因子为11.4。

发送报文长度响应报文平均长度响应数量带宽放大因子
4714.1165335178.5
62705.330819811.4

表 3.1 DHDiscover反射攻击带宽放大因子评估

DHDiscover反射攻击受害者IP数量的国家分布情况如图 3.3 所示。从图中可以看出,美国是受害最严重的国家,美国的IP占全部受害者IP的42%。

注意:这里我们对单IP单日包数大于50个的数据进行的统计。

图 3.3 DHDiscover反射攻击受害者的国家分布

四、结语

借助绿盟威胁情报中心(NTI)的全网测绘数据和绿盟威胁捕获系统的威胁捕获数据,本文对DHDiscover服务的全网暴露情况、反射攻击趋势、攻击者常用的攻击手法、反射攻击带宽放大因子等进行了分析。DHDiscover是视频监控设备的设备发现服务,在此之前,我们也对WS-Discovery[3]进行过分析,视频监控组织ONVIF选择了将WS-Discovery作为设备发现协议,在我们去年的数据中,约73万开放WS-Discovery服务的视频监控设备暴露在了互联网上。因此,DHDiscover和WS-Discovery等设备发现服务需要引起视频监控厂商的重视。

由于DHDiscover服务暴露数量较多,因此,我们也与相关厂商进行了联系。厂商给我们的反馈是,其已经在产品中提供了Discovery启用和关闭功能,但是由于出厂时并不知道客户在公网还是受限网络部署设备,因此默认这个功能是开启的,但客户可以选择将这个功能关闭。另外,设备也提供了防火墙功能,客户可以根据实际需求进行配置,被拒绝访问的IP网段无法与设备进行通信。如果用户的设备中还未发现这两个功能,可以通过官网或者云升级等方式将设备升级。

我们认为Discovery类DDoS的检测和防护是一个多方参与的事情,因此,我们有如下建议。

1. 作为安全厂商:

  • 扫描能力,及时发现客户网络中存在的安全隐患。
  • 的流量检测能力,及时发现客户网络中存在的安全威胁。也可以关联开放Discovery服务的IP的威胁情报,阻断命中的源IP的连接。

2. 作为设备开发商,除提供服务开启关闭、黑白名单功能外,我们建议加入白名单自学习能力,根据用户的使用习惯自动生成白名单,并推荐用户进行相关配置。同时设计更合理的设备发现方法,规避设备被用于进行反射攻击的风险。

3. 作为电信运营商,需遵循BCP38网络入口过滤。

4. 作为监管部门,对于网络中的DHDiscover威胁进行监控,发现问题进行通报。

5. 作为Discovery相关设备用户,可以设置设备访问白名单,如无必要,也可以关闭Discovery功能。

6. 作为有DDoS防护需求的用户,购买具备Discovery反射攻击防护能力的安全厂商的DDoS防护产品。

我们从去年开始持续关注与物联网相关的反射攻击,也在不断思考,是否有办法能够从根本上解决这一问题呢?

设备发现类协议设计的初衷是方便局域网内的设备发现,所以,一般在进行设备发现时,采用的是多播地址。比如WS-Discovery采用的地址是239.255.255.250。由于手头没有实验设备,所以我们也不清楚DHDiscover采用的地址是什么,但必然是某一多播地址。而在反射攻击时,攻击者其实是直接给目标设备(IP)发送的探测报文,是单播。因此,可以在设备端对收到的设备发现报文进行分析,判断报文是单播报文,还是多播报文,如果是单播,就不响应就好。这样做的话,理论上可以从根本上解决设备发现服务带来的反射攻击的问题,而且,潜在的好处是,设备发现端口在公网不会被扫描到了。另外,这种方式也不会对未升级的设备的使用带来任何不良影响。在实际使用中,通过单播方式进行设备发现可能也有其使用场景。因此,我们认为比较理想的设备发现报文回复策略为:

1. 对多播报文进行回复。

2. 如果是单播报文,判断发送方的IP是否和设备的IP在同一网段,如果在同一网段则回复。也可以把这一策略改为判断发送方的IP是否为局域网IP。

3. 若不为1、2,则不回复。同时,设备加入Discovery回复任意单播报文的功能,可在需要时由用户开启,但是设备出厂时默认关闭该功能。

最后,我们也希望本文能够引起各大视频监控厂商的重视,同时也认真评估我们提出的建议的可行性。若有需要,欢迎与我们联系。

参考文献:

[1] DVR UDP反射攻击手法记实,

https://security.tencent.com/index.php/blog/msg/146

[2] Amplification Hell: Revisiting Network Protocols for DDoS Abuse,

https://www.ndss-symposium.org/ndss2014/programme/amplification-hell-revisiting-network-protocols-ddos-abuse/

[3] WS-Discovery反射攻击深度分析,

https://www.freebuf.com/articles/network/215983.html

Spread the word. Share this post!

Meet The Author

Leave Comment