回顾2020年,我们看到了macOS攻击者策略的许多变化。其中包括转换为shell脚本,使用Rust和Go等替代编程语言,在Electron应用程序中打包恶意软件,以及通过隐写术击败Apple的公证安全检查。其中许多技术已经利用了新的或最近的变化或发展,但我们在macOS10.15及更高版本上观察到的一项技术采用了相反的策略,并利用了自MacOS9以来一直存在的旧技术来隐藏恶意软件有效负载用户和文件扫描工具。在本文中,我们研究了一个看起来像Bundlore广告软件的新变体如何将其有效负载隐藏在一个命名的资源分支中。Macintosh系统使用一种称为ResourceFork的技术来记录有关文件的信息,例如文件图标等。在提供流行软件“免费”版本的站点上很容易看到恶意软件传播,如本文所述。在我们的示例中,我们发现该恶意软件是由一个名为“mysoftwarefree”的网站提供的,该网站向用户承诺免费提供Office365副本。指示用户删除所有当前安装的Office,从Microsoft下载合法的免费试用版,然后从微软。恶意网站上的按钮下载“所需文件”以获取“无限制的完整版Office365ProPlus”。一旦用户上钩,一个名为“dmg”的文件就会被下载到用户的设备上。命名资源分支在挂载的磁盘映像中,事情与恶意软件站点所承诺的相去甚远。没有MSOffice的副本,但它看起来很像典型的“Bundlore/Shlayer”滴管。与这些磁盘映像一样,图形说明可帮助用户绕过Gatekeeper和Notarization提供的内置macOS安全检查。在macOSCatalina上,此绕过不会阻止XProtect在执行时扫描代码,但XProtect目前不知道此特定代码。如果我们转到终端并查看磁盘映像,令人惊讶的是,它看起来并不多。但请注意,权限列表中的@是微小的203字节Install.command文件的权限。这表明该文件具有一些扩展属性,这就是事情变得有趣的地方。我们可以使用xattr-l来列出扩展属性,好像有一个com.apple.ResourceFork属性,至少一开始它看起来像一个图标文件,这种情况并不少见,像这样的资源叉在历史上被用来存储东西像缩略图。但是,这个资源叉很大。如果我们向下滚动到底部,我们将看到大约141744字节的添加数据。更有说服力的是,如果我们检查Install.command文件本身,我们会发现它是一个简单的shell脚本,它公开了资源分支中真正包含的内容。从偏移量9092开始,脚本通过带有密码“oZwb”的funzip实用程序传输fork中的数据,以解密数据并将其放入Darwin用户TMPDIR,其随机名称以“Installer”为前缀。该文件原来是SHA256为43b9157a4ad42da1692cfb5b571598fcde775c7d1f9c7d56e6d6c13da5b35537的Mach-O。快速查看VirusTotal会发现,SentinelOne的静态AI(DFI)引擎将其识别为恶意文件,并被一些供应商标记为Bundlore变体。那么什么是资源分叉,攻击者为什么要使用它呢?资源分支是命名分支,一种用于存储结构化数据(例如图像缩略图、窗口数据甚至代码)的旧文件系统技术。资源分支不是将信息存储在特定偏移量的一系列字节中,而是将数据保存在结构化记录中,类似于数据库。有趣的是,资源分叉大小限制不会超过文件系统本身的大小,正如我们在本文中看到的那样,除非我们通过ls-l@或xattr列出文件的扩展属性,否则分叉在Finder或Terminal中是不可见的-湖使用资源分叉来隐藏恶意软件是一种我们以前从未见过的非常新颖的技术,但还没有得到很好的研究,即参与者使用这种技术的目的是什么。尽管以这种方式压缩二进制文件对查找器和终端都是隐藏的,但正如我们所见,任何阅读Install.commandshell脚本的人都可以轻松找到它。然而,许多传统的文档扫描仪并不采用这种技术。其他Bundlore变体在磁盘映像容器和应用程序包中使用加密文本文件,但扫描器可以快速学会找到这些文件。造成此类文件泄漏的原因之一是混淆或加密代码(通常是base64)的长度,这对于合法软件来说是不常见的。通过在命名资源分支中隐藏加密和压缩文件,攻击者显然希望逃避某些类型的扫描引擎。尽管此示例未进行代码签名,因此未经过Apple公证检查,但它仍然是一个公开漏洞,因为最近的Bundlore变体使用的隐写术技巧确实绕过了Apple的自动检查。结论将恶意软件隐藏在文件的资源分支中只是macOS恶意软件开发人员用来尝试逃避防御的最新技巧。虽然它不是特别复杂且易于手动发现,但它是一种真正隐蔽的方式来规避动态和静态AI检测引擎不支持的某些工具。示例哈希本文翻译自:https://labs.sentinelone.com/resourceful-macos-malware-hides-in-named-fork/
