如何利用 r2diaphora 判断样本相似性

逆向病毒分析 2年前 (2021) admin
522 0 0

Binary diffing 技术可以用于恶意软件分析与家族归因,减少分析时间快速生成威胁情报。

AT&T Alien Labs 将 Diaphora 移植到 Radare2 上,创建了 r2diaphora 插件。

Binary diffing

Binary diffing 是在指令级别比较两个文件查找代码差异的技术。攻击者可以在不修改实际行为的前提下轻松地修改汇编代码,需要比“逐行比较”更好的方法。

现有一些 Binary diffing 工具如 Diaphora、BinDiff 和 DarunGrim 中,Alien Labs 认为 Diaphora 是其中最好的。

识别恶意软件

Diaphora 会分析二进制文件中的每个函数,从每个函数中提取一组特征。这些特征用于在函数间进行比较,将这些特征存储起来就可以构建恶意软件函数识别数据库。新传入的文件就可以和数据库中的进行比较,找到匹配项即可找到与之相似的样本。

匹配项足够多的话,就可以高置信认为样本是恶意软件,根据相似的样本也可以判断其家族归属。

移植 Diaphora 到 Radare2

Diaphora 是 IDA Pro 的插件,使用的条件是每个架构都需要购买 Hex-Rays 的许可证,而这些许可证十分昂贵。

因此 Alien Labs 选择将 Diaphora 到 Radare2 上,并且开源提供给社区。

r2diaphora

https://github.com/FernandoDoming/r2diaphora

Radare2 作为一个开源反汇编框架,支持多种 CPU 架构。其还附带了一个反编译器,此外还支持以插件的形式使用 Ghidra 反编译器。

radare2

https://github.com/radareorg/radare2

对 Diaphora 的移植工作包括使用 MySQL 替换 SQLite3 作为默认数据库。因为使用场景中需要支持并行写入/读取操作,而 SQLite 并不是为此而设计的,需要更适用的数据库引擎。

安装

由于 r2diaphora 依赖 Radare2 和 MySQL,Radare2 应该是本机安装,而 MySQL 可以远程访问。

依赖安装齐全后,可以使用 pip install r2diaphora 进行安装,接下来将会安装三个程序:r2diaphorar2diaphora-dbr2diaphora-bulk

  • r2diaphora:主程序,用于分析和比较文件

  • r2diaphora-db:执行数据库管理和配置

  • r2diaphora-bulk:批量分析二进制文件

安装后可以通过 -h/--help 选项确认安装是否成功并获取更多信息。

接着使用 r2diaphora-db config -u -p -hs 输入连接数据库的凭据。最后,在需要使用 r2ghidra 反编译器的情况下,使用 r2pm -ci r2ghidra 来安装。

测试

可以使用一些 IoT 样本来进行测试。

相同架构的 Sakura 样本

r2diaphora 562b4c9a40f9c88ab84ac4ffd0deacd219595ab83ed23a458c5f492594a3a7ef 770363f9fd334c3f3c4ba0e05a2a0d4701f56a629b09365dfe874b2a277f4416

r2diaphora 在 56 个可能的匹配项中匹配上了 40 个(71%)。此外,这些函数的相似度接近 1.0,这表明匹配上的函数非常相似。此外,匹配的函数还具有相同的函数名和基本块数量。

不同架构的 Sakura 样本

r2diaphora 17c62e0cf77dc4341809afceb1c8395d67ca75b2a2c020bddf39cca629222161 6ce1739788b286cc539a9f24ef8c6488e11f42606189a7aa267742db90f7b18d

匹配上的数量相比上一个减少了,跨架构匹配函数更困难。由于比较函数的汇编代码不同,相似度也有所下降。但即便如此,r2diaphora 还是发现了许多相似之处。

不同架构的 Sakura 样本与 Yakuza 样本

r2diaphora sakura/594a6b2c1e9beac3ad5f84458b71c1b7ec05ee0239808c9a63bc901040e413a3 yakuza/91392f5dbbfd4ad142956983208a484b91ac5e84c4f9a9fcb530a9b085644c93

