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号