本发明属于计算机安全领域,具体涉及一种基于可微随机游走核和神经网络的二进制代码相似性检测方法及系统。
背景技术:
1、二进制代码相似性检测用于检测两个给定的二进制代码中的函数是否相似。它在计算机安全方面具有广泛的应用,如剽窃检测、恶意软件检测、漏洞搜索、安全补丁分析等。随着计算机的迅速发展以及代码的重用和共享,恶意代码以及开源代码的相关漏洞可能会在不同的硬件架构和软件平台的设备传播,如果没有合适的检测技术,软件安全问题将会随着时间继续恶化。所以在计算机安全领域中,代码相似性检测显得尤为重要。但是在实际应用场景中,程序的源代码一般无法获得,所以基于二进制的代码相似性检测在软件安全分析领域中会更加适用。这也是建设网络强国的重要技术沉淀。
2、随着神经网络的流行,出现了许多基于神经网络的二进制代码相似性检测方法的研究。这些基于神经网络的二进制相似性检测方法中主要围绕于提取控制流程图中块的语义信息。这些方法将汇编语言类比于自然语言,利用自然语言中的技术来处理控制流程图中块的指令信息。尽管相比于传统图匹配算法,这些基于语义信息的二进制代码相似性检测已经取得了很好的效果。但是汇编语言不能很好的类比到自然语言中。相比于自然语言,汇编语言词汇相对稀少,由于无法通过海量的数据来进行预训练,嵌入质量很难达到跟自然语言一样的效果。对于自然语言而言,预训练模型根据词的局部信息来预测该词的意义,而程序语言是长距离非连续图结构数据,存在着各种调用、依赖关系,因此全局信息的提取对于程序语言的理解而言更为重要。当控制流程如图节点数量较少时,注重二进制代码语义信息提取的方法可以取得较好的效果。但当控制流程图的节点数量增加的情况下,全局的控制依赖的则更加重要,而注重语义信息的二进制相似性检测方法会在这种情况下会失去部分性能。
3、因此在现有技术需要从一个新的角度进行突破,以帮助在控制流程图节点数量大幅增加的情况下二进制代码相似性检测依然能取得较高的准确率。
技术实现思路
1、针对现有技术的上述问题,提供一种基于可微随机游走核和神经网络的二进制代码相似性检测方法及系统,本发明采用了图核和神经网络结合的方式,实现了图核的方式能够端到端训练,利用图核提取二进制代码控制流程图的结构信息,并通过神经网络进行反向调参,将相应的训练好的参数进行可视化,便可以清晰的了解到控制流程图相应的结构,不仅能够有效地提升检测精确度,而且使网络模型具有一定的可解释性。
2、为了解决上述技术问题,本发明采用的技术方案为:
3、一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,包括:
4、1)将待检测二进制代码对进行反编译,获得其控制流程图;
5、2)利用可微随机游走核函数提取待检测二进制代码流程图的结构特征
6、3)通过神经网络对待检测二进制代码的控制流程图的结构特征进行编码,并得到对应的嵌入和
7、4)利用非线性度量给二进制代码对的控制流程图的结构信息嵌入和打分,得到相似性分数,以该分数作为待检测二进制代码的相似性结果。
8、可选地,步骤2)包括:随机初始化生成一定数量i的子图,分别将子图与待检测的二进制代码的控制流程图组合生成直积图,在直积图上进行随机游走提取二进制代码控制流程图的结构特征。隐藏图的邻接矩阵是神经网络参数,可随模型进行反向传播优化,来拟合cfg中的子图。
9、可选地,所述的在直积图上随机游走的表达式为:
10、
11、上式中k(p)(g,g′)为二进制代码控制流程图g与某个子图g′的匹配的随机游走路径的数量,p表示步长,用ax表示直积图的邻接矩阵。
12、可选地,步骤3)中的神经网络为多层全连接神经网络,并以二进制代码的控制流程图和子图的匹配的随机游走路径数量为输入,并引入注意力机制加强神经网络对结构信息的感知。
13、可选地,所述神经网络的函数表达式为:
14、
15、q=wqx,
16、k=wkx,
17、v=wvx,
18、
19、sg=a⊙v,
20、上式中x是多层全连接神经网络输出的特征矩阵,是可微随机游走核产生的特征值,wq、wk、wv是需要学习的参数矩阵,q、k、v分别是查询向量矩阵、键值向量矩阵、值向量矩阵,dk是键值向量矩阵的维数,a代表注意力权重矩阵,⊙代表hadamard乘积,sg为带有自注意力权值的cfg结构信息嵌入。
21、可选地,步骤4)非线性度量是指用神经网络拟合一个最适合当前任务的度量函数来给二进制代码对的控制流程图的结构信息嵌入和打分。
22、此外,本发明还提供一种基于可微随机游走核和神经网络的二进制代码相似性检测系统,包含:图结构提取模块、图结构编码模块、度量模块,其中,
23、图结构提取模块,用于提取待检测二进制代码控制流程图的结构信息;
24、图结构编码模块,用于编码控制流程图的结构信息,将结构信息嵌入到向量空间中;
25、度量模块,用于在向量空间中用非线性度量计算待检测二进制代码的相似性,获得相似性得分。
26、和现有技术相比,本发明有以下优点:由于相同的函数在不同的架构编译后产生的二进制代码控制流程图有着相同的子结构,所以本发明提出了利用图核来提取控制流程图的结构信息,图核直接面向了图结构数据,既保留了核函数计算高效的优点,又包含了图数据在希尔伯特高维空间的结构化信息,而后通过神经网络对控制流程图的结构信息进行嵌入,能够有效地保留控制流程图中丰富的结构信息,提升在控制流程图节点数量大幅增加的情况下的检测精确度。
1.一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,其特征在于,包括:
2.根据权利要求1所述的一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,其特征在于,步骤2)包括:随机初始化生成一定数量的隐藏图,分别将隐藏图与待检测的二进制代码的控制流程图组合生成直积图,在直积图上进行随机游走提取二进制代码控制流程图的结构特征。隐藏图的邻接矩阵是神经网络参数,可随模型进行反向传播优化,来拟合cfg中的子图。
3.根据权利要求2所述的一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,其特征在于,所述的在直积图上随机游走的表达式为:
4.根据权利要求1所述的一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,其特征在于,步骤3)中的神经网络为多层全连接神经网络,并以二进制代码的控制流程图和子图的匹配的随机游走路径数量为输入,并引入注意力机制加强神经网络对结构信息的感知。
5.根据权利要求4所述的一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,其特征在于,所述神经网络的表达式为:
6.根据权利要求1所述的一种基于可微随机游走核和神经网络的二进制代码相似性检测方法,其特征在于,步骤4)非线性度量是指用神经网络拟合一个最适合当前任务的度量函数来给二进制代码对的控制流程图的结构信息嵌入和打分。
7.一种基于可微随机游走核和神经网络的二进制代码相似性检测系统,其特征在于基于权利要求1~6所述的一种基于可微随机游走核和神经网络的二进制代码相似性检测方法实现,包含:图结构提取模块、图结构编码模块、度量模块,其中,