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