RIFT:微软的新开源工具有助于分析Rust恶意软件

  微软的威胁情报中心发布了一个名为RIFT的新工具,以帮助恶意软件分析师识别隐藏在Rust二进制文件中的恶意代码。虽然Rust因其速度和内存安全性而越来越受欢迎,但这些相同的特质使用Rust编写的恶意软件更难分析。RIFT旨在消除这种复杂性,使工作更轻松。

奥佩斯

RIFT静态分析仪概述(来源:微软)

为什么Rust恶意软件很难分析

为了展示挑战,微软进行了一次测试。他们用C++和Rust编写了一个简单的下载器。两者都做了同样的工作:下载数据并保存它。然后他们比较了二进制文件。C++版本的功能不到100个,其二进制文件不到20 KB。Rust版本有近10,000个功能,大小超过3 MB。

“用Rust编写的程序通常是静态链接的,将所有依赖项直接嵌入到可执行文件中。因此,二进制文件更大,具有大量功能,需要分析师首先区分第三方库代码和攻击者编写的逻辑,”微软研究人员解释说

RIFT如何运作

RIFT有三部分:

  • 静态分析仪:IDA Pro插件。它读取二进制文件来查找元数据:Rust编译器版本、依赖项、目标平台。它将此记录到JSON文件中。
  • 生成器:Python脚本。它下载正确的编译器和库,创建FLIRT签名,并运行二进制分法。它使用货物、锈蚀、Hex-Rays工具和Diaphora。
  • Diff Applier:另一个IDA Pro插件。它读取不同的结果或FLIRT签名,然后在IDA中应用注释,以便分析师可以轻松发现库功能。

“目前,这些插件仅为Ida Pro开发,并在Ida Pro>=9.0上进行测试。RIFT Generator在Windows 10上进行了64位测试,”研究人员指出。

RIFT内部的图案匹配

RIFT使用两种主要技术来帮助分析师在Rust二进制文件中发现库代码:FLIRT签名和二进制分区。FLIRT签名快速可靠。它们以高准确性匹配Rust库的已知函数,并且很少产生误报。然而,只有当恶意软件中的代码非常接近原始库代码时,它们才会起作用。

为了捕捉略有变化的函数,RIFT还使用二进制微分。此过程将编译的Rust库与恶意软件二进制文件进行比较,以找到相似之处。二进制分法比FLIRT签名更灵活,但完成需要更长的时间,有时需要几个小时。

RIFT从应用FLIRT签名开始。然后,它运行二进制差分来查找任何遗漏的东西。两个步骤结束后,该插件帮助分析师直接在IDA Pro中查看和标记结果,这样他们就可以专注于真正重要的代码。

现实世界的测试

微软在RALord勒索软件上尝试了RIFT。该工具提取编译器信息和依赖项,制作FLIRT签名,并应用它们。在IDA中,主要功能中的大多数库代码都被正确识别。这只剩下可疑代码需要检查。

他们还测试了一个名为SPICA的后门。他们同时使用了FLIRT和diffing。在FLIRT遗漏部分的情况下,填写差分。这有助于使分析更加顺利。

RIFT在GitHub上免费提供。

文章来源:helpnetsecurity

© 版权声明
THE END
你的支持是我们在网空安全路上的驱动力!
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情快捷回复

    暂无评论内容