[关键词]
[摘要]
恶意代码相似性比较是恶意代码分析和检测的基础性工作之一,现有方法主要是基于代码结构或行为序列进行比较.但恶意代码编写者常采用代码混淆、程序加壳等手段对恶意代码进行处理,导致传统的相似性比较方法失效.提出了一种基于行为之间控制依赖关系和数据依赖关系的恶意代码相似性比较方法,该方法利用动态污点传播分析识别恶意行为之间的依赖关系,然后,以此为基础构造控制依赖图和数据依赖图,根据两种依赖关系进行恶意代码的相似性比较.该方法充分利用了恶意代码行为之间内在的关联性,提高了比较的准确性,具有较强的抗干扰能力;通过循环消除、垃圾行为删除等方法对依赖图进行预理,降低了相似性比较算法的复杂度,加快了比较速度.实验结果表明,与现有方法相比,该方法的准确性和抗干扰能力均呈现明显优势.
[Key word]
[Abstract]
Malware similarity comparison is one of the basic works in malware analysis and detection. Presently,most similarity comparison methods treat malware as CFG, or behavior sequences. Malware writers use obfuscation, packers and other means of technique to confuse traditional similarity comparison methods. This paper proposes a new approach in identifyling the similarities between malware samples, which rely on control dependence and data dependence. First, the dynamic taint analysis is performed to obtain control dependence relations and data dependence relations. Next, a control dependence graph and data dependence graph are constructed. Similarity information is obtained by comparing these two types of graph. In order to take full advantage of the inherent behavior of malicious codes and to increase the accuracy of comparison and anti-jamming capability, the loops are recued and the rubbish is removed by means of the dependence graph pre-processing, which reduces the complexity of the similarity comparison algorithm and improves the performance of the algorithm. The proposed prototype system has been applied to wild malware collections. The results show that the accuracy of the method and comparison capabilities all have an obvious advantage.
[中图分类号]
[基金项目]
国家自然科学基金(60703076); 国家高技术研究发展计划(863)(2007AA01Z451, 2009AA01Z435)