一种基于局部相关性的二进制代码匹配检测方法与流程

    技术2026-06-11  1


    本发明涉及数据处理,具体涉及一种基于局部相关性的二进制代码匹配检测方法。


    背景技术:

    1、随着计算机网络在日常生活和生产当中的不断推广和使用,网络攻击的数量和规模也日益增多。保证网络系统的正常平稳运行成为网络安全的核心课题。通过网络安全漏洞扫描工作,可以发现网络系统当中的安全漏洞和缺陷,针对漏洞对网络安全进行及时的修复和加固。二进制代码相似度匹配是网络安全漏洞扫描当中的关键技术,通过二进制代码相似度匹配,可以实现漏洞变种的检测、零日漏洞的发掘和相关漏洞的修复,并且提高漏洞检测的准确率。

    2、二进制代码是漏洞扫描过程当中主要针对的一种代码形式,现有的二进制流信息分析技术通常以攻击特征提取技术为主。与传统的基于特征提取和比对的技术相比,通过直接比对二进制代码的相似度,可以从代码层面有效地找到潜在的漏洞点,实现漏洞的快速定位,从而更快地修复漏洞,降低恶意攻击的风险。

    3、现行的二进制代码匹配技术,其核心仍然是代码在相嵌入的特征空间内的距离比较。无论是传统的特征比对和空间距离算法,还是基于神经网络的二进制代码相似度计算,其精度都依赖于算法、训练数据和标记的选择。这些方法在应用时,遇到诸如代码压缩、混淆处理等对抗性手段,代码相似度匹配的准确性会下降。这其中的关键仍然在于代码的相似度需要统一考虑其中的局部和全局特征,而二进制代码信息中的局部和全局特征难以由单一的神经网络实现抽取。

    4、在算法方面,人工智能技术的发展使用基于神经网络的人工智能方法越来越多地应用到社会生产的各个方面。其中循环神经网络和卷积神经网络已经成为人工智能技术的常规工具,在针对时序数据和图像数据的处理,包括网络安全领域的研究中,得到了很好的应用。但是,由于算法和模型结构的复杂性,导致对于数据嵌入特征空间及空间相关距离的理解不透明,不可解释,进而造成模型应用的效率难以提高。


    技术实现思路

    1、本发明的目的在于,针对上述现有技术的不足,提供一种基于局部相关性的二进制代码匹配检测方法,以解决二进制代码之间的相似度检测问题。

    2、为实现上述目的,本发明采用的技术方案如下:

    3、本发明提供了一种基于局部相关性的二进制代码匹配检测方法,该方法包括以下步骤:

    4、步骤a:训练数据准备,将网络系统中的原始的c代码通过编译器编译成用于训练的二进制代码,标记原始代码相同的二进制代码相似度为1,否则标记相似度为0,将二进制代码按照8位bit转化为一组uint8值的序列,对于长度不足的部分用0补足,然后对该序列进行正规化,最终转为一组取值为0或1的实数序列;

    5、步骤b:训练一个计算局部序列相关性的神经网络模型,在神经网络模型中,将实数序列的局部嵌入到特征空间,并根据特征空间,计算一个反对称的原局部序列间的相关间距;

    6、步骤c:对于任意一对二进制代码,基于神经网络模型,计算得到一个多通道的局部相关性图像;

    7、步骤d:选取循环卷积神经网络,并将所选取的循环卷积神经网络应用于局部相关性图像,并计算得出整体的相似度;

    8、步骤e:持续训练模型至模型满足预设的训练和验证条件,采用经训练的模型来进行二进制代码匹配检测。

    9、可选地,在步骤b中,神经网络模型使用一个多层感知神经网络结构f,其输入为64维的实数向量x,最终层输出一个n维特征空间内的向量f(x),其中n为一个预设的固定长度值。

    10、可选地,在步骤b中,计算一个反对称的原局部序列间的相关间距,具体包括:以129个n×n的二次型矩阵ai,i∈[一64,64],计算两段n维特征向量的离散间距概率,并且将离散间距概率作为原局部序列间的相关间距,反对称性表现为,对于任意的i,有ai=-a-i。

    11、可选地,离散间距概率通过如下方式计算:对于一对n维的特征向量y=f(x),y’=f(x’),计算

    12、q=(q-64,q-63,…,q64)=(yta-64y′,yta-63y′,…,yta64y′)

    13、对q应用双曲正割并作正规化处理,计算

    14、p′=(p′-64,p′-63,…,p′64)

    15、=(sech(q-64),sech(q-63),...,sech(q64))

    16、

    17、得到x和x’之间的离散间距概率,其中pi估算二进制代码段x到x’的距离是i的概率,如果i的绝对值大于64,则相应的概率记入p64或p-64。

    18、可选地,在步骤b中的神经网络模型的训练过程中,神经网络模型的参数包括多层感知神经网络结构f的参数以及二次型矩阵ai,i∈[-64,64],作为训练输入数据,从步骤a所输出的任一实数序列中,依据随机条件选取一对连续序列x和x’,所述一对连续序列x和x’均为64维序列,以该一对连续序列在原序列中的位置差标记该一对连续序列的间距,如果位置差的绝对值超过64,则标记该间距为64或-64,调整数据选取条件,使得标记在[一64,64]之间均匀分布,最后,计算预测的离散间距概率p=p(x,x′),神经网络和二次型的损失函数为p和的交叉熵。

    19、可选地,在步骤c中,局部相关性图像通过如下方式计算:对于一对实数序列和计算一个129通道的平面图,将平面图作为局部相关性图像,平面图的每一个点上的129维向量对应于一个离散间距概率p(x,x′),其中x和x’分别是实数序列和在相应位置截取的连续64维序列数据。

    20、可选地,步骤d中的循环卷积神经网络的输入的通道数为129,输出的通道数为2,循环卷积神经网络的训练使用交叉熵作为损失函数。

    21、本发明的有益效果包括:

    22、本发明提供的基于局部相关性的二进制代码匹配检测方法,训练二进制代码的局部序列的离散间距概率,在此基础上将一对二进制代码计算得到一个多通道的局部相关性图像,最终选用合适的循环卷积神经网络计算得出整体的相似度,并基于二进制代码的原始标签进行循环卷积神经网络的训练和应用,从而可以实现对网络系统中的二进制代码的高效匹配检测。



    技术特征:

    1.一种基于局部相关性的二进制代码匹配检测方法,其特征在于,所述方法包括以下步骤:

    2.根据权利要求1所述的基于局部相关性的二进制代码匹配检测方法,其特征在于,在所述步骤b中,所述神经网络模型使用一个多层感知神经网络结构f,其输入为64维的实数向量x,最终层输出一个n维特征空间内的向量f(x),其中n为一个预设的固定长度值。

    3.根据权利要求2所述的基于局部相关性的二进制代码匹配检测方法,其特征在于,在所述步骤b中,所述计算一个反对称的原局部序列间的相关间距,具体包括:以129个n×n的二次型矩阵ai,i∈[-64,64],计算两段n维特征向量的离散间距概率,并且将所述离散间距概率作为原局部序列间的相关间距,反对称性表现为,对于任意的i,有ai=-a-i。

    4.根据权利要求3所述的基于局部相关性的二进制代码匹配检测方法,其特征在于,所述离散间距概率通过如下方式计算:对于一对n维的特征向量y=f(x),y’=f(x’),计算

    5.根据权利要求4所述的基于局部相关性的二进制代码匹配检测方法,其特征在于,在所述步骤b中的神经网络模型的训练过程中,神经网络模型的参数包括多层感知神经网络结构f的参数以及二次型矩阵ai,i∈[-64,64],作为训练输入数据,从所述步骤a所输出的任一实数序列中,依据随机条件选取一对连续序列x和x’,所述一对连续序列x和x’均为64维序列,以该一对连续序列在原序列中的位置差标记该一对连续序列的间距,如果位置差的绝对值超过64,则标记该间距为64或-64,调整数据选取条件,使得标记在[-64,64]之间均匀分布,最后,计算预测的离散间距概率p=p(x,x′),神经网络和二次型的损失函数为p和的交叉熵。

    6.根据权利要求5所述的基于局部相关性的二进制代码匹配检测方法,其特征在于,在所述步骤c中,所述局部相关性图像通过如下方式计算:对于一对实数序列和计算一个129通道的平面图,将所述平面图作为局部相关性图像,所述平面图的每一个点上的129维向量对应于一个离散间距概率p(x,x′),其中x和x’分别是实数序列和在相应位置截取的连续64维序列数据。

    7.根据权利要求6所述的基于局部相关性的二进制代码匹配检测方法,其特征在于,所述步骤d中的循环卷积神经网络的输入的通道数为129,输出的通道数为2,循环卷积神经网络的训练使用交叉熵作为损失函数。


    技术总结
    本发明提供一种基于局部相关性的二进制代码匹配检测方法,涉及数据处理技术领域。本发明提供的基于局部相关性的二进制代码匹配检测方法,训练二进制代码的局部序列的离散间距概率,在此基础上将一对二进制代码计算得到一个多通道的局部相关性图像,最终选用合适的循环卷积神经网络计算得出整体的相似度,并基于二进制代码的原始标签进行循环卷积神经网络的训练和应用,从而可以实现对网络系统中的二进制代码的高效匹配检测。

    技术研发人员:王高翃,张艾森,沈彦,杨小倩,平力,董赢
    受保护的技术使用者:上海工业自动化仪表研究院有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-43464.html

    最新回复(0)