macOS Archive工具漏洞 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com

macOS Archive工具漏洞

ang010ela 漏洞 2022-10-10 11:00:00
收藏

导语:macOS Archive工具漏洞可绕过Gatekeeper检查,未签名的应用也可以在不向用户展示安全提醒的情况下执行。

macOS Archive工具漏洞可绕过Gatekeeper检查,未签名的应用也可以在不向用户展示安全提醒的情况下执行。

Archive Utility是macOS系统自带的归档实用工具。Jamf Threat Labs安全研究人员在macOS Archive工具中发现了一个安全漏洞,漏洞CVE编号CVE-2022-32910。攻击者利用该漏洞可以构造压缩文件可以在不向用户展示安全提醒的情况下执行未签名的应用。

Archive工具可以提取不同压缩文件格式,包括7-ZIP、ZIP、TAR、CPIO、GZIP 和Apple Archive。一般情况下,双击支持的文件格式默认会使用Archive工具来处理压缩文件的解压缩。

漏洞分析

研究人员使用aa命令创建包含图片的压缩文件,目录结构如下所示:

aa archive -d images -o myPictures.aar

该压缩文件中含有images目录中的所有文件和文件夹,并输出名为myPictures.aar的压缩文件。如果压缩文件是下载的,且没有解压,目录结构如下所示:

然后,研究人员使用相同命令在该文件夹中添加一个文件4.png:

然后,再次下载压缩文件,并打开:

使用Archive工具解压后,可以看到明显的区别:myPictures.aar文件解压后,Archive工具会创建一个名为myPictures的文件夹,其中含有文件4.png,myPictures文件夹中不含有com.apple.quarantine 扩展属性,但是其中的文件4.png包含该属性。

在解压过程中,包括Archive Utility、AUHelperService和ArchiveService在内的多个进程都包含在内。研究人员使用苹果的终端安全工具监控了文件使用,发现ArchiveService进程将提取的内容写入到了以下临时目录:

/private/var/folders/{2-random-characters}/{31-random-characters}/T/com.apple.fileprovider.ArchiveService/TemporaryItems/NSIRD_ArchiveService_{6-random-characters}

Archive工具中包含一个名为_propagateQuarantineInformation的函数。ArchiveService进程确保quarantine属性在文件转移到目标位置前传播到了所有提取的内容中。并调用了libquarantine.dylib中的底层函数_qtn_file_apply_to_path,将quarantine属性应用到位于NSIRD_ArchiveService_XXXXXX 临时目录的解压文件中。

{
  "event": "ES_EVENT_TYPE_NOTIFY_RENAME",
  "file": {
    "proc_path": "/System/Library/CoreServices/Applications/Archive Utility.app/Contents/XPCServices/AUHelperService.xpc/Contents/MacOS/AUHelperService",
    "destination": "/Users/jpcore/Downloads/myPictures",
    "original": "/private/var/folders/pp/slmzl7sd41z3h1rc4wqdndxr0000gn/T/com.apple.fileprovider.ArchiveService/TemporaryItems/NSIRD_ArchiveService_0uhVx9",
    "pid": 3718
  },
  "timestamp": "2022-09-16 14:43:19"
}

但ArchiveService并未将quarantine属性应用到NSIRD_ArchiveService_XXXXXX文件夹,只应用到了提取的文件中。

AUHelperService调用_decompressMoveCopyResults 函数来将提取的内容从临时目录转移到目标位置,具体过程如下图所示:

· 函数提取路径到临时文件夹中的提取压缩文件中;

· 函数提取路径到下周的压缩文件中;

· 从路径中提取压缩文件的文件名;

· 移除压缩文件的文件扩展名。

· 最终,myPictures文件夹中没有quarantine属性。

漏洞利用

漏洞利用条件:

· 压缩文件的文件名必须包含.app扩展,比如test.app.aar;

· 在目标目录的根目录下(test.app/))有2个以上的文件或文件夹,这会引起临时目录自动重命名;

· 只有app中的文件和文件夹被压缩, test.app目录除外;

漏洞利用:

使用aa工具可以构造压缩文件:

aa archive -d test.app -o test.app.aar

用户下载和打开该压缩文件,使用Archive工具打开:

可以看到其中没有quarantine属性,因此可以绕过Gatekeeper检查,因此所有未签名的二进制文件可以执行。

研究人员使用Apple Archives格式进行了测试,但使用zip文件格式也可以完成绕过。

漏洞修复

研究人员于2022年5月31日将该漏洞提交给了苹果公司。苹果公司已于2022年7月20日修复了该漏洞。

苹果公司通过额外调用_qtn_file_apply_to_path来更新_propagateQuarantineInformation 函数的方式修复了该漏洞。修复后,临时文件夹NSIRD_ArchiveService_XXXXXX在重命名之前已经应用了quarantine属性。

本文翻译自:https://www.jamf.com/blog/jamf-threat-labs-macos-archive-utility-vulnerability/如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务