Apple努力使其软件安全。除了首先防止恶意软件感染的主要保护措施外,公司工程师还制定了各种纵深防御措施,旨在减轻Mac受损后可能发生的损害。现在,前国家安全局黑客和macOS安全专家帕特里克·沃德尔(Patrick Wardle)暴露了一个主要的缺点,即一般会影响许多这些二级防御。
在周末拉斯维加斯Def Con黑客大会上的演讲中,Wardle表示,本地攻击者或恶意软件通过在用户界面级别定位它们来绕过许多安全机制是微不足道的。当这些安全措施检测到潜在的恶意操作时,它们将阻止该操作,然后显示警报或警告。通过滥用内置于macOS中的各种编程接口,恶意代码可以生成程序化点击以进行交互甚至消除此类警报。正如Wardle所说的那样,这种“合成点击”几乎立即起作用,并且可以以用户看不见的方式完成。
沃德尔告诉Ars,“通过无数安全提示进行综合交互的能力可以让你执行大量恶意行为。” “许多Apple的隐私和安全保护都可以被轻易绕过。”
例如,由于能够产生合成点击,攻击可以解除许多与Apple隐私相关的安全提示。在最新版本的macOS上,Apple添加了一个确认窗口,要求用户在安装的应用程序可以访问存储在Mac上的地理位置,联系人或日历信息之前单击“确定”按钮。Apple工程师补充了作为次要保护措施的要求。即使机器被恶意软件感染,但是如果没有所有者的明确许可,恶意应用程序将无法复制此敏感数据。
尽管Apple的许多安全警报试图检测并忽略合成点击,但Wardle发现即使在完全更新的High Sierra系统上,隐私警报也未受到保护。“如果恶意软件可以简单地解除警报,那么显示警报的重点是什么?” 他问。
过去,恶意软件滥用此类合成点击来执行各种恶意操作。例如,
鬼鬼祟祟的Genio广告软件,
DevilRobber货币挖掘恶意软件以及在13年内
从受感染的Mac上
窃取数百万张图像的
阴险的Fruitfly恶意软件都使用合成点击来绕过纵深防御警告。
Apple通过改进其操作系统的安全性来回应这些野外产品。现在,在最新版本的macOS中,安全警报和提示将忽略合成事件。至少那是个主意。在他的演讲中,Wardle首先阐述了攻击者如何滥用称为“鼠标键”的macOS功能,将键盘按键转换为鼠标移动。鼠标键允许用户通过按下某些键来向上,向下,向右或向左或向对角方向移动鼠标,如下图所示:
苹果
但是,Wardle说明了攻击者或恶意软件如何利用“鼠标键”事件生成可接受的合成鼠标点击,即使是“受保护的”安全警报也是如此。在创建概念验证攻击后,可以交互并解除钥匙串的访问提示并转储用户未加密的密码和私钥,他向Apple报告了该问题,Apple发布补充更新以将其修补为CVE-2017-7150。现在,安全警报会忽略“鼠标键”,而钥匙串访问始终需要用户的密码。
但即使在Apple发布补丁后,警告仍然可以被绕过。在测试较旧的攻击时,Wardle错误地复制并粘贴了一些代码。在没有意识到错误的情况下,他运行了代码,令他惊讶的是,即使在完全修补的High Sierra系统上,他也可以将合成点击发布到安全警报上。深入挖掘,他意识到他的错误代码发送了两个鼠标“向下”事件(而不是典型的鼠标向下,鼠标向上事件)。
“系统将第二次鼠标按下事件转换为鼠标按下事件”他指出。“但是,由于系统会生成此鼠标按下事件,因此可以与安全提示进行交互。” 由于这个问题,Wardle在做各种具有严重安全和隐私后果的事情时能够完全绕过警告。最令人担忧的是绕过了新推出的Apple安全机制,该机制旨在防止程序化加载“kexts”,这是与macOS核心交互的内核扩展。
Apple代表没有回复要求对此帖发表评论的电子邮件。沃德尔表示,旁路引发了有关公司如何推出改进措施的问题。“我没有试图寻找旁路,但我发现了一种完全打破基础安全机制的方法,”作为
Objective-See Mac工具和Digita Security首席研究官的开发人员,Wardle说道。“如果一个安全机制如此轻易地崩溃,他们是不是对此进行了测试?谈论它我几乎感到尴尬。“