UPnP和谈CallStranger缝隙影响数百万设备
颁布功夫 2020-06-30一、缝隙概述
2020年6月8日,安全钻研员Yunus ?adirci颁布UPnP(通用即插即用)和谈缝隙布告(CVE-2020-12695),并将其定名为CallStranger缝隙。该缝隙允许攻击者绕过内网的数据防泄露系统(DLP)进行数据逃逸,可导致敏感数据泄露,并且可对设备地点内部网络进行扫描,甚至能劫持设备进行散布式回绝服务(DDOS)攻击。宝运莱官方网站ADLab以某款智能电视作为测试指标,对CallStranger缝隙的风险性进行了演示分析。
二、缝隙影响
与之前的UPnP缝隙分歧,CallStranger缝隙存在于和谈设计中,因而该缝隙影响险些所有支持UPnP的设备,蕴含Windows 10所有版本、路由器、接见接入点、打印机、游戏机、门铃对讲机、媒体利用法式和设备、摄像头、电视机等。凭据SHODAN和ZoomEye的搜索了局,至少罕见以百万计的在线设备受到影响。
三、缝隙分析
UPnP全称为Universal Plug andPlay,即通用即插即用,UPnP允许各类网络设备在没有任何特殊设置或配置的情况下进行通讯,使设备彼此可自动衔接和协同工作。例如新的打印机插上电并衔接网络之后,局域网内的推算机就知路了打印机的型号等信息,方便进行驱动装置。
在UPnP和谈规范中有一个极度沉要的职能�?�,叫做事务(Eventing)。在UPnP服务进行的功夫内,只有设备用于UPnP服务的变量值产生变动或者模式产生了扭转,就会产生一个事务,随之向整个网络进行广播�;蛘哂没芄皇孪认騏PnP设备发送订阅要求,保障UPnP设备实时地将事务传送过来。
UPnP DeviceArchitecture 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进行限度和规范,也就是说,CALLBACKURL是攻击者可控的。
下图为Intel UPnP SDK中查抄CALLBACK URL的有关代码,create_url_list函数仅仅查抄了URL是否合法,并没有确定其是否合理。
四、缝隙风险
CallStranger缝隙所造成的风险能够分三个方面:DDoS攻击、数据逃逸和端口扫描。其中造成的DDoS攻击能够分两种,SYN洪水攻击和TCP反射放大攻击,如下图所示。
4.1 SYN洪水攻击
如果我们已经通过一些步骤(如在局域网广播等)获得了某些设备UPnP服务的eventSubURL,下面就能够向UPnP设备提议一项订阅服务,体式如下:
SUBSCRIBE eventSubURLHTTP/1.1
NT:upnp:enent
Callback: deliveryURL
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服务,我们获取到的UPnP服务列表如下:
我们拔取其中一项服务来测试一下。攻击者只必要发送210字节订阅包,如下图。
受害设备之后就会收到近700字节的数据包,放大因子达三倍多。其放大成效通常与UPnP设备的操作系统和厂商配置有关。
4.3 数据逃逸
通常情况下,企业内部网络都有分歧的安全等级划分。当攻击者渗入到企业内网时,若内网开启数据泄露防护系统,无法将获得的敏感数据传输出去,此时UPnP设备会是一个很好的跳板。
在RFC7230的3.1.1节[2]中,并没有对Request Line的长度做任何限度,这使得攻击者能够将数据通过Callback的URL值传输出去。如下图,某品牌智能电视一次要求就传输了2500KB的数据。
4.4 端口扫描
如前文提到的,若CALLBACK界说了不止一个URL,则会按挨次尝试TCP衔接,直到有一个成功,那么这个规定显然也能够用于端口扫描,如下图所示,如果攻击者必要扫描IP为192.168.1.13的555端口是否开启,那么攻击者只必要将某个能够监控的URL搁置在后即可确认,若攻击者收到衔接要求,则端口未开启,反之,则开启。
五、缝隙缓解及建复
可选取如下措施进行缝隙缓解:
查抄可疑设备,若是没有必要,则关关UPnP端口。
在网关等设备中审计NOTIFYHTTP数据包。
在最新更新的UPnP和谈规范[1]4.1.1节中,能够看出开发者限度了订阅事务的源IP和指标IP都必须在内网中,这从肯定水平上建复了该缝隙。
参考链接:
[1]https://openconnectivity.org/upnp-specs/UPnP-arch-DeviceArchitecture-v2.0-20200417.pdf
[2]https://tools.ietf.org/html/rfc7230#section-3.1.1
[3]https://delaat.net/rp/2008-2009/p26/report.pdf
[4]https://kb.cert.org/vuls/id/339275
[5]https://zh-cn.tenable.com/blog/cve-2020-12695-callstranger-vulnerability-in-universal-plug-and-play-upnp-puts-billions-of
[6]https://www.youtube.com/watch?v=hJSxDHPyTBE
宝运莱官方网站积极防御尝试室(ADLab)
ADLab成立于1999年,是中国安全行业最早成立的攻防技术钻研尝试室之一,微软MAPP打算主题成员,“黑雀攻击”概想首推者。截止目前,ADLab已通过CVE累计颁布安全缝隙1000余个,通过 CNVD/CNNVD累计颁布安全缝隙800余个,持续维持国际网络安全领域一流水准。尝试室钻研方向涵盖操作系统与利用系统安全钻延注移动智能终端安全钻延注物联网智能设备安全钻延注Web安全钻延注工控系统安全钻延注云安全钻研。钻研成就利用于产品主题技术钻延注国度沉点科技项目攻关、专业安全服务等。


京公网安备11010802024551号