可匹配的数量进一步减少,但是相似度基本保持稳定,因为 Sakura 与 Yakuza 都是基于 Gafgyt 源码修改而来的变种。

值得注意的是,processCmd 函数以较低的相似度匹配命中。该函数解析从 C&C 服务器接收到的命令,尽管处理命令的函数实现并不相同但函数中存在相同的常量,故而系统认为匹配命中。

结论

代码相似性分析工具十分有用,可用于识别/归因恶意软件。虽然并非完美无缺,但这种方法可以规避签名检测的许多缺点,可以结合使用建立更有效的检测方法。

IOC

132948bef56cc5b4d0e435f33e26632264d27ce7d61eba85cf3830fdf7cb8056136dbd3cfa947f286b972af1e389b2a44138c0013aa8060d20c247b6bcfdd88c17c62e0cf77dc4341809afceb1c8395d67ca75b2a2c020bddf39cca62922216119e0f329b5d8689b14d901b9b65c8d4fb28016360f45b3dfcec17e8340e6411e4cc11ffb3681ebced1f9d88e71b70a87e6d4498abca823245c118afead67b6a5562b4c9a40f9c88ab84ac4ffd0deacd219595ab83ed23a458c5f492594a3a7ef594a6b2c1e9beac3ad5f84458b71c1b7ec05ee0239808c9a63bc901040e413a35fec87479a8d2fa7f0ed7c8f6ba76eeea9e86c45123173d2230149a55dcd760d603d14671f97d12db879cc1c7cd6abfa278bf46431ac73aeb6b3a4c4c2b16b9f6b128a64a497eb123f03b77ef45e99e856282dc9620dc26ab38998627a8f32166ce1739788b286cc539a9f24ef8c6488e11f42606189a7aa267742db90f7b18d770363f9fd334c3f3c4ba0e05a2a0d4701f56a629b09365dfe874b2a277f44167c8ba5f88b1c4689a64652f0b8f5e3922e83f9f73c7e165f3213de27c5fb4d058090c3a1a930849df42f7f796d42e0211344e709a5ac15c2b4aca8ca41de2cd394a279397b8c19ec7def169884a096d4f85ce0e21ff9df0be3ce264ef4565ea796bb3e5209e083544ea6a78bc6fc4ebc456e135a786d747718d936af3b063298a079dfd60b55a7d74dd32d49a984bea43665b8b225beceae5b272944889217f6b6c2f02b1bed62a6b845d5f13d9003f5aa3f6d0da3e62fa48d9822872453de10cef15aa60dc2c09fe117e37e07399f0ef89dca9f930ce13ac1e29f8cf63d9a31e984334bbdd1179aadbde949f7c1b0fb02b6c18cb4a56d146150853b18adfa792858982408bf1664b622e830ad83b871749608a7533e94672153ff90caa658a92b7262cae9e192fa7921f3ec02e0f924b32de3d418842fdad9a51603589a54c72faf7437c769abd92347d6f0a77f001523ec41c02d2bf12e3cebf5b950457ba34fc23e8409becb028997c2f0f2041e2dc853018b71e009e3d66f33876d5d4e996554d5edb401e2def2ef9fbb82b591351d3c8261ce0a20c431470f1c68fa3aea8005db9431013f094a2114046679ab971e62a8776639d6c2903fcc5d2fe8065c91392f5dbbfd4ad142956983208a484b91ac5e84c4f9a9fcb530a9b085644c93b8aadb66183196868a9ff20bebd9c289fbfe2985fb409743bb0d0fea513e9cafd4f223fc5944bc06e12c675f0664509eeab527abc03cdd8c2fbd43947cc6cbabf64b5f6dd7f222b7568bba9e05caa52f9e4186f9ba4856c8bf1274f4c77c653c

原文始发于微信公众号(威胁棱镜):如何利用 r2diaphora 判断样本相似性

版权声明:admin 发表于 2021年11月15日 上午9:30。
转载请注明:如何利用 r2diaphora 判断样本相似性 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...