苹果的私人转发可能导致系统忽视防火墙规则
苹果的私密中继可能导致系统忽视防火墙规则
2022年4月25日 隐私 应用
苹果的私密中继测试版功能会在不遵守系统防火墙规则的情况下,向苹果服务器发送数据,造成一种泄露,既我们也无法通过其他手段阻止它,除非完全禁用私密中继功能。
私密中继功能几乎类似于VPN隧道,或与Tor的工作原理相似。它在你的网络流量到达互联网之前,通过中继服务器以加密形式进行路由。该功能仍处于测试阶段,只在某些地区提供,并且需要付费的iCloud订阅才能启用。
当我们在Mullvad监控我们的网络连接并进行应用开发时,看到了一些应当不存在的东西:QUIC流量在VPN隧道外离开电脑!这就是泄露!我们追踪到发送数据的原因是私密中继功能,禁用私密中继后,泄露现象停止了。虽然我们不确定这些流量是否属于私密中继,但它确实触发了这一现象。
蜜糖商店官网值得注意的是,一旦在PFmacOS设备上的系统防火墙中添加任何防火墙规则,私密中继基本上会自行禁用。Mullvad VPN应用程序确实添加防火墙规则。当你连接Mullvad应用程序时,私密中继会声明已禁用。我们未发现用户流量与泄漏数据包之间有任何关联。我们认为这些流量只是一些呼叫苹果的心跳信号。我们不知道具体传输了哪些信息,但由于目标是苹果服务器,这强烈暗示你的本地网络和ISP你可能是macOS用户。
如何重现泄露
如果你拥有iCloud订阅,可以轻松自己测试。请按照以下步骤观察私密中继不遵守你的防火墙规则:
通过 sudo tcpdump udp port 443 设置对所有QUIC流量的监控。启用私密中继 并验证其是否正常工作它应该显示“私密中继已激活”的通知。如果在启动期间连接Mullvad VPN应用程序将阻止其正常工作。如果私密中继不可用,请卸载我们的应用程序或任何其他有问题的VPN客户端,重启并重新开始。确认可以观察到QUIC流量。在应用防火墙规则之前,若发送一些字节通过 nc u applecom 443,你应该也能在 tcpdump 中看到流量。在 /etc/pfconf 中添加一个PF规则以阻止QUIC流量,重新加载规则并启用防火墙。将 block return out quick proto udp from any to any port 443 添加到 /etc/pfconf。通过 sudo pfctl f /etc/pfconf 重新加载规则。通过 sudo pfctl F states 刷新任何防火墙状态。通过 sudo pfctl e 启用PF。验证你无法再通过 nc u applecom 443 发送流量。现在你可以验证,尽管通过 tcpdump 观察到仍有少量QUIC流量从你的计算机流出,但你将无法在UDP上与端口443的主机建立新的QUIC连接。这意味着私密中继并没有遵循与nc相同的规则。还值得注意的是,这些QUIC泄露会发生在物理网络接口上,即使你连接VPN并设置路由表将所有流量通过VPN接口路由。因此,它不仅绕过了防火墙规则,也没有遵守路由表。
要恢复你的计算机和防火墙,只需从 /etc/pfconf 中移除规则,然后再次运行 sudo pfctl f /etc/pfconf。
接下来该怎么办?
我们不知道有什么方法可以防止私密中继泄露这些流量,除了完全禁用该功能。禁用方法与启用相同。请参见苹果的说明。
由于流量是加密的,因此我们很难推测泄露的严重性,这意味着我们无法确切了解其内容。然而,这确实向你的本地网络和ISP发出了你在使用macOS设备的强烈信号。如果你的威胁模型无法接受这一点,你应该禁用私密中继。