UPnP漏洞使数百万网络设备面临互联网攻击

2020-06-12 23:43:11

一位研究人员说,数百万路由器、打印机和其他设备可能会被利用通用即插即用网络协议中的安全漏洞的新攻击远程征用。

此漏洞攻击名为CallStranger,在强制大量设备参与分布式拒绝服务(或DDoS)攻击时最有用,这些攻击会用垃圾通信量使第三方目标不堪重负。CallStranger还可以用来渗透网络内部的数据,即使它们受到旨在防止此类攻击的数据丢失预防工具的保护。该漏洞还允许攻击者扫描内部端口,否则这些端口将不可见,因为它们不会暴露在互联网中。

数以亿计的路由器和其他所谓的物联网设备容易受到CallStranger的攻击,发现了该漏洞并编写了利用该漏洞的概念验证攻击代码的土耳其研究人员尤努斯·圣加德·艾哈迈德·RC·艾哈迈德(尤努斯·圣加德ıRCı)在周末写道。然而,要使利用漏洞真正起作用,易受攻击的设备必须将UPnP(即众所周知的协议)暴露在互联网上。这一限制意味着只有一小部分易受攻击的设备实际上是可利用的。

已有12年历史的UPnP协议允许设备通过网络自动找到彼此,从而简化了连接设备的任务。它通过使用HTTP、SOAP和XML协议来通告自身并通过使用Internet协议的网络发现其他设备来实现这一点。

虽然自动化可以消除手动打开不同设备用于通信的特定网络端口的麻烦,但多年来,UPnP使用户面临各种攻击。2013年,一项全互联网扫描发现,UPnP使本地网络以外的人可以看到8100多万台设备。这一发现令人惊讶,因为该协议不应该与外部设备通信。暴露在很大程度上是几个公共代码库的结果,这些代码库监控所有接口的用户数据报协议数据包,即使配置为只侦听内部接口也是如此。

2018年11月,研究人员检测到两起针对使用UPnP的设备的野外攻击。其中一个人在Broadcom芯片中使用了一个有缺陷的UPnP实现,将10万台路由器整合到僵尸网络中。另一个用于对抗4.5万台路由器,利用不同UPnP实现中的缺陷打开端口,这些端口有助于传播EternalRed和EternalBlue,这是由NSA开发并后来从NSA窃取的强大Windows攻击。

CallStranger允许远程未经身份验证的用户与应该只能在本地网络内访问的设备进行交互。利用漏洞攻击的一个用途是将大量垃圾通信量定向到攻击者选择的目的地。因为发送到攻击者指定的目的地的输出比攻击者发起的请求大得多,所以CallStranger提供了一种特别强大的方法来放大攻击者的资源。其他功能包括枚举本地网络上的所有其他UPnP设备和渗漏存储在网络上的数据,在某些情况下,即使它受到数据丢失预防工具的保护。

该漏洞被跟踪为cve-2020-12695,这里和这里都有相关建议。ıRCı在此发布了一个PoC脚本,该脚本演示了CallStranger的功能。

这一攻击是通过滥用UPnP订阅功能来实现的,设备使用该功能在特定事件(如播放视频或音乐)发生时接收来自其他设备的通知。具体地说,CallStranger发送的订阅请求伪造了接收结果“回调”的URL。

为了执行DDoS,CallStranger会发送一系列伪造Internet上第三方站点地址的订阅请求。当攻击与其他设备一致执行时,冗长的回调会用大量垃圾流量轰炸网站。在其他情况下,接收回调的URL指向内部网络内的设备。响应可能会造成类似于服务器端请求伪造的情况,这使得攻击者能够攻击网络防火墙后面的内部设备。

SCAADıRCı向维护UPnP协议的开放连接基金会报告了他的发现,该基金会已经更新了底层规范以修复该缺陷。用户可以与开发人员和制造商联系,以确定是否或何时会有补丁可用。相当大比例的物联网设备从未收到制造商的更新,这意味着该漏洞将在未来一段时间内存在。

一如既往,最好的防御措施是完全禁用UPnP。大多数路由器通过取消选中设置菜单中的复选框来实现这一点。对于那些坚持打开UPnP的人,可以使用像这样的站点来确保路由器不会暴露敏感端口。有经验和能力的UPnP用户也可以定期检查日志来检测漏洞。