十五年来,Yara 已然成为全球恶意软件分析、威胁情报、威胁狩猎以及数字取证领域的基石。研究人员通过其灵活的语法和强大的模块化设计,定义基于文本或二进制模式的规则来分类和识别恶意软件。随着形势的变化,Yara 面临着日益严峻的挑战。随着规则数量的爆炸式增长(达到数万甚至数十万条)以及待扫描文件体积和数量的剧增,C 语言编写的 Yara 在内存安全管理、并发处理以及代码维护性方面的固有局限性开始暴露。

重大改进
2025 年 6 月 4 日 YARA-X 1.0.0 版本发布,VirusTotal 宣布原 Yara 项目正式进入"维护模式。VirusTotal 期望通过 Yara-X 解决历史三大核心问题:
① Yara 处理不可信输入文件的安全工具,C 语言的内存管理机制会带来内存安全性问题。在 C 语言实现中,解析畸形的 PE 文件或构造精巧的恶意样本时,解析器往往面临崩溃风险,甚至可能被利用执行任意代码。Yara-X 使用 Rust 重写,在编译阶段杜绝了绝大多数内存安全问题,从而显著提升了引擎的鲁棒性。基于 Rust 的语言特性,重新将 Yara-X 的扫描器设计为无状态的,在多核机器上实现近乎线性的性能扩展。
② Yara 在处理包含复杂循环或大规模正则表达式的规则时,性能急剧下降后容易导致扫描超时。Yara-X 引入 WebAssembly 作为中间层,将规则解析为抽象语法树并编译为 WASM 字节码,进而通过 JIT/AOT 转换为原生机器码,极大地提升了执行效率。另外,使用 WASM 后也可以支持跨平台以及沙箱隔离。
③ Yara 不同功能的代码紧密耦合在一起,难以进行扩展和重构。Yara-X 将解析器、编译器和扫描器分离,通过模块化设计降低二开与集成的门槛。

性能提升
经过数月的生产环境测试,VirusTotal 已经将 LiveHunt(实时扫描)与 RetroHunt(历史回扫)全量迁移到 Yara-X。
在 Yara 时代,扫描超时的文件大约有 2%。在 Yara-X 时代,扫描超时文件的比例下降到 0.2%。这意味着原本无法完成扫描的文件现在可以被成功检测,直接提升了威胁检测的覆盖率。
针对那些包含大量正则表达式和循环的"复杂"规则,Yara-X 表现出了 5 至 10 倍的速度提升(注:纯文本或者简单十六进制场景,Yara 仍然比 Yara-X 快 2 到 3 倍)。在 Yara 时代,出于稳定性的考虑,这些可能导致性能下降的规则会抛出告警并在特定场景下拒绝加载这些规则。在 Yara-X 时代,这些规则也能够正常加载运行,这让研究人员可以更好地专注于检测逻辑。例如检测比特币地址的规则,在 200MB 的文件上 Yara 需要运行 20 秒,Yara-X 只需要不到 1 秒即可。

迁移差异
VirusTotal 提供了 yara-x check 功能,可以批量扫描现有的规则库并检查语法错误。典型的差异如下所示:
① 现在使用负数索引(@a[-1])会报错
② 现在使用重复修饰符(global global rule)会报错
③ 现在要求 base64 的字符串最短长度为 3 个字符,并且在同一字符串上应用 base64 和 base64wide 并分别指定不同的自定义字母表
④ 现在无效的转义字符串会报错,强制要求使用双反斜杠表示字面反斜杠,消除 Windows 路径匹配中可能带来的歧义

Yara 时代,模块的结构体定义硬编码在 C 代码中,缺乏灵活性且难以与其他语言交互。Yara-X 时代,强制要求每个模块通过 Protobuf 来定义其输出结构。典型的模块更新包括:基于 Rust 的 nom 库,重写了 Mach-O 模块。新增了 LNK、DEX 模块,重写了 PE 模块与 ELF 模块。并且,Yara-X 已经不再推荐使用 Magic 模块和 Cuckoo 模块。
参考 Rust 编译器的输出风格,重构了新版本的命令行工具,会为用户输出上下文、行号以及修复建议。

引入 fmt 格式化工具,自动调整缩进、空格和对齐,为多人协作提供统一的规则风格。

说了这么多好处,接下来谈一谈大家的担忧:
1、大家担心 Rust 陡峭的学习曲线会阻碍第三方模块的生态繁荣。
2、大家担心会像 Python3 与 Python2 一样导致生态割裂。
3、大家担心 Python 接口库的变迁会带来适配工作量。
未来发展
摆脱了 C 语言后,Yara-X 后续可能会基于 Rust 语言特性引入更多高级功能。例如在规则匹配命中后,执行轻量级的操作。
VirusTotal 打算推出基于 Yara-X 解析器的语言服务器协议(LSP),帮助 VS Code 等 IDE 提供自动补全、自动跳转、即时错误检查等功能。
模块设计标准化后,社区可能会出现更多的模块来丰富 Yara-X 的功能。
总结
对于任何致力于构建现代化、可扩展威胁检测能力的安全团队而言,拥抱 Yara-X 不仅是技术升级的选择,更是应对未来复杂威胁的必经之路。
声明:本文来自威胁棱镜,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。