用更聪明的猫捕捉更聪明的老鼠

n1ght

版主

n1ght Rep
0
0
0
Rep
0
n1ght Vouches
Vouches
0
8 MONTHS
8 8 MONTHS OF SERVICE
n1ght 获得
0
0
0
获得
0
n1ght 凭证
0
0
0
凭证
0
主题
19
点赞
0
HakB
8
在社区成长 8 月
LEVEL 50 100 XP
 
从一开始,防病毒世界就是一场猫捉老鼠的游戏,恶意软件作者和防病毒工程师不断调整他们的代码以绕过或捕获对方。人工智能将游戏提升到了一个新的水平,恶意软件作者使用人工智能来改进他们的恶意软件[1],反病毒工程师使用人工智能来协助他们进行逆向工程[2]。
2025 年全球威胁形势报告
使用此报告可以了解最新的攻击者策略,评估您的暴露情况,并在下一次攻击攻击您的环境之前确定采取行动的优先顺序。
立即下载

借助 AI 协助进行(解)打包和(解)混淆​

如今,几乎所有恶意软件都被打包和/或混淆。人工智能(还)对加壳器没有帮助。我们在2025 年2 月的Linux/Prometei 僵尸网络样本上尝试过这一点,如果我们不帮助它,人工智能就会浪费时间来逆转加壳器的内部逻辑。
Figure 1: We asked AI (via Radare2’s r2ai plugin) to locate the main function of the malware. It instead located the main function of the packer. While it correctly identified a decompression routine—an expected component of the packer—it was unable to automatically unpack the binary or locate the actual malicious payload.

图1: 我们要求AI(通过Radare2的r2ai插件)来定位恶意软件的主要功能。相反,它定位了加壳器的主要功能。虽然它正确识别了解压缩例程(加壳程序的预期组件),但它无法自动解压二进制文件或找到实际的恶意负载。
公平地说,解包是一项艰巨的任务,目前的反汇编器(如IDA Pro 或Ghidra)也无法做到。这是AV 分析师必须事先执行的操作,然后提供解压的二进制文件以供进一步分析。
至于混淆,这个消息要好得多。虽然人工智能可能会失败并需要人工协助进行复杂的混淆,但它比标准混淆和垃圾代码工作得相当好。这对于防病毒行业来说是一个重大进步。在下面的示例中,AI 成功分析了Linux/Ladvix.E 的混淆算法并实现了一个有效的反混淆器。 [3]
Figure 2: Radare2 disassembler communicates with Claude 3.7 Sonnet, produces a de-obfuscator, and de-obfuscates the malware string to “/etc/cron.hourly/0”.

图2: Radare2 反汇编程序与Claude 3.7 Sonnet 通信,生成反混淆器,并将恶意软件字符串反混淆为“/etc/cron.hourly/0”。

用人工智能处理新框架和语言​

几年来恶意软件领域流行的另一种技术是使用特定框架(例如Flutter [4])或高级语言(Go、Rust)。目前,人工智能正在与Flutter 和Rust 恶意软件作斗争,这并不奇怪,因为这个领域仍然是新的。人类研究人员也在努力寻找解决方案!我们在Android/SpyLoan: 的“Flutter assembly”上尝试了AI 辅助,但它完全无能为力,没有映射函数名称或字符串等。但是,当我们以更智能的方式进行并为恶意软件生成Blutter[5] 输出时,AI 就能够重建非常可读的Dart 代码。
Figure 3: This is a reconstructed main function of the SpyLoan malware, based on the commented assembly generated by Blutter. The Dart code is easy to understand for an antivirus engineer.

图3: 这是基于Blutter 生成的带注释的程序集重建的SpyLoan 恶意软件的主要函数。 Dart 代码对于防病毒工程师来说很容易理解。
AI 在较旧的Delphi 语言中非常成功。我们假设原因是法学硕士接受了Delphi 和Pascal 材料的培训。尽管很旧,但Delphi 仍然奇怪地用于实施Linux/Filecoder.BR!tr(又名Trigona)勒索软件(2025 年4 月的样本)。
例如,Ghidra精心反编译了勒索软件的主要功能。我们可以立即识别Delphi 函数名称(例如SYSTEM_RANDOM),后面是它们的类型(LONGINT、LONGINT)和内部内存管理函数(FPC_ANSISTR_DECR_REF)。
Figure 4: Part of the main function of Linux/Filecoder, as decompiled by Ghidra.

图4: Ghidra 反编译的Linux/Filecoder 的部分主要函数。
前者很有趣,因为它们对应于恶意软件作者明确调用的代码。后者对于恶意软件分析并不感兴趣,因为它们是由编译器(在本例中为Free Pascal 编译器)插入来处理Ansi 字符串的。
当被要求反编译相同的函数时,人工智能会智能地删除这些内部调用,并生成比Ghidra 提供的更容易阅读的源代码。
Figure 5: Same part of Linux/Filecoder, decompiled with r2 + r2ai plugin

图5: Linux/Filecoder的相同部分,使用r2 + r2ai插件反编译

结论​

反病毒世界一直是一场猫捉老鼠的游戏。虽然人工智能接近击败标准字符串和代码混淆,但恶意软件作者可能会通过使用更复杂的混淆来适应。同样,恶意软件作者可以通过使用最新的框架和语言来强化逆向工程。那么,您可能会说,进展在哪里?
主要区别在于,防病毒行业这一次拥有了比对手更有帮助的新工具。我们迫使恶意软件作者使用更复杂的混淆以及更新的框架和语言。 Rust 比C 更安全?当然!但他们必须努力学习如何使用Rust、使用新库、处理错误等。在他们这样做的同时,我们的法学硕士可以更快地更新和培训这些新奇事物。是的,这是20 年来第一次我们的时间和工具对我们有利。

Fortinet 保护​

Fortinet 客户已通过我们的防病毒软件受到保护,免受本文中提到的所有恶意软件的侵害,如下所示: FortiGuard Labs 检测到具有以下AV 签名的样本:
Linux/Ladvix.E、Linux/Prometei.B、广告软件/SpyLoan!Android、Linux/Filecoder.BR!tr
FortiGuard AntiVirus 服务受FortiGate、FortiMail、FortiClient 和FortiEDR 支持。运行最新防病毒更新的Fortinet EPP 客户也受到保护。

IOC​

943e1539d07eaffa4799661812c54bb67ea3f97c5609067688d70c87ab2f0ba4 – Linux/Ladvix.E
cc7ab872ed9c25d4346b4c58c5ef8ea48c2d7b256f20fe2f0912572208df5c1a – Linux/Prometei.B
c65298b6cd5a1769c747a0c7fb589ffa12fdf832b64787283953eaa57b65bc1c – 广告软件/SpyLoan!Android
c08a752138a6f0b332dfec981f20ec414ad367b7384389e0c59466b8e10655ec – Linux/Filecoder.BR!tr

参考文献​

[1] https://www.hp.com/us-en/newsroom/press-releases/2024/ai-generate-malware.html
[2]https://arxiv.org/html/2504.07574
[3]https://asciinema.org/a/724126Asciinema Linux/Ladvix 反混淆视频
[4]https://www.fortiguard.com/events/5552/virus-bulletin-2024-android-flutter-malware
[5]https://github.com/worawit/blutter
 
顶部