由于只有两行代码触发的错误,在合并点击的情况下绕过最新版macOS的High Sierra中的安全提示仍然是有可能的。
在macOS下,自动化和可用性工具可以生成程序化鼠标事件,以在不需要时减少用户交互。开发人员可以使用Core Graphics框架或AppleScript脚本语言为应用程序自动执行低级用户输入事件,以进行应用程序间通信。
为了应对滥用风险,最新版本的macOS要求用户手动允许应用创建合成事件。操作系统还会过滤虚拟鼠标单击或在允许编程操作之前要求用户进行身份验证。
去年,安全研究人员和macOS黑客Patrick Wardle透露,Apple对模拟人工输入的保护并不适用于操作系统的鼠标键 - 这一功能允许从键盘控制鼠标指针。
黑客发现macOS通过鼠 标键完全信任合成事件,他能够以这种方式批准未经授权的操作,例如从Keychain转储密码,加载第三方内核扩展,绕过安全工具。所有这一切都具有普通用户的特权。
Apple发布了鼠标密钥破解的补丁,但它不够完美,允许与以前相同级别的未授权访问。
Wardle偶然发现High Sierra混淆了两个合成鼠标事件的序列,用于人类生成的动作。出于某种原因,操作系统将程序性点击转换为鼠标“向上”和鼠标“向下”命令,这是单击鼠标时发生的情况。
使攻击十分深入的原因通常是安全机制依赖于用户与UI组件的交互。使用此代码,恶意软件可以模拟鼠标单击,从而绕过这些限制。
研究人员指出,当前的缓解措施(过滤,系统完整性保护,可访问性访问,密码提示)限制了基于可编程点击事件的攻击,但并未完全消除它们。如果恶意软件可以安装内核扩展或访问未加密的Keychain内容,那么它就是用户的梦魇。
由于自动光标是未经授权行为的明显标志,因此有一种方法可以让用户处于黑暗中:在适当的时间使屏幕变暗。当用户处于非活动状态或设备进入睡眠模式时,这是实用的。
应该强调的是,Wardle发现的技术对于攻击者在系统上获得立足点后非常有用。即便如此,这也是绕过安全工具并因此隐藏用户恶意活动的简单方法。
值得庆幸的是,Mojave将会发生变化,因为计划于今年发布的下一版macOS将过滤所有合成事件。
Patrick Wardle今年在拉斯维加斯的Def Con黑客大会上展示了他的发现。演示文稿的幻灯片可在此处获得。
领取专属 10元无门槛券
私享最新 技术干货