Skip to main content
QUICK REVIEW

[论文解读] Similarity-based matching meets Malware Diversity

Mathias Payer, Stephen Crane|arXiv (Cornell University)|Sep 27, 2014
Advanced Malware Detection Techniques参考文献 43被引用 6
一句话总结

本文提出恶意软件多样性(malware diversity)技术,通过在恶意软件二进制文件中随机改变代码和数据,将基于相似性的检测方法失效。作者利用基于 LLVM 的多编译器,实施指令替换、重排、插入垃圾代码及数据编码等操作,证明经多样化的恶意软件实例之间几乎不存在共同子序列或结构特征,即使使用 bindiff 等先进工具,也无法实现基于签名或相似性的检测。

ABSTRACT

Similarity metrics, e.g., signatures as used by anti-virus products, are the dominant technique to detect if a given binary is malware. The underlying assumption of this approach is that all instances of a malware (or even malware family) will be similar to each other. Software diversification is a probabilistic technique that uses code and data randomization and expressiveness in the target instruction set to generate large amounts of functionally equivalent but different binaries. Malware diversity builds on software diversity and ensures that any two diversified instances of the same malware have low similarity (according to a set of similarity metrics). An LLVM-based prototype implementation diversifies both code and data of binaries and our evaluation shows that signatures based on similarity only match one or few instances in a pool of diversified binaries generated from the same source code.

研究动机与目标

  • 为应对不断演化的恶意软件家族因复用通用源代码而使基于相似性的检测方法存在漏洞的问题。
  • 探究软件多样性技术是否可被恶意软件作者重新利用,以降低二进制文件相似性,从而逃避检测。
  • 评估原型恶意软件多样性引擎在破坏杀毒软件与恶意软件分析中常用相似性度量指标方面的有效性。
  • 探索通过系统性地对代码与数据进行随机化,生成近乎无限数量唯一恶意软件实例的可行性。

提出的方法

  • 扩展基于 LLVM 的多编译器,通过修改二进制文件的代码区与数据区,支持针对恶意软件的多样性处理。
  • 应用指令级变换,包括替换、重排与垃圾代码插入,以提升二进制级别的多样性。
  • 通过基本块重排与使用随机生成的包装函数对函数调用进行混淆,实现控制流随机化。
  • 采用多种数据编码方案,对数据结构与常量进行多样化处理,防止基于数据的签名匹配。
  • 使用多种度量方法评估相似性:共同子序列长度、通过 bindiff 的结构相似性,以及字节级相似性。
  • 采用规范化技术(如指令直方图、控制流图匹配)评估多样化后的二进制文件是否可被映射回共同源代码。

实验结果

研究问题

  • RQ1在常见相似性度量下,恶意软件多样性在多大程度上降低了功能等价的恶意软件二进制文件之间的相似性?
  • RQ2现有恶意软件检测工具(如 bindiff 与 ClamAV)是否仍能将多样化后的恶意软件实例识别为同一家族?
  • RQ3结构相似性度量(如 bindiff)在检测多样化恶意软件方面的有效性如何?其计算开销与检测局限性是什么?
  • RQ4对多样化后的二进制文件进行规范化处理是否能恢复出共同表示?这又如何影响基于签名检测的可靠性?

主要发现

  • 多样化恶意软件实例之间最长共同子序列的平均长度不足 10 字节,导致基于签名的检测方法完全失效。
  • bindiff 显示多样化二进制文件之间的结构相似性极低,其相似度评分相比非多样化变体显著下降。
  • 对系统库(如 libc)的函数调用是残留结构相似性的主要来源,提示这是未来进一步多样化的关键目标。
  • 通过使用包装函数对库调用进行混淆,显著降低了 bindiff 识别共性的能力,表明这是提升多样性的有效方向。
  • 通过指令直方图与控制流图匹配进行二进制规范化在某些变换(如空操作插入、指令重排)下可行,但对来自良性代码的垃圾插入则不可行。
  • 恶意软件多样性通过利用编译器层面的自由度,有效规避了基于相似性的检测,实现了生成近乎无限数量唯一恶意软件实例的能力。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。