执行摘要
-
继我们之前发布的Gemini 1.5 Pro 恶意软件分析文章之后,这次我们进行了测试,以查看轻量级的Gemini 1.5 Flash模型是否能够进行大规模恶意软件解剖。
-
Gemini 1.5 Flash 模型的创建是为了在保持性能的同时优化效率和速度,这使我们能够利用 Gemini 1.5 Flash 每分钟处理多达 1,000 个请求和每分钟 400 万个令牌。
-
为了评估我们的恶意软件分析流程的实际性能,我们分析了从 VirusTotal 传入流中随机选择的 1,000 个 Windows 可执行文件和 DLL。该系统有效地解决了误报、带有混淆代码的样本以及 VirusTotal 上检测率为零的恶意软件的情况。
-
平均而言,Gemini 1.5 Flash 处理每个文件需要 12.72 秒(不包括解包和反编译阶段),并以人类可读的语言提供准确的摘要报告。
介绍
在我们之前的文章中,我们探讨了如何使用 Gemini 1.5 Pro 来自动执行恶意软件二进制文件的逆向工程和代码分析。现在,我们将重点关注Gemini 1.5 Flash,这是 Google 新的轻量级且经济高效的模型,旨在将分析从实验室转变为能够进行大规模恶意软件剖析的生产就绪系统。Gemini 1.5 Flash 能够处理 100 万个令牌,速度惊人,可以管理大量工作负载。为了支持这一点,我们在 Google Compute Engine 上构建了一个基础设施,其中包含一个多阶段工作流程,其中包括规模化的解包和反编译阶段。虽然前景光明,但这只是克服准确性挑战和释放 AI 在恶意软件分析中的全部潜力的漫长旅程的第一步。
VirusTotal平均每天分析 120 万个新文件,这些文件在该平台上从未出现过。其中近一半是二进制文件(PE_EXE、PE_DLL、ELF、MACH_O、APK 等),逆向工程和代码分析可以帮上忙。传统的手动方法根本无法应对如此大量的新威胁。构建一个能够及时高效地自动解压、反编译和分析如此大量代码的系统是一项重大挑战,而 Gemini 1.5 Flash 旨在帮助解决这一挑战。
Gemini 1.5 Flash 模型以 Gemini 1.5 Pro 的广泛功能为基础,旨在优化效率和速度,同时保持性能。两种模型都具有相同的强大、多模式功能,能够处理超过 100 万个标记的上下文窗口;然而,Gemini 1.5 Flash 专为快速推理和经济高效的部署而设计。这是通过注意力和前馈组件的并行计算以及使用在线蒸馏技术实现的。后者使 Flash 能够在训练期间直接从更大、更复杂的 Pro 模型中学习。这些架构优化使我们能够利用 Gemini 1.5 Flash 每分钟处理多达 1,000 个请求和每分钟 400 万个标记。
为了说明此管道的工作原理,我们将首先展示 Gemini 1.5 Flash 分析反编译二进制文件的示例。然后,我们将简要概述大规模解包和反编译的上述步骤。
分析速度和示例
为了评估恶意软件分析流程的实际性能,我们分析了从 VirusTotal 传入流中随机选择的 1,000 个 Windows 可执行文件和 DLL。这种选择确保了样本的多样性,既包括合法软件,也包括各种类型的恶意软件。让我们印象深刻的第一件事是 Gemini 1.5 Flash 的速度。这与Google Gemini 团队论文中强调的性能基准一致,其中 Gemini 1.5 Flash 在多种语言的文本生成速度方面始终优于其他大型语言模型。
我们观察到的最快处理时间仅为 1.51 秒,而最慢的处理时间则为 59.60 秒。平均而言,Gemini 1.5 Flash 处理每个文件需要 12.72 秒。值得注意的是,这些时间不包括解包和反编译阶段,我们将在本文后面进一步探讨这些阶段。
这些处理时间受输入代码的大小和复杂性以及结果分析的长度等因素的影响。重要的是,这些测量涵盖了整个端到端过程:从将反编译的代码发送到Vertex AI上的 Gemini 1.5 Flash API ,通过模型的分析,到在我们的 Google Compute Engine 实例上接收完整的响应。这种端到端视角凸显了 Gemini 1.5 Flash 在实际生产场景中可实现的低延迟和速度。
示例 1:在 1.51 秒内消除误报
在我们分析的 1,000 个二进制文件中,这个文件处理速度最快,凸显了 Gemini 1.5 Flash 的惊人速度。文件 goopdate.dll (103.52 KB) 在 VirusTotal 上触发了一次防病毒检测,这是一种常见情况,通常需要耗时的手动审查。
想象一下,此文件触发了您的 SIEM 系统中的警报,您需要快速得到答案。Gemini 1.5 Flash 可以做到,只需 1.51 秒即可分析反编译代码并提供清晰的解释:该文件是“BraveUpdate.exe”应用程序的简单可执行启动器,可能是 Web 浏览器组件。这种快速的代码级洞察使分析师可以自信地将警报视为误报,从而防止不必要的升级并节省宝贵的时间和资源。
示例 2:解决另一个误报
另一个例子是,文件 BootstrapPackagedGame-Win64-Shipping.exe (302.50 KB) 被 VirusTotal 上的两个防病毒引擎标记,同样需要进一步审查。
Gemini 1.5 Flash 仅用 4.01 秒就分析了反编译代码,发现该文件是一个游戏启动器。Gemini 详细介绍了该样本的功能,包括检查 Microsoft Visual C++ Runtime 和 DirectX 等先决条件、定位和执行可再分发安装程序,以及最终启动主游戏可执行文件。这种理解水平使分析师能够自信地将该文件归类为合法文件,避免在潜在的误报上花费不必要的时间和精力。
示例 3:混淆代码的最长处理时间
在我们的分析过程中,文件 svrwsc.exe (5.91 MB) 的处理时间最长,为 59.60 秒。反编译代码的大小以及 XOR 加密等混淆技术的存在等因素可能导致分析时间较长。尽管如此,Gemini 1.5 Flash 还是在不到一分钟的时间内完成了分析。考虑到手动逆向工程这样的二进制文件可能需要人类分析师几个小时,这是一个了不起的成就。
Gemini 正确地判定该样本是恶意的,并指出了其后门功能,该功能旨在窃取数据并连接到位于俄罗斯域的命令和控制 (C2) 服务器。分析提供了大量 IOC,例如潜在的 C2 服务器 URL、用于进程同步的互斥锁、更改的注册表项和可疑文件名。这些信息使安全团队能够迅速调查和应对威胁。
示例 4:加密货币挖矿软件
此示例显示 Gemini 1.5 Flash 正在分析名为 colto.exe 的加密矿工的反编译代码。值得注意的是,该模型仅接收反编译代码作为输入,没有来自 VirusTotal 的其他元数据或上下文。在短短 12.95 秒内,Gemini 1.5 Flash 进行了全面分析,将该恶意软件识别为加密矿工,突出显示混淆技术,并提取关键 IOC,例如下载 URL、文件路径、采矿池和钱包地址。
示例 5:使用不可知论方法理解合法软件
此示例展示了 Gemini 1.5 Flash 在 16.72 秒内分析了名为 3DViewer2009.exe 的合法 3D 查看器应用程序。即使是好软件,了解程序的功能对于安全目的也很有价值。需要强调的是,就像前面的示例一样,该模型仅接收反编译的代码进行分析,而不接收来自 VirusTotal 的任何其他元数据,例如二进制文件是否由受信任的实体进行数字签名。传统的恶意软件检测系统通常会考虑这些信息,但我们采用以代码为中心的方法。
Gemini 1.5 Flash 成功识别了应用程序的核心目的(加载和显示 3D 模型),甚至识别了它处理的 3D 数据的特定类型 (DTM)。分析重点介绍了 OpenGL 的渲染、配置文件加载和自定义文件类的数据管理。这种理解水平可以帮助安全团队区分合法软件和可能试图模仿其行为的恶意软件。
这种只关注功能的代码分析方法对于审查数字签名的二进制文件尤其有用,因为这些二进制文件可能并不总是获得与未签名文件相同级别的安全分析。这为识别潜在的恶意行为开辟了新的可能性,即使在所谓值得信赖的软件中也是如此。
示例 6:揭露零时键盘记录器
此示例展示了分析恶意行为代码的真正威力:检测传统安全解决方案遗漏的威胁。可执行文件 AdvProdTool.exe (87KB) 已提交给 VirusTotal,在首次上传和分析时,它避开了所有防病毒引擎、沙箱和检测系统。然而,Gemini 1.5 Flash 揭示了它的本质。仅用 4.7 秒,该模型就分析了反编译的代码,将其识别为键盘记录器,甚至揭示了窃取数据的 IP 地址和端口。
分析重点指出了代码使用 OpenSSL 与端口 443 上的 IP 地址建立安全的 TLS 连接。至关重要的是,Gemini 指出了键盘输入捕获函数(GetAsyncKeyState、GetKeyState)的可疑使用及其与安全通道上数据传输(SSL_write)的连接。
这个例子强调了代码分析在开发早期识别零时威胁的潜力,这个键盘记录器似乎就是这样。它还凸显了 Gemini 1.5 Flash 的一个关键优势:分析代码的原始功能可以揭示恶意 意图,即使被元数据或检测规避技术伪装。
工作流概述
我们的恶意软件分析流程包括三个关键阶段:使用 Gemini 1.5 Flash 进行解包、反编译和代码分析。两个关键过程推动前两个阶段:大规模自动解包和反编译。我们利用 Mandiant Backscatter(我们内部的基于云的恶意软件分析服务)来动态解包传入的二进制文件。然后,解包的二进制文件由运行在 Google Compute Engine 上的 Hex-Rays 反编译器集群进行处理。虽然 Gemini 能够分析反汇编和反编译的代码,但我们选择在流程中使用反编译。决定性因素是反编译的代码比反汇编的代码简洁 5-10 倍,考虑到大型语言模型的令牌窗口限制,这是一个更有效的选择。这个反编译的代码最终被输入到 Gemini 1.5 Flash 进行分析。
通过在 Google Cloud 上协调此工作流程,我们可以处理大量二进制文件,包括每天提交给 VirusTotal 的超过 500,000 个新二进制文件。
Mandiant 背向散射
我们内部的 Mandiant 恶意软件分析反向散射服务托管在 Google Compute Engine 上,可提供可扩展的恶意软件配置提取。作为提取配置的一部分,Backscatter 还会根据我们的 VirusTotal 管道执行恶意软件反混淆、解密和解包,以将恶意软件分解为工件。从这些工件中提取配置,并使用生成的 IOC 在我们的 Google 威胁情报平台中识别和跟踪数百个恶意软件家族中的恶意软件威胁和参与者。工件(包括解包的二进制文件)也会重新提交回管道,允许 Gemini 1.5 Flash 等工具执行其他处理,以扩展我们对恶意软件使用前几个阶段识别的 IOC 执行的操作的了解。
Hex-Rays 反编译器
我们的 Hex-Rays IDA Pro 反编译器集群托管在 Google Compute Engine 上,为该管道提供了可扩展的反编译能力。我们利用了新的 IDA LIB,这是专为自动化工作流程设计的 IDA Pro 的无头版本,计划于 2024 年第三季度发布。该集群与我们的管道无缝集成,从由 Mandiant Backscatter 提供的 Google Cloud Pub/Sub 队列中读取解压的二进制文件。然后将生成的反编译伪 C 代码存储在 Google Cloud Storage 存储桶中,以供 Gemini 1.5 Flash 分析。目前,集群中的每个节点每小时可以反编译超过 3,000 个文件,确保我们能够跟上大量传入二进制文件的步伐。
挑战与持续发展
正如预期的那样,我们的测试突出了该流程的一个关键方面:Gemini 1.5 Flash 的性能在很大程度上取决于前面的解包和反编译阶段的质量。例如,如果解包阶段无法完全解包新的或未知的加壳程序,反编译器将只能提取加壳程序本身的代码,而无法提取隐藏在其中的原始程序逻辑。在这种情况下,Gemini 会正确报告它正在分析执行解包、解密或反混淆操作的程序,并且无法分析加壳程序隐藏的代码的真实用途。
同样,反编译代码的质量直接影响 Gemini 理解和分析程序行为的能力。反编译代码是 Gemini 分析的原材料,因此代码中的任何错误或不一致都会影响最终报告。此外,Gemini 还必须应对各种代码级混淆方法,包括攻击者采用的新方法,这要求它在这个不断变化的环境中不断调整和提高其分析能力。
这种相互依赖性强调了持续改进流程所有三个阶段的重要性。此顺序工作流程中任何部分的薄弱环节都会直接影响后续阶段的性能。这些阶段的输出改进将直接转化为 Gemini 更成功的分析。因此,我们正在进行的开发工作不仅侧重于增强 Gemini 的分析能力,还侧重于改进解包和反编译阶段,以确保它们提供最高质量的分析输出。
在反编译方面,我们正在与 Hex-Rays 密切合作以增强其反编译器,重点关注三个关键领域:
-
改进特定语言的结构识别:我们的目标是增强反编译器识别特定编程语言所特有结构的能力。这包括 C++、Rust 和 Golang 代码中的 try-catch 语句或类成员定义等元素。通过向反编译器添加新的语义层,我们可以使其更有效地解释底层代码。这会带来更准确、更易读的输出,最终有利于 Gemini 的分析。
-
更有意义的函数和变量命名:反编译代码中函数和变量的清晰且描述性的名称可显著帮助 Gemini 进行分析。我们正在探索在反编译过程中生成此类名称的技术,包括为此目的集成 Gemini 的可能性。
-
更丰富的上下文信息:除了改进反编译代码之外,我们还在研究为模型提供更丰富上下文数据的方法。这可能包括数据流图和控制流图等可视化表示,甚至包括 IDA Pro 的 IDB 的完整导出。这些附加信息可以提供有关程序整体结构和逻辑的宝贵见解,从而实现更彻底、更准确的分析。
Google 威胁情报:下一步发展
这只是我们利用 AI 进行大规模威胁分析的探索的开始。我们很高兴地宣布,这些类型的代码分析报告将很快集成到 VirusTotal 的 Code Insight 部分。借助 Gemini 1.5 Flash 的速度和可扩展性,此次集成将为 VirusTotal 社区提供有关二进制文件行为的宝贵见解。
为了获得更强大的分析体验,我们正在Google Threat Intelligence中开发此管道的高级版本。此实现将利用 Gemini 1.5 Pro 的功能,该功能由 AI 代理增强,可以使用专门的恶意软件分析工具并关联来自 Google、Mandiant 和 VirusTotal 的威胁信息。此高级分析将在我们的私人扫描服务中提供,确保所处理内容的机密性。观看我们最近的网络研讨会,了解有关 Google Threat Intelligence 中 Gemini 的更多信息。
我们将继续分享我们在人工智能驱动的威胁分析方面的进展和新进展,努力让数字世界变得更加安全。在GSEC 马拉加,我们致力于突破网络安全的极限,探索应用人工智能保护用户免受不断演变的威胁的新方法。
文件名和SHA-256
goopdate.dll
0d2115d3de900bcd5aeca87b9af0afac90f99c5a009db7c162101a200fbfeb2c
BootstrapPackagedGame-Win64-Shipping.exe
07db922be22e4feedbacea7f92983f51404578bd0c495abaae3d4d6bf87ae6d0
svrwsc.exe
0cdb71e81b07247ee9d4ea1e1005c9454a5d3eb5f1078279a905f0095fd88566
colto.exe
091e505df4290f1244b3d9a75817bb1e7524ac346a2f28b0ef3c689c445beb45
3DViewer2009.exe
08f20e0a2d30ba259cd3fe2a84ead6580b84e33abfcec4f151c5b2e454602f81
AdvProdTool.exe
04af0519d0dbe20bc8dc8ba4d97a791ae3e3474c6372de83087394d219babd47
原文始发于微信公众号(Ots安全):使用 Gemini 1.5 Flash 扩展恶意软件分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论