根据 Check Point Research (CPR) 的详细分析,今年早些时候,随着基于 Rust 的新变种的推出,Akira 勒索软件实现了重大飞跃。该版本被称为 “Akira v2”,展示了勒索软件设计的战略性演变,它以 ESXi 裸机管理程序服务器为目标,并利用 Rust 的独特属性来增强其复杂性和跨平台能力。
Rust 在生成高度优化、安全和跨平台的二进制文件方面享有盛誉,这使其成为合法开发者的不二之选。不幸的是,这些特性正日益吸引着网络犯罪分子。正如 CPR 所解释的那样,“用 Rust 编写的可执行文件在逆向工程方面具有特别高的挑战性”。这使得它们成为 Akira 等复杂威胁的理想载体。”
Rust 强大的内联和单态化功能增加了汇编级的复杂性,给研究人员带来了巨大挑战。CPR指出:“语言的本质加上编译器优化输出的驱动力,往往会导致禁止反汇编。”
在其核心部分,Akira v2 展示了一个针对多线程优化的结构化控制流,从而提高了性能。该勒索软件的主执行线程调用了一系列函数–“Main -> default_action -> lock -> lock_closure”,这些函数在并行线程中解析参数、收集目标文件并执行加密。
该变种的一个显著特点是专注于 ESXi 服务器。默认情况下,它以 /vmfs/volumes 等目录为目标,这些目录通常与 VMware 虚拟机相关联,但也保留了加密其他 Linux 系统的灵活性。该勒索软件的操作员可以通过命令行标志对其行为进行微调,如 -stopvm 来关闭虚拟机,或 -exclude 来跳过特定文件。
Akira 采用混合加密方法,结合了对称和非对称密码。每个目标文件都会收到一个唯一的对称密钥,并使用硬编码的 Curve25519 公钥进行加密。对于对称加密,Akira 不同寻常地使用了 SOSEMANUK,这种流密码因其复杂性和以前在 Pridelocker 等勒索软件中的使用而闻名。
CPR 的分析显示,“SOSEMANUK 的实现完全是内联的,必须使用传统的识别有罪常量的方法来识别密码”。这种内联加上 Rust 的优化策略,使得破解勒索软件的加密过程成为一项艰巨的任务。
该恶意软件是为方便操作员使用而量身定制的。利用 indicatif 等 Rust 库,Akira 提供了完善的命令行界面(CLI),包括进度条、详细的状态更新和丰富多彩的输出。
勒索软件开发者采用 Rust 标志着网络安全领域的一个关键时刻。虽然 Rust 的设计原则为合法开发者带来了不可否认的好处,但也给安全专业人员带来了独特的挑战。CPR 的报告强调,需要能够 “隔离和识别拼接的内联代码 ”的新工具,以跟上 Rust 在恶意软件生态系统中日益普及的步伐。
通过采用 Rust,其开发者创造出了一种不仅更强大而且更难分析的变种。正如 CPR 总结的那样:“曾几何时,逆向工程 C 二进制文件也是原始而可怕的;最终,人们的理解能力提高了,工具也跟上了,这项任务变得不再那么艰巨。我们只能推断并希望,即使是 Rust 编译器偶尔痛苦的输出,也会遭遇同样的命运。”