译者 | 陈峻
审校 | 孙淑娟
先进的技术往往不一定具有完备的安全性。例如,闪存驱动器里就可能被植入携带式键盘记录器,而在各种最新的浏览器中也可能被安插了后门代码,就连不断推出新版本的Windows,也从来没有间断地发布着各种针对系统漏洞的安全补丁与修复程序。同样,作为一种技术进步,通用即插即用(Universal Plug and Play,UPnP)在给用户带来便利的同时,由于各种原因也存在着一些自身的安全弱点,进而让使用它的系统变得易受攻击。
下面,我将向您深入介绍什么是UPnP,它为什么会对网络系统带来安全漏洞,以及如何关闭UPnP以提高安全态势。
什么是UPnP?
从技术角度来说,UPnP是一种网络协议(实际上是一组网络协议)。这些协议提供了一种特定的通信方法,以方便各种设备在网络上实现快速的相互通信。在大多数情况下,设备可以使用它来轻松地发现特定网络中的其他设备。目前,UPnP的使用已经非常普遍,您家的路由器上很可能就正在使用着该协议。
UPnP的另一个典型应用场景是查找打印机。过去,您必须通过手动搜索和设置的方式,以便其他的网络设备或主机可以找到新入网的打印机。如今,有了UPnP,我们便可以自动发现的方式,快速地找到通过有线或无线方式连接到网络中的打印机。
在完成连接之后,网络上的设备可以通过该协议持续进行后续的数据发送和接收。例如:用户主机可以调用打印机去打印文档,向移动应用传输音频数据。同时,移动设备也可以将自身作为一个驱动盘挂载到计算机上。可以说,该协议的使用场景非常丰富。而且,这些场景主要集中在家庭网络中,并不涉及到商业网络中的互联互通。
UPnP可谓目前最方便的网络技术之一。正如其名称所示,只要您插入(接入)设备,即可立即开始使用它,而无需额外的设置或配置。不过,我们常说事物都有两面性。该协议的便利性往往是和安全性成反比的。
UPnP是否存在安全风险?
十多年来,UPnP一直因其安全漏洞等问题而受到抨击。FBI和美国国土安全部都曾建议用户禁用他们的UPnP设置,以尽量减少暴露或遭遇损坏的风险。同时,如果您在互联网上粗略地搜索关键字“UPnP漏洞”的话,也能找到大量说明UPnP风险的结果。而且,UPnP的安全缺陷不只会影响到那些旧的硬件。
从发展历程上说,自2008年被推出以来,业界的安全工程师们已经发现了许多UPnP漏洞。而UPnP的最新主要漏洞—CallStranger UPnP是在2020年被发现的。该漏洞能够有效地允许攻击者绕过各种安全限制,进而直接实现数据的盗用。此外,在2022年初,安全公司Akami便更新了其有关UPnProxy的报告(虽然UPnProxy漏洞是在2018年被首次发现的)。该报告着重论述了EternalSilenceUPnP漏洞的详细信息,并且预警了全球数百万台路由器都可能带有此类漏洞。
为什么UPnP一直存在着安全风险?
至此,您一定想知道为什么UPnP的安全问题屡禁不止呢?实际上,由于UPnP假设每个连接设备都是值得信赖的,因此它会自动打开各个端口,并授权端口的转发连接。那怕您不是安全专家,也可能已经意识到了这会是一个重大的风险点。虽然大多数路由器会去主动阻止各种恶意连接,但是那些配置不当且已启用了UPnP的路由器,很可能会根据某个恶意传入的连接,而授予攻击者对于内部网络的访问权限。
当然,这只是UPnP成为安全问题的一种攻击可能性。另一个安全风险则源于恶意软件能够轻松地感染网络中的设备,并利用UPnP在网络中肆意传播。正是由于路由器的配置不当,因此各种使用UPnP连接到受感染设备上的其他部件,都会在合法连接的状态下,迅速被感染中招。
UPnP也可能招致大量的DDoS攻击。例如,强大的Mirai僵尸网络就能够使用被开启和配置了UPnP协议的物联网设备,来放大其攻击能力,进而利用僵尸网络使各种目标网站被迫下线。这同时也引出UPnP的另一个问题:许多IoT设备虽然被开启和配置了UPnP,但是往往无法实现升级、更改、甚至是从根本上禁用UPnP。也就是说,如果此类设备没有在首次被配置妥当,那么就会成为物联网的一个安全暴露点。
如何关闭UPnP
通常,UPnP的漏洞可以被归纳为如下两个主要方面:
- 编程错误:由于在UPnP代码中存在着各种缺陷,导致了它们会被注入恶意代码,进而被利用和执行。
- 意外暴露:虽然UPnP的目的是为了使网络上的设备可以轻松地发现彼此,但不幸的是,一些UPnP控制接口可能会被暴露在公共互联网上,从而使得恶意用户能够查找到,并获取针对私有设备的访问权限。
鉴于上述两种原因,业界广泛建议用户关闭UPnP功能。但是,由于该协议带来的便利性,以及正在使用该协议的设备和制造商众多,我们不可能将它们迅速禁用掉。目前,一种比较好的实践方式是让用户主动根据设备的型号与特点,在互联网通过“如何禁用UPnP”的关键字,去搜索正确的处理方式。
一般而言,为了在路由器上禁用UPnP,您需要在浏览器的地址栏中输入路由器IP地址,然后登录到该路由器的配置界面上。在获取了管理员级别的访问权限后,您通常可以在高级菜单的相关配置界面中,发现UPnP的设置与路由器的端口转发选项同属一个分类(如下图所示),进而完成配置上的调整。
当然,您也不必急于将其关闭。更恰当的实践方式是:先定期接收并更新路由器的固件,再着手处理UPnP的相关设置问题。
如果不能禁用UPnP该怎么办?
正如上文所讨论的,我们完全可以轻松地在大多数设备上,关闭UPnP的选项。当然,某些简化的设备可能不具备该项功能设置。对此,我的建议是,我们与其花时间去研究如何调整UPnP的设置,不如通过部署或优化其他安全组件,来提高其所处网络的整体安全态势。
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。
原文标题:What Is UPnP & Why Is It Dangerous?,作者:Gavin Phillips