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