大规模逆向工程:基于AI的苹果二进制文件恶意软件检测

VirusTotal推出基于AI的Mach-O分析管道,能够在零检测情况下识别新型Mac和iOS恶意软件。该系统通过代码摘要技术分析原始二进制文件,成功发现多阶段AppleScript信息窃取器和iOS凭据窃取工具,并帮助识别30个杀毒软件误报案例。

大规模逆向工程:基于AI的苹果二进制文件恶意软件检测

TL;DR: 我们在生产环境中运行了新的基于AI的Mach-O分析管道,无需元数据,无需先前检测,仅分析原始苹果二进制文件。在2025年10月18日,从9,981个首次出现的样本中,VT Code Insight发现了多个真实的Mac和iOS恶意软件案例,这些案例在提交时具有0个杀毒软件检测,包括一个多阶段AppleScript信息窃取器和一个iOS凭据窃取工具。它还帮助识别了30个杀毒软件误报,后经确认并修复。

作者:Bernardo Quintero、Tom Bennett和Paul Tarter

挑战:大规模逆向工程

Code Insight的长期目标雄心勃勃但表述简单:使用AI实时推理每个到达VirusTotal的文件。每天超过两百万个样本,因此可扩展性和效率不是可有可无,而是必需条件。

我们在2023年初开始了这一旅程,分析小于25 KB的小型PowerShell脚本,专注于快速、上下文有限的推理。随着Gemini的令牌容量增长,我们扩展了对更大文件和更丰富格式的支持:包含宏的Office文档、包含嵌入对象的PDF以及包类型,如NPM、SWF、SVG、MCP、CRX、VSIX等。每一步都推动了Code Insight能够自动解释的边界。

最终,我们达到了编译二进制文件,这是最具挑战性的类别,因为它们的体积、复杂性和低级结构。使用大型语言模型分析本地代码并不简单:Mach-O二进制文件可能非常庞大,完整的反编译或反汇编通常超过甚至最大模型上下文,同时对于高容量生产管道来说太慢且昂贵。

为了使这变得可行,我们构建了一个基于剪枝的摘要层。我们不是向Gemini提供完整的反编译或嘈杂的反汇编,而是首先提取最具信息性的元素:代码入口点、关键导入和导出、相关字符串以及选定的函数摘要,使用Binary Ninja的高级中间语言(HLIL)处理本地代码。目标不是重建完整的程序逻辑,而是保留足够的结构以进行有意义的推理。

这种蒸馏后的表示舒适地适应Gemini的100万令牌上下文窗口,并允许我们在单个LLM调用中生成简洁、人类可读的分析师摘要,无论二进制文件的大小如何。这是在深度和可扩展性之间的务实平衡,足够好以进行推理和快速首次分类,又足够高效以跟上每天到达VirusTotal的新文件的持续流动。

24小时压力测试

2025年10月18日,VirusTotal收到了9,981个独特的Mach-O二进制文件,这些文件之前从未被我们的平台见过。我们通过新的Code Insight管道运行了每一个文件,仅使用原始二进制文件,没有外部元数据,没有众包情报,也没有先前的杀毒软件结果。

以下是AI的完全独立分析与同一天来自70多个传统杀毒引擎的聚合检测结果的比较:

  • 传统AV检测:67个二进制文件被一个或多个引擎标记为恶意。
  • Code Insight检测:164个二进制文件被识别为恶意。

绝对数字很有趣,但真正的洞察来自两组之间的差异。

清除迷雾:AI作为误报过滤器

手动审查确认了Code Insight的解释是准确的:

  • 30个文件是微软引擎的误报。一经报告,微软 promptly 审查了案例,确认了问题,并于10月31日更新了他们的签名。我们感谢他们的快速响应。
  • 3个文件被ClamAV标记为签名Macos.Trojan.CrackedTool。虽然这个标签在ClamAV的检测策略中 technically 正确(它标记由替代市场如MacKed签名的软件),但Code Insight正确识别了这些二进制文件没有表现出固有的恶意行为。

在安全运营中心环境中,即使是单个这样的误报警报也可能在清除前消耗分析师数小时的时间。虽然VirusTotal在全球范围内运营并从许多独立来源聚合样本,但相同的模式适用于任何组织的网络:不必要的警报产生噪音并消耗资源。Code Insight展示了AI推理如何帮助更快、更一致地分类这些案例,协助而非取代人类判断。

寻找针头:零日检测

除了过滤误报之外,Code Insight还发现了近100个传统引擎在分析时完全遗漏的二进制文件。其中许多确实可疑,范围从密钥生成器和广告软件到具有过多权限的灰色软件实用程序,例如某些开发者电子学习工具或通常在App Store之外分发的Roblox作弊工具。

也就是说,并非每个"恶意"判定都是黑白分明的。因为Code Insight孤立地分析二进制文件,没有关于其周围环境或预期用途的上下文,它偶尔会谨慎行事。例如,来自Hopper反编译器的一个MCP组件在行为方面被准确描述(持久XPC通信、基于JSON的客户端-服务器协议、类似API的命令处理程序),但在其合法应用程序上下文中最终是良性的,作为MCP服务器而不是恶意的持久C2通道。在这种情况下,我们有一个准确的技术描述,但Code Insight发出的最终判定是误报。

这些偶尔的灰色区域案例是基于AI的推理系统自然学习曲线的一部分。尽管如此,Code Insight的绝大多数发现技术上是合理的,其详细解释允许分析师基于实际能力而非静态签名做出快速、明智的决策。

在这些发现中,我们还通过手动逆向工程和可重现行为确认了几个明确未检测到的恶意软件案例。下面我们重点介绍两个代表性示例,一个来自macOS,另一个来自iOS,两者都被AI捕获,但在第0天对传统防御完全不可见。

