注意——受Ripple20影响的Digi设备可被用于反射攻击

发布者:绿盟科技
发布于:2020-07-14 15:55

执行摘要

近年来,越来越多的可造成UDP反射攻击的协议进入人们的视线,如CoAP[1]、Ubiquiti[2]、WS-Discovery[3]、OpenVPN[4]、某DVR协议[5]。这些攻击方式都区别于大家所熟知的DNS、SSDP、NTP、Memcached等反射攻击类型,给DDoS攻击防护带来了一定的挑战。

今年6月,以色列网络安全公司JSOF曝光了Treck TCP/IP协议栈的若干0-day漏洞,可能导致全球数亿台设备受到影响。在对已公布的白皮书进行分析后,我们发现,其中的一家受影响的厂商Digi生产的设备使用ADDP(Advanced Digi Discovery Protocol)进行设备发现。ADDP使用的组播地址为224.0.5.128,端口2362,但该协议在实现时,也支持单播,加之UDP协议能够伪造源IP,故存在被用作反射攻击的风险。

为了了解ADDP反射攻击的潜在规模,我们通过绿盟威胁情报中心(NTI)对暴露在互联网上的ADDP服务进行了测绘。

全球有5000多个IP开放了ADDP服务,存在被利用进行DDoS攻击的风险。这些设备涉及Digi的多款产品,如Connect WAN 3G、ConnectPort WAN VPN、ConnectPort X4、Connect ME4 9210等。

开放ADDP服务的设备暴露数量最多的五个国家依次是美国、意大利、波兰、智利和西班牙,美国的占比达到了43%。

ADDP探测报文的长度是14字节,响应报文长度大多是100多个字节,平均长度为126字节,由此可得平均带宽放大因子为9。

ADDP作为一种新的反射攻击类型,当前暂未引起攻击者的关注,但其潜在的风险主要有两个:一是可被用于DDoS攻击,二是可被用于发现Digi厂商的设备,后续被用于Ripple20相关的攻击。

ADDP简介

Ripple20[7]是JSOF[8]研究实验室在Treck Inc.开发的广泛使用的低级TCP / IP软件库中发现的一系列零日漏洞,2020年6月,JSOF公布了Ripple20中CVE-2020-11896和CVE-2020-11898的技术白皮书[9],其中CVE-2020-11896包含针对Digi Connect ME 9210的PoC。JSOF公布技术白皮书后,我们对涉及的Digi Connect ME 9210进行了分析,发现除技术白皮书中所述的RCE之外,Digi以太网模组使用的ADDP协议,还存在被用作反射攻击的风险。

Digi International Inc.[10](后简称Digi)是一家成立于1985年的物联网解决方案提供商,其产品线从射频调制解调器到网关等种类齐全。Digi Connect ME是Digi设计的一系列以太网模块,预装了Digi即插即用固件。为实现即插即用的功能,Digi设计了类似SSDP(Simple Service Discovery Protocol)的ADDP(Advanced Digi Discovery Protocol),该协议基于UDP,用于发现局域网内的Digi ConnectPort X系列产品。该类发现协议通常同时支持组播和单播,加之UDP能够伪造源IP的缘故,导致暴露在互联网上的这类服务,极其容易被用作反射攻击。

ADDP使用的组播地址为224.0.5.128,端口2362,ADDP数据帧[11]的总体可以分为四部分,协议头,数据包类型、payload总长度以及payload,一个典型的ADDP设备发现数据包如下所示:


图 1.1  ADDP探测包示例

协议头即为该协议的头部,ADDP采用固定的字符作为协议头,在zmap的UDP扫描插件[12]中,共有三种协议头,分别是DIGI(“0x44 0x49 0x47 0x49”)、DVKT和DGDP。

数据包类型用于区分该数据包的作用,占两个字节:

-         0x0001: 设备发现请求

-         0x0002: 设备发现响应

-         0x0003: 静态网络设计请求

-         0x0004: 静态网络设置响应

-         0x0005: 重启请求

-         0x0006: 重启响应

-         0x0007: DHCP网络设置请求

-         0x0008: DHCP网络设置回应

payload总长度,占两个字节。

payload即为数据帧的有效负载,通常,ADDP的设备发现数据包,payload长度为6个字节,内容固定为:“0xFF 0xFF 0xFF 0xFF 0xFF 0xFF”,如图 1.1 所示。

与设备发现的数据包不同,设备发现数据包的回应,其payload采用字段类型+负载长度+负载内容的格式,其中,可能出现的字段类型如下:

-         0x01:MAC地址

-         0x02:IP地址

-         0x03:子网掩码

-         0x04:网络名称

-         0x05:域名

-         0x06:硬件类型

-         0x07:硬件版本

-         0x08:固件

-         0x09:结果内容

-         0x0a:结果标志

-         0x0b:IP网关

-         0x0c:设置错误的代码

-         0x0d:产品型号

-         0x0e:Real Port端口号

-         0x0f:DNS IP地址

-         0x10:未知字段

-         0x11:错误代码

-         0x12:串口数量

