ToB企服应用市场:ToB评测及商务社交产业平台
标题:
UPnP协议原理及安全缺陷
[打印本页]
作者:
徐锦洪
时间:
4 天前
标题:
UPnP协议原理及安全缺陷
一. 协议简介
协议全称:Universal Plug and Play,用于设备的智能互联互通(物联网),简化家庭/企业(局域网)中智能设备的联网过程。
实例:智能监控摄像头、手机端预约开启智能空调
二. 根本原理
其中寻址相当于UPnP协议的预阶段,设备获取一个可用的ip地址用以上网。有以下三种方式获取:
DHCP:通过DHCP协议自动获取ip地址(首选)
Auto-IP:通过Auto-IP协议,从169.254.1.0 ~169.254.254.255(也称169.254/16)获取一个局域网内唯一的IP地址
friendly name:设备借助DHCP服务器到DNS服务器中注册设备主机名(/URL)和IP地址的映射关系
别的五个紧张阶段的协议架构如下:
其中HTTPU是以UDP实现的HTTP协议,HTTPMU是广播的HTTPU;SSDP是简朴服务发现协议;SOAP是简朴对象访问协议,其答应一个访问点改变服务状态表中的元素;GENA是通用变乱提醒架构协议;
发现
①控制点上线:控制点向UPnP专用的多播地址发送SSDP发现报文(M-search),请求毗连到网络上的UPnP设备告知自己其所拥有的服务,设备收到该多播请求,并判断自己能满足该请求,则SSDP单播复兴控制点(报文中包罗指向设备描述文档的URL)
②设备上线:以多播方式发送SSDP通知报文(Notify,报文中包罗指向描述文档的URL),通知控制点自己所拥有的服务,且每隔肯定的时间就要重新再通知一次,否则会被判为离线
描述
对于一个物理设备可以包罗多个逻辑设备,多个逻辑设备既可以是一个根设备其中嵌入多个设备,也可以是多个根设备的方式存在
描述是一个XML文档,其中包罗设备的根本信息(制造商、设备状态、可执办法作……),控制点接纳基于TCP的HTTP(尺度的GET命令)去请求指向描述文档的URL;与之相应的,设备会运行一个尺度的HTTP服务器以供控制点访问。
控制
设备描述中会提供Control URL,控制点根据描述文档中的阐明构建一个SOAP协议请求(含有消息Body,指示怎样控制设备。可能会包罗参数,比如想播放一个视频,要把视频的URL传已往),随后使用HTTP的POST方法向设备的Control URL发送操控请求,设备收到后要respone,表现能不能执行调用,出错的话会返回一个错误代码;
与之相应的,设备会运行一个或多个控礼服务器(基于HTTP的SOAP服务端)以供控制点访问。
变乱
当设备上的服务在运行,其状态变量发生改变之后,就产生了一个变乱。控制点可以订阅这个变乱,保证能及时捕捉变乱信息,并做出相应的控制动作。设备的描述文档同样提供了一个变乱URL,控制点的订阅/退订请求会通过构建一个基于TCP的HTTP之上的GENA报文来递交给变乱URL;
与之相应的,设备会运行一个或多个变乱服务器(基于HTTP的GENA服务端)以供控制点访问。
表现
设备的描述文档中包罗该设备的表现URL,该URL指向了一个为设备展示用户交互界面的HTML文档,控制点通过尺度的HTTP请求得到该HTML文档并呈现在控制点的浏览器中。控制点就是根据这个HTML界面,及会话机制实现对设备的控制,订阅收取变乱等;
不是所有设备都包罗表现文档,也不是所有控制点都能呈现包罗复杂HTML对象的表现文档。
三. 安全缺陷
(一)CallStranger毛病
CallStranger毛病(cve-2020-12695)答应攻击者绕过内网的数据防泄漏体系(DLP)进行数据逃逸,可导致敏感数据泄漏,并且可对设备地点内部网络进行扫描,甚至能挟制设备进行分布式拒绝服务(DDOS)攻击。
1. 毛病原理
该毛病存在于UPnP协议中的变乱(Event)模块,在UPnP协议中,用户可以通过控制点向智能电子设备发送订阅请求,以使得该设备可以及时地将对应变乱发布给用户指定的目标设备。
订阅请求需要具备以下几个要素:发布者URL、服务标识符和变乱消息交付URL
其中,“publisher path”表现变乱触发URL(设备描述中的服务元素eventSubURL子元素) ;“publisher host”及“publisher port”分别表现变乱触发URL的域名或ip及端口;“CALLBACK”表现回调地址,即变乱消息发往的目标地,假如有多个url则挨个尝试,直至乐成。
大概的“订阅&发布”过程如下:
智能UPnP设备收到订阅请求后,会将变乱以NOTIFY的方式发送给CALLBACK所指向的目标设备。然而究竟上,UPnP协议并没有对CALLBACK地址进行限制或规范,因此攻击者可通过构建一些
非通例的CALLBACK地址
来达到其攻击目标。
2. 利用方式
该毛病所造成的危害可以分三个方面:DDoS攻击、数据逃逸和端口扫描。其中造成的DDoS攻击可以分两种,SYN大水攻击和TCP反射放大攻击
DDoS攻击--SYN大水攻击
假设攻击者已经通过一些方法(如在局域网仿冒控制点上线进行广播等)获得了某些设备UPnP服务的eventSubURL(变乱订阅URL),那么攻击者就可以这些UPnP设备发送订阅请求,并使CALLLBACK地址均指向目标设备。
如前文所说,若CALLBACL Value中界说了不止一个URL,则会按顺序尝试TCP毗连,直到有一个毗连乐成。那么攻击者可在CALLBACK Value中经心构造多个URL,使每一个都无法毗连乐成,这样UPnP设备就会用多个SYN包依次对每个URL尝试TCP握手。假设攻击者可以获得充足多的UPnP设备的订阅URL,就会导致受害设备遭受DDoS攻击。
SYN数据包的数目根据UPnP设备操作体系和配置的差别而差别。
DDoS攻击--TCP反射放大攻击
攻击原理与SYN泛洪攻击一致,只不过引入了一个放大因子的概念;比如某UPnP设备尝试毗连一个CALLBACK URL时会发送8个SYN包,假设每个SYN包均为最小的60字节(14字节以太头 + 20字节IP头 + 20字节TCP头 + 自填充的6字节0),那么带宽放大因子就可以达到
8*(60/订阅报文长度)*CALLBACK地址数
放大结果一样平常与UPnP设备的操作体系和厂商配置有关。
数据逃逸
当攻击者需要将获得的内网敏感数据传输出去时,可以以UPnP设备作为跳板,从而绕过内网防火墙的限制。
因为UPnP协议对CALLBACK 地址的长度没有做限制,所以攻击者可以将数据通过Callback的URL值传输出去
端口扫描
如前文提到的,若CALLBACK界说了不止一个URL,则会按顺序尝试TCP毗连,直到有一个乐成,那么这个规则显然也可以用于端口扫描,如下图所示,假设攻击者需要扫描IP为192.168.1.13的555端口是否开启,那么攻击者只需要将某个可以监控的URL放置在后即可确认,若攻击者收到毗连请求,则端口未开启,反之,则开启。
其中,第一个CALLBACK地址为待扫描主机端口,第二个CALLBACK地址为攻击者可控制的外部服务器。
3. 毛病修复
在UPnP协议规范[1]4.1.1节中,可以看出开发者限制了订阅变乱的源IP和目标IP都必须在内网中,这从肯定程度上修复了该毛病。
(二)其他缺陷
除了CallStranger毛病外,还找到了一些攻击思路,但并没有相应的毛病实例。
1.缓冲区溢出攻击:
由于UPnP在计划时可能没有对缓冲区使用进行检查和限制,恶意攻击者可能会利用这一点获得体系的控制权限。这种攻击可能导致整个网络的安全性受到威胁。
2.设备发现机制的毛病:
UPnP的设备发现机制可能会被恶意利用。攻击者可以伪装成合法的UPnP设备,通过发送广播消息来搜集网络中的设备信息,甚至执行拒绝服务攻击(DoS)。
此外github上还有一个写的比较全的文章:https://github.com/dhishan/UPnP-Hack
四. 参考文章
UPnP技能总结-CSDN博客
UPnP协议CallStranger毛病影响数百万设备 - FreeBuf网络安全行业门户
https://openconnectivity.org/upnp-specs/UPnP-arch-DeviceArchitecture-v2.0-20200417.pdf
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4