苹果自己的程序绕过大苏尔的防火墙和 VPN
在 macOS Big Sur 中,Apple 已停止允许第三方开发人员进行某些类型的内核扩展。这是预料之中的事情,苹果公司开始在卡塔琳娜州发出警告。到目前为止,这并不适用于所有内核扩展,而仅适用于那些已经收到 Apple 新”系统扩展”格式对应版本的内核扩展。它是一种更安全、更稳定的技术,用于构建驱动程序和其他以前作为内核扩展运行的东西。
到目前为止,这些是处理防病毒、各种防火墙、输入设备和 USB 配件驱动程序的内核扩展。其他不太常见的品种仍然可以使用,例如虚拟文件系统。将来,我们的想法是完全删除内核扩展。
这对于开发者来说意味着巨大的变化,但在某些领域对于我们用户来说也是如此。这尤其适用于使用防火墙(如 Little Snitch)、VPN 服务和网络限制器(如 Tripmode)的用户(仅允许来自选定程序的流量,这样您就不会浪费有限的数据,例如,当您通过手机或 4g 连接时)调制解调器)。
Apple自己的进程绕过过滤器
像Little Snitch和Tripmode这样的程序现在必须使用苹果公司所谓的网络扩展API,这是一个编程接口,可以提供对先前存在于相应内核扩展中的大部分功能的访问。但苹果没有向任何人提及的是,存在一个存在例外的系统,这意味着这些程序无法再精确过滤所有网络连接。
您可以在文件 /System/Library/Frameworks/NetworkExtension.framework/Versions/A/Resources/Info.plist 中的”ContentFilterExclusionList”键下查看列表本身。在这里,我们可以找到与 FaceTime、iMessage、iCloud、地图和 Siri 等相关的进程。
如果您想亲自测试一下,请按照以下步骤操作:安装 Lulu 2.0 来自Patrick Wardle(您必须批准系统扩展的安装以及该程序过滤您的互联网流量)。然后在设置中激活阻止模式。这应该会关闭所有流量,并且它适用于浏览器、邮件等。现在尝试打开 FaceTime 并呼叫某人 – 它可以工作并且无法被阻止。
Tripmode 的开发者 David Dudok de Wit 在 Medium 有关该发现及其对用户造成的后果。特别是对于 Tripmode,这意味着您无法再阻止 iCloud 同步和 Messages 下载新消息,包括图片和电影等重型附件。结果是该程序或多或少变得毫无用处,因为它的主要目的是阻止所有互联网,除了当您拥有昂贵的连接时最重要的互联网。
《Little Snitch》的开发者 Objective Development 也是撰写了这一发现 – 并且他们理所当然地认为苹果会纠正它。 (更新,2021 年 1 月 14 日:Apple 确实似乎有 在 macOS Big Sur 11.2 beta 2 中删除了白名单豁免。)
VPN 也是如此
VPN 程序也无法再使用 Big Sur 中的内核扩展。一些开发人员已经转向新的系统附加变体。但就像防火墙一样,苹果的例外也适用于 VPN 连接。这意味着 FaceTime 和许多其他内置进程可以继续从您的公共 IP 地址与 Apple 服务器进行通信,而不是通过您连接到的 VPN 隧道。
我们自己的研究表明,这似乎仅适用于使用新系统扩展来实现自己的 VPN 协议的 VPN 程序。例如,当我们通过系统设置手动设置的 macOS 内置 L2TP / IPsec 进行连接时,Mac App Store 流量将通过 VPN 以及第三方程序 Windscribe 发送。 Windscribe 可以通过各种协议进行连接,例如 IKEv2 和 OpenVPN。它们不运行内核扩展,但仍照常工作。
不利于安全和隐私
从安全角度来看,这一变化是严重的。如果像 Little Snitch 和 Lulu 这样的防火墙无法看到或阻止来自您计算机的流量,您就不能依靠此类程序来防止恶意软件和欺诈程序”打电话回家”。 Objective See 的 Patrick Wardle 已经发现了一种技术,允许恶意程序从任何 Apple 的豁免进程中获取流量,以从计算机发送数据,正如他在这条推文中解释的那样:
在大苏尔,苹果决定免除许多应用程序通过他们现在需要第 3 方防火墙才能使用的框架(LuLu、Little Snitch 等)的路由。 类问:这是否会被恶意软件(滥用)使用也绕过这样的防火墙?乐A:显然是的,而且是微不足道的 pic.twitter.com/CCNcnGPFIB
—帕特里克·沃德尔 (@patrickwardle) 2020 年 11 月 14 日 块引用>
黑客和恶意软件创建者的攻击向量从”我们如何找到绕过 Little Snitch 的方法”到”Apple 的 56 个豁免进程中的哪一个可能存在我们可以利用的漏洞”。因此风险至少高出 56 倍。
苹果经常谈论隐私的价值,以及该公司为保护用户免受广告商窥探等所做的努力。但是,无法查看和阻止来自计算机的所有传出流量绝不能被解释为安全或隐私保护的改进。
我们将来会看到苹果是否会发表评论以及我们是否会得到任何解释。因为我们看不到任何合理的理由来规避防火墙或 VPN 连接。 “通过 VPN 发送所有流量”应该可以做到这一点 – 所有流量并不意味着”除了可靠的 Apple 进程之外的所有流量”。
但我们很难相信 Apple 会故意让所有流量无法通过 VPN 发送。这是许多公司购买和使用电脑的要求,苹果不想失去这个市场。由于系统内置的 VPN 功能似乎仍然可以正常工作,因此我们猜测,例外列表也适用于新的 VPN 程序是 Apple 的一个错误。
话虽如此,无法通过防火墙过滤所有流量(包括所有系统进程)是绝对不可接受的。
围绕证书检查的骚乱
除了上述问题之外,上周还发现了 Big Sur 的另一个问题(也适用于 Catalina),并在 Twitter 和各个 Mac 网站上进行了广泛讨论。这是关于系统如何检查开发者证书以确保您没有运行证书已被吊销的开发者的任何程序。
MacOS 有一个名为 trustd 的后台进程来处理此问题(它还检查安全网站的证书)。黑客 Paul Jeffrey 首先写道 Apple 服务器 ocsp.apple.com当许多用户尝试更新到 Big Sur 时,它会导致程序启动速度极其缓慢,即使在 Catalina 上也是如此。原因是,当您启动由开发人员加密签名的程序时,Gatekeeper 会检查证书是否仍然有效。阅读:Mac”回电”未加密以公证应用程序.
OCSP 代表在线证书状态协议。这是一个互联网标准,而不是苹果发明的东西。值得注意的是,在那里发送的消息没有加密,但这是因为协议本身就是这样设计的。 Paul Jeffrey 将其描述为 macOS 发送有关您打开的程序的信息,但 Jacopo Jannone 已采取了 仔细看看,这并不完全正确。首先,它是发送的开发者证书的序列号(无法区分同一开发者的不同程序),其次,它不是每次启动程序时,而是时不时地发送。
但有些开发人员只有一个程序,并且每个证书检查都会显示您的 IP 地址上的某人至少在当时使用过该特定程序。
然而,苹果已经回应了这一批评,并在 支持文档将开发一个新的证书控制系统,其中所有流量都被加密,以便您的互联网运营商和其他人无法监视您使用哪个开发人员的程序。系统还将更好地处理服务器问题(这样启动程序就不会花费半个永恒的时间),最后将添加一个系统设置,以完全关闭那些不想与他人共享任何数据的人的控制苹果。
如何保护自己
在我们得到 Apple 关于网络过滤的直接答复之前,您仍然可以采取一些措施来阻止 Apple 的应用程序。
第一种方法是关闭 macOS 中的部分系统完整性保护 (SIP),这样您就可以使用带内核扩展的 Little Snitch、Lilu、Tripmode 等旧版本。苹果无法阻止它们过滤自己的流量。因为这总体上降低了 Mac 的安全性,所以我们不会向普通用户推荐它,而是留给了解其工作原理并能够处理风险的专家。
Twitter 和其他地方的一些评论指出,在您想要过滤互联网流量的设备上运行的防火墙仍然无法百分百信任。渗透到您计算机中的高级恶意软件总能找到绕过计算机软件的方法。因此,第二种方法是使用外部防火墙,例如带有开源防火墙 pfSense 的高级路由器。这一点都不容易上手,也不像 Little Snitch 或 Lulu 那样用户友好。
Miles Wolbe,tinyapps.org 描述了编辑 Apple 例外列表的第三种方法 – 该方法考虑到 Apple 为 Big Sur 添加的所有保护措施,这并不是最简单的。
如果您对阻止 Apple 的流量不感兴趣,但想确保它通过 VPN,那么这会更容易一些。如果您的路由器已经有内置 VPN 客户端,您可以对其进行配置,使整个网络都位于 VPN 后面,如果没有,您可以购买一个。您还可以检查您当前的路由器是否支持开源软件,例如DD-WRT或OpenWrt,它们也内置VPN客户端。
希望苹果能够意识到这个问题并恢复过滤所有流量的能力。如果不出意外的话,据说这是许多公司的一种强迫,如果有一件事情我们可以信赖的话,那就是苹果正在用它的钱包思考。
我们有一些Mac 安全提示 a> 您可能会发现有用。另外,有关使用VPN 阅读:适用于 Mac 的最佳 VPN。 p>
本文最初发表于 Macworld 瑞典。凯伦·哈斯拉姆翻译。