UPnP 仍然不安全吗?

信息安全 网络 无线上网 无线的 上网
2021-08-22 03:15:12

在当今世界,在正确更新到最新软件/固件的设备上,UPnP 是否仍然不安全,或者其漏洞是否已修复?

4个回答

为什么 UPnP 还是不安全的?

UPnP 的坏名声来自 2011-2013 年发现的实施问题。这就像说电子邮件不安全并且应该被禁用,因为几年前有人在多个电子邮件客户端中发现了一个常见问题。

我总是禁用 UPnP,因为每个人都这么说。现在我仔细研究了一下,结果是愚蠢的。当 UPnP 是新的时,发现一些设备允许从 Internet 进行配置。任何人都可以在上面打开任何端口。从那时起,路由器供应商就有足够的时间来修复他们的软件。与 2011 年(大约是第一台 iPad 发布的时间)相比,安全性现在变得更加重要,因此供应商更加意识到安全问题。对于较旧的路由器,如果它们一开始就容易受到攻击,那么固件更新可能早就发布了。

UPnP 的目的是什么?

UPnP 是解决因 IP 地址太少而导致的问题的解决方案。因为不是每个人都可以拥有自己的,所以我们需要分享它们。我们这样做的方式是通过网络地址转换 (NAT):您的消费者路由器在您的本地网络(例如 192.168.xx)和您的公共 IP 地址(例如 278.14.1.48)之间进行转换。文件共享、通话或视频通话、分发更新(Windows、Google Play)、匿名网络、弹性网状网络等点对点应用程序都无法通过 NAT 运行,因此我们必须为特定应用程序禁用它(使用端口转发),或寻找变通方法(如 UDP/TCP 打孔、STUN 等)。UPnP 协议是应用程序用来告诉路由器它想为应用程序禁用 NAT 的协议。它基本上是自动端口转发。

不启用 UPnP 意味着我们需要解决方法,而不是能够进行对等通信。希望从您身上获利的软件开发人员会花钱运行服务器以保持这些变通办法为您服务,但免费软件通常没有这样的奢侈品,并且如果没有 UPnP 或您手动转发端口就无法运行。

那为什么其他人会说“是的,它的设计不安全”?

(剧透:他们错了。)

由于 NAT 在 IPv4 中无处不在,许多人开始依赖它来确保安全:因为您无法访问网络内部的各个主机,无法从外部利用漏洞,人们开始关闭 LAN 内部的安全措施。他们忽略了进行安全更新并在没有密码的情况下打开文件共享(因为没有人将他们的笔记本电脑带到他们的局域网之外,对吗?),所以现在你需要一个位于笔记本电脑之外的防火墙,例如在你的路由器中。将此与 UPnP 可以打开端口的想法结合起来,您会得到错误的答案,例如之前投票最多的答案。

问问自己:是什么让 UPnP 请求您的路由器打开端口?它必须在您的网络中。例如,恶意软件可以告诉路由器打开它。多么可怕!但是等等,如果您的网络上运行着恶意软件,并且您的笔记本电脑不安全……那么您已经被搞砸了,对吧?确实是的。

恶意软件不需要 UPnP 来访问您的本地设备:为了能够进行 UPnP,它已经需要在您的设备上或在您的网络内部,因此它可以在不使用 UPnP 的情况下自行访问内部设备。

或者,如果朋友带来了感染了恶意软件的智能手机怎么办?它可以告诉路由器对您的其他设备进行 UPnP 并公开它们。确实如此,但同样:恶意软件已经在您的网络中,并且已经可以直接到达您的本地设备。

结论

如果您的路由器不是古老的,或者您为它安装了固件更新(或者如果它从一开始就没有漏洞),则可以启用 UPnP。

即使您的路由器已知易受攻击(并且您拒绝安装更新或供应商未发布更新),如果您网络中的所有设备都安装了安全更新,这仍然不是问题。无论如何,您都应该这样做,因为您访问的每个网站都可以通过浏览器中的 JavaScript 攻击本地设备(特别是如果可以通过盲目 HTTP 请求利用本地设备),以及可以访问您 WiFi 的每个人(例如通过密码破解)也可以破解它们。注意:这包括打印机、IP 摄像机和其他经常被遗忘的嵌入式计算机。

是的,UPnP在设计上是不安全的。

UPnP 是一种协议,旨在自动打开防火墙中的端口,以允许外部人员访问受所述防火墙保护的本地计算机上的托管服务器。

UPnP 就像在门上安装一把锁,然后将钥匙留在钥匙孔中。那么安装锁有什么意义呢?

无需解释为什么从一开始这是一个糟糕的协议,以帮助“新手”甚至无法访问 192.168.0.1/192.168.1.1 并在需要时转发一个简单的端口。

UPnP 有效地使防火墙无用。然后,任何木马都可以设置侦听 IRC 服务器、RAT 服务器或任何其他可疑的服务器,然后要求防火墙为它们打开端口。

如果您有支持 UPnP 的路由器,请立即禁用该协议。我还没有偶然发现不允许禁用 UPnP 的路由器,因此在所有路由器中都应该可以。可能是某些 ISP 锁定的路由器完全禁用了客户管理,但是您应该能够要求您的 ISP 客户服务禁用 UPnP。

我想我应该扩大一点并澄清塞巴斯蒂安尼尔森所说的内容。

UPnP 与防火墙或路由器 NAT/PAT 后面设备的操作系统一样安全。

如果您在路由器后面有一个 linux、BSD 或 unix 机器,并且您有一个标准用户设置,您不使用 root 来执行任何用户活动,那么您与能够使用 UPnP 危害您的网络的木马发生冲突的机会是低的。

如果您正在运行 Windows 或使用 android 设备下载未经 Play 商店审查的应用程序,那么您很容易受到攻击。

大多数路由器都有将外部端口定向到内部端口的选项,因此您可以设置一个端口或一系列端口来与需要打开端口的机器通信。出于安全考虑,明智的做法是不要在 0-1024 范围内打开重定向端口,因为这些是常见的端口,可能会成为黑客扫描的目标。

UPnP 只是根据设备请求打开从网络内的设备到网络外部的另一个设备的连接。因此,基本上,安全性归结为该请求是由善意的软件或恶意软件发出的。

UPnP 不是弱点,而是设备上安装的应用程序的安全性。防火墙、手动端口转发、防病毒和应用程序商店只是解决此问题的方法,但不是真正的解决方案。

真正的解决方案是使用可以检查源代码的软件,从软件中心安装,并经常修补安全漏洞。Linux