论文部分内容阅读
准确识别二进制文件中的加密算法,对于软件保护、恶意代码检测、密码合规性检测都有着重要的意义;承载国家核心安全的应用软件要求使用国家规定的加密算法,现存的检测手段中有诸如效率低、误报率高、难以完整检测等缺陷。为了解决这些存在的缺陷,使得二进制加密算法检测更加快捷有效。本文提出了一种基于图嵌入神经网络的二进制加密算法相似性检测方法,其核心思想是:利用构建出的“加密算法图”所具有的算法的结构信息和语义信息,尽可能完整的反映加密算法的特征;之后将“加密算法图”作为基本单位递归嵌入到图神经网络,得到加密算法图的向量表示;最终,通过比较这些向量间的距离,来判断加密算法的类型。本文针对以下几个方面进行研究:(1)本文对加密算法的二进制特征展开研究,旨在分析最能表示其算法特点的结构特征和语义特征;通过对不同加密算法的指令比例、操作码操作数规律、S盒等特殊结构、大整数应用等信息的整合,最终完成了对于加密算法来说独特的识别特征的表达。(2)依托已经获得的加密算法特征的表达结构,本文进一步构建“加密算法图”,将提取的二进制加密算法结构特征和语义特征进行整合,以流程图为载体,将每个基本块作为节点,将基本块的统计特征赋予各自节点,形成初始的结构特征图,最大限度的将二进制加密算法的特征保留。(3)为了弥补传统深度学习对加密算法特征学习的不足,本文构建基于图结构的卷积神经网络,通过把“加密算法图”嵌入神经网络,解决了从“图结构”准确的转换成“向量结构”的难题。从而简化问题,使得可以通过比较加密算法向量间的距离来判断加密算法的类型。(4)为了验证算法的有效性,本文设计并实现了原型系统EDS(Encryption function graph Distinguish System)。选择多个开源加密库以及实际应用程序作为测试用例,并与现有技术进行对比实验。检测成功率平均能达到92%以上,并通过多种方式验证该二进制加密算法检测方案的有效性。