UPnP协议原理及安全缺陷

打印 上一主题 下一主题

主题 761|帖子 761|积分 2283

一. 协议简介

        协议全称: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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

徐锦洪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表