安全动态

UPnP 协议 CallStranger 漏洞影响数百万设备

来源:聚铭网络    发布时间:2020-07-02    浏览次数:
 

信息来源:Freebuf


1.漏洞概述

2020年6月8日,安全研究员Yunus Çadirci公布UPnP(通用即插即用)协议漏洞公告(CVE-2020-12695),并将其命名为CallStranger漏洞。该漏洞允许攻击者绕过内网的数据防泄露系统(DLP)进行数据逃逸,可导致敏感数据泄露,并且可对设备所在内部网络进行扫描,甚至能劫持设备进行分布式拒绝服务(DDOS)攻击。根据CallStranger漏洞原理,启明星辰ADLab以某款智能电视作为测试目标,对CallStranger漏洞的危害性进行了演示分析。

2.


与之前的UPnP漏洞不同,CallStranger漏洞存在于协议设计中,因此该漏洞影响几乎所有支持UPnP的设备,包括Windows 10所有版本、路由器、访问接入点、打印机、游戏机、门铃对讲机、媒体应用程序和设备、摄像头、电视机等。根据SHODAN和ZoomEye的搜索结果,至少有数以百万计的在线设备受到影响。

3.漏洞分析

UPnP全称为Universal Plug and Play,即通用即插即用,UPnP允许各种网络设备在没有任何特殊设置或配置的情况下进行通信,使设备彼此可自动连接和协同工作。例如新的打印机插上电并连接网络之后,局域网内的计算机就知道了打印机的型号等信息,方便进行驱动安装。

在UPnP协议规范中有一个非常重要的功能模块,叫做事件(Eventing)。在UPnP服务进行的时间内,只要设备用于UPnP服务的变量值发生变化或者模式发生了改变,就会产生一个事件,随之向整个网络进行广播。或者用户可以事先向UPnP设备发送订阅请求,保证UPnP设备及时地将事件传送过来。

UPnP Device Architecture 2.0[1]中关于UPnP的NT与CALLBACK订阅模块有如下格式:

publisher path一般为订阅的服务,以GENA格式存放在设备的某个XML文件中,类似下图。

CALLBACK的值一般为回调地址的URL。NT取upnp:event表示订阅事件。

UPnP协议规范文档中提到:CALLBACK是必填区域,所填信息为发送事件信息的URL。一般情况下为UPnP供应商指定。如果其中定义了不止一个URL,设备会按顺序尝试连接,直到有一个连接成功。每个URL一般为HTTP协议(即前缀为”http://”)。设备不得以任何方式截断这些URL。如果内存不足以存储所有的CALLBACK URL,设备会拒绝订阅。

整个订阅流程大概可以简化如下图。

很显然,该协议并没有对CALLBACK传入的URL进行限制和规范,也就是说,CALLBACK URL是攻击者可控的。

下图为Intel UPnP SDK中检查CALLBACK URL的相关代码,create_url_list函数仅仅检查了URL是否合法,并没有确定其是否合理。

4.漏洞危害

CallStranger漏洞所造成的危害可以分三个方面:DDoS攻击、数据逃逸和端口扫描。其中造成的DDoS攻击可以分两种,SYN洪水攻击和TCP反射放大攻击,如下图所示。

4.1 SYN洪水攻击

假设我们已经通过一些方法(如在局域网广播等)获得了某些设备UPnP服务的eventSubURL,下面就可以向UPnP设备发起一项订阅服务,格式如下:

  • SUBSCRIBE eventSubURL HTTP/1.1

  • NT: upnp:enent

  • Callback: delivery URL

  • Host: upnp设备:upnp服务端口

如前文协议规范中提到的,若CALLBACL Value中定义了不止一个URL,则会按顺序尝试TCP连接,直到有一个连接成功。那么攻击者可在CALLBACK Value中精心构造多个URL,使每一个都无法连接成功,这样UPnP设备就会用多个SYN包依次对每个URL尝试TCP握手。假设攻击者可以操控很多个设备,就会导致受害设备遭受DDoS攻击。

SYN数据包的数量根据设备操作系统和配置的不同而不同,利用某品牌智能电视对受害设备进行SYN洪水攻击测试,测试结果如下图所示。

该智能电视每收到一个CALLBACK Value就会发送8个SYN数据包尝试连接受害设备。若我们每个CALLBACK的URL值为25字节,那么带宽放大因子便可以达到8*60/25=19.2。因为CALLBACK Value的个数是没有限制的,所以理论上是可以无限放大的。

4.2 TCP反射放大攻击

Windows Media Player在播放视频时也有相应的UPnP服务,我们获


 
 

上一篇:自动化能否“杀死”安全分析师?

下一篇:2020年07月02日 聚铭安全速递