1. 多阶段macOS投放器(0检测)

SHA-256: 9adef73a6255f6bcb203e84cbe9304d000f3c5354d3d7bf3fc3b2a0128b624c3

Code Insight立即识别出该二进制文件的敌对意图,将其描述为多阶段威胁。它不仅仅是标记它,还映射了攻击链:

“该二进制文件是一个多阶段恶意软件,从C2服务器下载并执行第二阶段的AppleScript有效载荷,并泄露本地数据。它首先连接到https://foggydoxz.xyz/dynamic以下载AppleScript,将其保存到/tmp/test.scpt,并使用/usr/bin/osascript执行它。随后,它读取/tmp/osalogging.zip并通过POST请求将其泄露到https://foggydoxz.xyz/gate。该恶意软件还绕过TLS证书验证以保护其C2通信。”

手动逆向工程不仅确认了判定,还确认了这个AI生成评估的每一个细节。

上面的屏幕截图显示了这个样本在VirusTotal上随时间的检测演变。当它在10月18日首次到达时,没有杀毒引擎将其标记为恶意,但Code Insight已经将其识别为多阶段macOS投放器。在接下来的几天里,传统检测逐渐赶上:三个引擎在九天后标记它,到10月28日有十一个引擎。这种模式对于真正新颖的威胁很常见:AI推理可以在签名或信誉系统更新之前暴露可疑行为,为分析师提供原本不存在的早期预警窗口。

2. 带有网络钓鱼功能的iOS越狱工具(0检测)

SHA-256: 333913409c1e22b5da03c762cbb7d99a9d38ecdf0231cb9ac6db00efc6b3bd97

这个样本伪装成越狱iOS设备的动态库,声称可以解锁Adobe Lightroom中的高级功能。Code Insight超越了盗版功能,发现了专注于凭据窃取的次要有效载荷。

AI正确识别出它使用方法混淆/挂钩不仅绕过订阅检查,还注入一个虚假的登录提示。它突出了用于隐藏泄露通道的混淆机制,包括一个硬编码的、混淆的Telegram Bot API令牌和用于隐藏命令字符串的自定义加密例程。

Code Insight的摘要写道:

“这是一个用于越狱设备的iOS动态库(工具),设计为注入到Adobe Lightroom应用程序进程中。其主要目的是修改目标应用程序的功能。它表现出几种恶意行为:它使用方法混淆(例如sub_41e564)来挂钩函数,在运行的应用程序顶部显示自定义UI覆盖,并采用广泛的字符串混淆和自定义加密例程(例如sub_433b0csub_415b68)来隐藏其功能。关键IOC包括安装路径/Library/MobileSubstrate/DynamicLibraries/Lightroom.dylib和一个指向Telegram频道的URL(https://t[.]me/blatants]),可能用于C2或分发。这些特征与在受损主机应用程序上下文中设计用于盗版、凭据窃取或网络钓鱼的恶意软件一致。”

专家的手动逆向工程审查确认并扩展了AI的评估。人工分析将该样本描述为一个恶意的动态库,作为双重用途工具功能:(1) 它使用方法挂钩绕过Lightroom的高级功能检查(通过替换订阅验证例程以始终返回成功),以及(2) 它实现了一个网络钓鱼功能,显示一个令人信服的虚假登录提示以捕获Adobe凭据。被盗凭据然后通过混淆的Telegram Bot API令牌和Chat ID泄露,使用字符串混淆和轻量级加密来隐藏Telegram URL和令牌。简而言之:手动审查证实了AI的技术描述并确认了端到端的泄露机制。

下面的VirusTotal报告显示了这个样本不仅在10月18日首次分析时的状态,而且在11月3日,超过两周后的状态。迄今为止,没有杀毒引擎将其标记为恶意。

此外,在分析这个样本的同一天,Code Insight检测到多个其他使用相同注入框架的二进制文件,表明一个有组织的活动而不是孤立的样本。

对IOC中引用的Telegram频道(https://t[.]me/blatants)的进一步调查揭示,它托管了一个名为Blatant’s iPA Library的大规模操作,拥有超过38,000名订阅者。该组织分发自动化机器人(InjectBot、PatchBot、PaidAppScraper和FileDownloader),这些机器人宣传能够将.dylib有效载荷注入iOS .ipa应用程序、修补高级功能并共享修改后的包。这个基础设施完美匹配AI生成报告中描述并通过手动逆向工程确认的行为:一个用于应用程序盗版和凭据窃取的双重用途生态系统,由Telegram的bot API提供支持。

这些例子说明了AI驱动逆向工程的力量和实用性。即使没有上下文或先验知识,模型也可以推理复杂的二进制文件,提取意图,并暴露对静态或基于签名的方法仍然不可见的行为。

务实现实

这项工作不是关于替换传统检测引擎,而是关于补充它们并在人类团队根本无法匹配的规模上覆盖它们的盲点。

直到最近,逆向工程和深度代码分析还是保留给人类分析师的任务。即使在大规模操作中,也只有不到1%的新文件经历过那种级别的审查,仅仅因为手动逆向工程无法扩展。然而,那些正是往往滑过签名或基于ML的检测的样本,真正新颖的威胁。

通过每天在数百万文件上自主执行这种初级分析师级别的推理,VT Code Insight将这种更深层次的理解带给每一个新样本,而不仅仅是通常到达人类分析师桌面的少数样本。

这是一个务实的转变:AI推理在其可扩展的地方,人类专业知识在最重要的地方,帮助防御者比以往任何时候都看得更远、更快、上下文更丰富。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计