TunnelCrack
是 VPN 中两个广泛存在的安全漏洞的组合。 攻击者可以滥用这些漏洞将流量泄漏到 VPN 隧道之外。 我们的测试表明,每个 VPN 产品在至少一台设备上都容易受到攻击。 我们发现,适用于 iPhone、iPad、MacBook 和 macOS 的 VPN 极有可能容易受到攻击,Windows 和 Linux 上的大多数 VPN 都容易受到攻击,而 Android 是最安全的,大约四分之一的 VPN 应用程序容易受到攻击。 无论 VPN 使用何种安全协议,发现的漏洞都可能被滥用。
由此产生的两种攻击称为 LocalNet 和 ServerIP 攻击。 当用户连接到不受信任的 Wi-Fi 网络时,两者都可能被利用。 我们的 ServerIP 攻击也可能被恶意 Internet 服务提供商利用。 这些攻击操纵受害者的路由表以诱骗受害者进入 在受保护的 VPN 隧道外发送流量,允许攻击者读取和拦截传输的流量。
LocalNet 攻击
在 LocalNet 攻击中,攻击者充当恶意 Wi-Fi 或以太网网络,诱骗受害者连接到该网络。 实现此目的的一种简单方法是克隆流行的 Wi-Fi 热点,例如“星巴克”。 连接后,攻击者会向受害者分配一个公共 IP 地址和子网:
在这里,攻击者想要拦截 IP 地址为 1.2.3.4 的 target.com 流量。为此, 攻击者告诉受害者本地网络正在使用子网
1.2.3.0/24。换言之,受害人被告知 1.2.3.1-254 范围内的 IP 地址可在本地网络中直接访问。 当受害者现在访问
target.com 时,将向 IP 地址 1.2.3.4 发送 Web 请求。 由于大多数 VPN 允许在使用 VPN 时直接访问本地网络,因此 Web 请求会在受保护的 VPN 隧道之外发送。
我们在 5 个平台上测试了 66+ 个 VPN,发现 iOS 上的所有 VPN 应用都容易受到攻击。 此外,macOS 上除了一个 VPN 客户端外,其他所有客户端都容易受到攻击,在 Windows 上,绝大多数 VPN 都容易受到攻击,而在 Linux 上,超过三分之一的 VPN 容易受到攻击。有趣的是,Android 上的 VPN 应用程序通常是最安全的,四分之一的应用程序容易受到 LocalNet 攻击。
ServerIP 攻击
在 ServerIP 攻击中,我们滥用了许多 VPN 不加密流向 IP 地址的流量的观察结果 VPN 服务器。这样做是为了避免对数据包进行重新加密。 例如,假设 VPN 服务器由主机名 vpn.com 和实际 IP 地址标识 VPN 服务器是 2.2.2.2。 假设攻击者想要拦截 IP 地址为 1.2.3.4 的 target.com 流量。 然后,攻击可以如下所示:
在这里,攻击者首先欺骗 DNS 回复,让 vpn.com 返回 IP 地址 1.2.3.4,该地址等于 IP 地址
target.com。然后,受害者将 在 1.2.3.4 与 VPN 服务器连接。向受害者保证仍然 成功创建 VPN
连接,攻击者会将此流量重定向到真正的 VPN 服务器。 在建立VPN连接时,受害者会添加一个路由规则,以便所有流量到VPN服务器, 在这种情况下,欺骗性的 IP 地址 1.2.3.4 在 VPN 隧道外发送。 当受害者现在访问 target.com 时,会向 1.2.3.4 发送 Web 请求。由于刚刚添加的路由规则, 此请求在受保护的 VPN 隧道外部发送。
我们发现 Windows、macOS 和 iOS 的内置 VPN 客户端容易受到攻击。Android 12 及更高版本不受影响。 大量
Linux VPN 也容易受到攻击。此外,我们发现大多数 OpenVPN 配置文件在使用时 对于易受攻击的 VPN 客户端,请使用主机名来标识
VPN 服务器,因此可能会导致易受攻击的行为。 有关 ServerIP 实验的更多详细信息,请参阅我们的论文。 为了防止攻击,应更新 VPN
客户端以通过 VPN 隧道发送所有流量,但流量除外 由 VPN 应用程序本身生成。
结论
我们目前还有一线希望,那就是这些VPN攻击都不适用于依赖SSL加密正确配置的服务。TLS、有效证书和 HTTP 严格传输安全性的组合真的确保安全。
Ref: TunnelCrack: Widespread design flaws in VPN clients (mathyvanhoef.com)
最新修订日期:2023年08月08日