尽管苹果最近努力防止恶意应用程序滥用合成事件功能,但它仍然是macOS的一个大安全漏洞。
上周末在摩纳哥举行的Sea安全会议上,苹果公司著名安全专家帕特里克·沃德尔(Patrick Wardle)在第二届会议上发表讲话,称macOS操作系统受到了零日影响,包括今天发布的新版本。
“零日”绕过了苹果为防止未经授权访问合成事件而设置的安全保护。
合成事件是一种macOS机制,允许应用程序自动化鼠标点击和键盘输入。它是为了自动化而创建的,可以通过核心图形框架或AppleScript脚本语言使用。
在过去的几年里,恶意软件如DevilRobber、FruitFly和Genieo滥用合成事件来自动操作受感染的主机。
滥用合成事件的恶意软件非常危险和具有侵入性,因为它们可以绕过苹果和第三方安全产品,自动取消警报。
此外,合成事件还可以加载内核扩展、转储受害者的密钥链密码、获取系统的地理位置数据、窃取联系人、调整操作系统偏好、访问网络摄像头、运行终端命令等等。
对于任何包含合成事件的恶意软件来说,这都是天大的限制——主要是由于该功能的设计和深度访问。
近两年来,沃德尔一直在研究苹果的对策,旨在防止滥用合成事件。
他之前展示了绕过苹果合成事件保护的两种方法[1,2],以至于苹果去年决定在默认情况下阻止对合成事件的访问。
但在上周末,沃德尔再次披露了绕过这些最新保护措施的新方法。
沃德尔通过电子邮件告诉ZDNet:“这是一份不断给予的礼物。”“而且随着苹果增加了更多的保护措施(隐私和安全机制),一次合成点击就能‘允许’这些保护措施,苹果的产品实际上变得越来越有价值。”
由于透明、同意和控制(TCC)系统,这项新技术是可能的。Wardle说TCC包含一个名为allowapplication .plist文件形式的兼容性数据库。
该文件列出了允许访问各种隐私和安全功能(包括合成事件)的应用程序和应用程序版本。
“这是一个苹果经常挣扎的领域——全面修补bug或bug类,”Wardle告诉ZDNet。“我以为他们在莫哈韦做得对,因为他们一开始似乎只是阻止所有合成点击。但一如既往,细节决定成败,”他说。
根据Wardle的说法,这个隐藏的TCC数据库包含一个漏洞,可以被利用来授予恶意威胁参与者对合成事件的访问权。
macOS应该验证请求访问合成事件的应用程序是否在TCC列表中。它通过验证应用程序是否已签名以及文件是否已被篡改来做到这一点。然而,沃德尔说,只执行了第一次检查。
这允许恶意威胁行动者以最小的访问权限下载AllowApplications中的任何应用程序。plist文件,与合成事件交互的附加代码,并运行它以绕过苹果对合成事件的现有禁令。
“例如,VLC在列表中,所以理论上,苹果试图验证当它看到一个名为VLC的应用程序时,它确实是VLC。通过检查应用程序的代码签名信息(即它是由VLC开发人员签名的,并且签名仍然有效),它是一个原始的(未修改的)版本,”Wardle说。
“问题是验证是不完整的,所以他们最后只检查应用程序是否由他们认为应该由谁签署(即VLC,由VLC开发人员签署),而不是可执行代码或应用程序资源。
“是的,你可以添加恶意代码,或者添加恶意资源等等,”Wardle补充道。
例如,VLC从它的app包中加载插件。所以我们可以添加一个新的(恶意的未签名的)插件。它被加载,并被允许产生合成点击,”沃德尔说。
这位安全研究员告诉ZDNet,他在一个多星期前就通知了苹果公司这个问题。“我相信一个补丁正在开发中,尽管我不知道它发布的时间,”沃德尔说。