使用simhash与倒排索引的代码溯源技术

1 下载量 111 浏览量 更新于2024-08-29 收藏 618KB PDF 举报
"基于simhash与倒排索引的复用代码快速溯源方法" 是一种针对网络安全领域,尤其是针对复用代码分析的技术。该方法旨在高效地在大量代码中找到相似或重复使用的代码段,从而进行快速溯源。文章由乔延臣、云晓春、庹宇鹏和张永铮等人发表于2016年的《通信学报》。 该方法的核心是将代码单元(函数)作为基本分析对象,并结合了simhash算法和倒排索引技术。simhash是一种近似哈希技术,能够比较两个数据集的相似性,即使这两个数据集存在微小差异。在本文中,simhash用于计算函数的哈希值,以便快速查找相似的代码块。 首先,通过大量样本构建一个具有三级倒排索引结构的代码库。这个索引结构使得在大量代码中查找特定哈希值的代码块变得高效。当需要溯源某个待检测函数时,首先计算其内部代码块的simhash值,然后利用倒排索引来迅速定位可能相似的代码块。 接下来,通过分析代码块之间的跳转关系,可以进一步精确判断这些潜在的相似函数是否真的相同。这种方法考虑了代码执行流程中的控制流,从而提高了同源判定的准确性。最终,如果确认为相似,就可以追溯到源代码所在的原始样本。 实验结果显示,该方法在保持高准确率和召回率的同时,能够迅速在代码库中识别出由编译器插入的函数和复用的函数。这在网络安全领域特别重要,因为复用代码可能会隐藏恶意行为,如恶意代码的传播。通过对复用代码的快速溯源,可以有效地检测和防止潜在的网络安全威胁。 关键词涉及到的关键技术有网络安全、复用代码、快速溯源、同源判定以及恶意代码,表明该研究关注的是如何在大规模代码库中有效地检测和追踪复用代码,以增强网络安全防护能力。这项工作为复用代码的检测和分析提供了一种高效、精确的方法,对提升软件安全性和防止恶意代码的扩散具有重要意义。