AI在病毒分析中的实战应用:大规模逆向工程与恶意软件检测

文章详细介绍了VirusTotal如何利用人工智能技术对大规模苹果Mach-O二进制文件进行恶意软件检测,通过构建摘要层实现高效分析,发现了零日恶意软件并识别出传统杀毒引擎的误报案例,展示了AI在网络安全领域的实际应用。

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

TL;DR: 我们在生产环境中运行了新的基于人工智能的Mach-O分析流水线,不使用任何元数据或先前的检测记录,仅分析原始的苹果二进制文件。2025年10月18日,在9,981个首次出现的样本中,VT Code Insight发现了多个真实的Mac和iOS恶意软件案例,这些样本在提交时被零个杀毒引擎检测到,包括一个多阶段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流水线运行了每一个文件,仅使用原始二进制文件,无外部元数据,无众包情报,无先前的杀毒结果

以下是人工智能的完全独立分析与当天70多个传统杀毒引擎的聚合检测结果的比较:

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

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

拨开迷雾:AI作为误报过滤器

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

  1. 30个文件是微软引擎的误报。一经报告,微软迅速审查了这些案例,确认了问题,并于10月31日更新了其签名。我们感谢他们的快速响应。
  2. 3个文件被ClamAV使用签名Macos.Trojan.CrackedTool标记。虽然此标签在ClamAV的检测策略中在技术上是正确的(它标记来自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报告显示了此样本不仅在2025年10月18日首次分析时的状态,还包括了截至11月3日(超过两周后)的状态。迄今为止,没有杀毒引擎将其标记为恶意。

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

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

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

务实的现实

这项工作不是要取代传统的检测引擎,而是要补充它们并覆盖它们无法触及的盲点,其规模是人类团队根本无法企及的。

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

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

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

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