-         0x13:加密的Real Port端口号

-         0x1a:设备ID

一个ADDP协议响应报文的例子如下所示,参照上面的介绍,很容易理解其各个字段的含义。对于IP和MAC地址相关字段,我们进行了匿名化处理。


ADDP暴露情况分析

为了精确刻画ADDP反射攻击的潜在规模,我们通过绿盟威胁情报中心(NTI)对暴露在互联网上的ADDP服务进行了测绘。

如无特殊说明,本章所提到的数据为全球单轮次测绘数据(2020年6月)。

全球有5000多个IP开放了ADDP服务,存在被利用进行DDoS攻击的风险。

为了避免遗漏,我们分别采用zmap中的三种设备探测报文进行了测绘,由此得到ADDP服务的全球暴露情况,如表 2.1 所示。当协议头为“DGDP”时,并未探测到存活的设备。


表 2.1  ADDP服务全球暴露情况

我们对ADDP服务的banner中的产品型号字段进行了分析,如图 2.1 所示。具体产品对应什么设备感兴趣的读者可以自行去官网检索,这里不再介绍。


图 2.2  开放ADDP服务的产品型号分布情况

开放ADDP服务的设备暴露数量最多的五个国家依次是美国、意大利、波兰、智利和西班牙,美国的占比达到了43%,而我国仅有39台设备暴露在互联网上。

图 2.3  开放ADDP服务的设备国家分布情况

我们对响应报文的长度进行了分析,其长度大多是100多个字节,平均长度为126字节。由此可得平均带宽放大因子(bandwidth amplification factor,BAF)[①][6]为9。

小结

本文首先对ADDP进行了介绍,之后对其在互联网上的暴露情况进行了分析。ADDP作为一种新的反射攻击类型,当前暂未引起攻击者的关注,但其潜在的风险主要有两个:一是可被用于DDoS攻击,二是可被用于发现Digi厂商的设备,后续被用于Ripple20相关的攻击。

防护建议:

作为安全厂商:

(1)可以在扫描类产品中加入ADDP扫描能力,及时发现客户网络中存在的安全隐患。

(2)可以在防护类产品中加入对于ADDP的流量检测能力,及时发现客户网络中存在的安全威胁。也可以关联开放ADDP服务的IP的威胁情报,阻断命中的源IP的连接。

作为设备开发商,在对ADDP服务发现报文进行回应时,检查该报文的源IP是否是多播地址,如果不是多播地址的话,则不做回应。这样的话,ADDP服务被利用发起反射攻击的难度将大大增加。

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

作为监管部门:

(1)对于网络中的ADDP威胁进行监控,发现问题进行通报。

(2)推动设备中ADDP功能的安全评估,如设备不满足相关要求,禁止设备上市等。

作为设备用户:

(1)如无需要,关闭设备的ADDP发现功能。

(2)尽量将开放ADDP服务的设备部署在局域网中,这样可以增大设备被利用的难度。

(3)如果需要将开放ADDP服务的设备部署在公网上,则在设备之前部署路由器(利用NAT能力)或防护类安全设备(如防火墙),控制外部IP对于设备的访问。

作为有DDoS防护需求的用户,购买具备ADDP反射攻击防护能力的安全厂商的DDoS防护产品。如已购买,并且产品支持应用层特征的自定义,可以加入相应的特征规则。

参考文献

[1] CoAP Attacks In The Wild, https://www.netscout.com/blog/asert/coap-attacks-wild

[2] Over 485,000 Ubiquiti devices vulnerable to new attack, https://www.zdnet.com/article/over-485000-ubiquiti-devices-vulnerable-to-new-attack/

[3] 基于ONVIF协议的物联网设备参与DDoS反射攻击, https://anquan.baidu.com/article/623

[4] OpenVPN服务被利用于UDP反射放大DDoS攻击, https://www.freebuf.com/vuls/215171.html

[5] 现网发现新型DVR UDP反射攻击手法记实, https://mp.weixin.qq.com/s/mCF3HiDDK1QdjvgOBGlaDA

[6] Amplification Hell: Revisiting Network Protocols for DDoS Abuse, https://www.ndss-symposium.org/ndss2014/programme/amplification-hell-revisiting-network-protocols-ddos-abuse/

[7] Ripple20, https://www.jsof-tech.com/ripple20/

[8] JSOF, https://www.jsof-tech.com/

[9] JSOF_Ripple20_Technical_Whitepaper_June20, https://www.jsof-tech.com/wp-content/uploads/2020/06/JSOF_Ripple20_Technical_Whitepaper_June20.pdf

[10] Digi International Inc., https://www.digi.com/about-digi

[11] addp, https://github.com/zdavkeos/addp/blob/master/addp.py

[12] digi pkt, https://github.com/zmap/zmap/blob/master/examples/udp-probes/digi1_2362.pkt

[①] 放大因子我们采用NDSS 2014的论文Amplification Hell: Revisiting Network Protocols for DDoS Abuse上对于带宽放大因子的定义,不包含UDP的报文头。


声明:该文观点仅代表作者本人,转载请注明来自看雪