本发明所属领域为软件漏洞检测领域,它涉及一种检测方法,此方法针对二进制程序漏洞检测,具体而言,是一种基于xlstm模型以及分段代码表示架构的,用于二进制程序代码漏洞检测的方法。
背景技术:
随着信息技术迅猛发展,物联网(iot)设备已深深融入日常生活诸多方面,这些设备大多以二进制程序形式分发其软件,然而,伴随物联网设备大规模部署,基础软件安全问题越发突出,软件漏洞乃是指软件在其生命周期里存在的可能被不法分子利用的缺陷,一旦被利用,会导致隐私泄露、非法授权、勒索等严重后果,软件漏洞检测技术是降低安全风险、提升软件安全性的重要办法。近些年当中,许多不少的研究者把深度学习技术运用到软件漏洞检测领域以内,凭借其厉害强大的特征提取能力以及模式识别能力,深入地去挖掘代码当中的漏洞模式,进而明显显著地提高了漏洞识别的准确性以及效率。
第二,鉴于二进制代码并无可读性,基于深度学习的漏洞检测办法一般借助反编译工具把二进制代码转为汇编代码,目的是展开更深入的剖析。在获取相应汇编代码之后,这些办法把汇编代码视作自然语言文本,运用word2vec等自然语言处理技术来做词嵌入,接着利用深度神经网络对嵌入后的汇编代码开展表示学习,从中提取漏洞特征,并把它送进分类器实施漏洞分类。二进制代码具备高度序列化特征,致使循环神经网络(rnn)成为多数二进制代码漏洞检测方法的理想之选。然而,汇编代码序列长度较长,这让rnn易于出现梯度消失或者梯度爆炸的状况,此状况对模型捕捉长距离依赖关系的能力形成阻碍,进而影响其对复杂代码逻辑的理解及解析能力。尽管长短期记忆网络(lstm)以及门控循环单元(gru)被广泛视作能够缓解这些问题,然而在处理长汇编代码时,它们同样面临着挑战。近些年,transformer架构于自然语言处理任务方面收获了明显的成功,它借由自注意力机制有效地捕获到上下文信息,提高了模型在文本生成、翻译、情感分析等诸多任务里的表现。所以众多研究人员把transformer架构运用到二进制代码漏洞检测任务当中。然而,transformer架构带有o(n2)的计算复杂度,又何况,鉴于汇编指令序列或许相当冗长,就是这样,致使基于transformer架构的漏洞检测模型出现了计算资源消耗过大的状况,并且具备处理时间较长的问题。
3、到现在,还没有检索出,那种借助xlstm模型的,针对二进制程序切片级的漏洞检测方法 。
技术实现思路
本发明提供了一种基于xlstm 模型的二进制切片级快速漏洞检测方法,是针对当前基于传统rnn 模型的二进制程序切片级漏洞检测方法难以捕捉长距离代码语义,以及基于transformer 架构的二进制程序切片级漏洞检测方法存在计算时间慢、内存占用高的缺点,该方法采用分段代码表示架构和新型的xlstm 模型。分段代码所呈现的架构,是由指令编码网络以及程序编码网络共同构成的,指令编码网络专门致力于把单个指令或者操作的语义,映射到向量空间当中,借此来捕捉指令内部token之间的语义关系,程序编码网络则专门聚焦于提取代码片段的上下文信息,以此来提升对程序语义的理解以及分析能力,通过将指令编码网络与程序编码网络彼此结合,能够全面地捕获代码的细粒度语义信息以及全局结构信息,进而增强漏洞检测模型的准确性。此外,此方法运用新颖的xlstm模型,它能够依据汇编代码长序列特性,更加有效地去学习长距离代码语义,进而提高模型的准确性,还能降低模型的资源开销。xlstm引入了指数门控机制,相较于传统的sigmoid门控,指数门控能够提供更具动态性的信息过滤能力,这有助于改善记忆和遗忘过程。同时,xlstm在门控计算里引入了额外的归一化和稳定化步骤,以此提升了模型的稳定性。此外,xlstm引入了矩阵记忆,这种矩阵记忆允许进行并行处理,并且改善了存储容量。
2、本发明的目的是通过以下技术方案实现的:
3、有一种二进制切片级快速漏洞检测方法,它是基于xlstm模型的,该方法包含如下步骤:
4、步骤1:运用反编译工具idapro,自动去进行检测,识别输入文件的架构,识别输入文件的指令集,把二进制程序代码转化为汇编代码 。
5、步骤2:运用反编译工具idapro的反汇编视图,去生成汇编代码的控制流图(cfg) ,。
步骤6:,依据汇编代码切片准则,生成汇编代码切片,并且,针对漏洞代码切片,作出标记 。
这个,7,步骤4,是这样的,要使用word2vec,针对构成汇编代码切片内部的tokens,去做词嵌入,如此这般,便能够得到,关于汇编代码切片里,每一条语句的,初始向量表示,接下来呢,要把这个初始向量表示,送进,由bigru模型所构建而成的,指令编码网络当中,进而得到,每一条指令的,隐藏向量表示,最后呢,再把每一条语句的,隐藏向量表示,送进,由xlstm模型所构成的,程序编码网络里面,最终得到,汇编代码切片的,隐藏向量表示 ;。
8、步骤5:把步骤4所得到的那汇编代码切片的隐藏向量表示,送进由全连接层(fcn)以及softmax所构成的分类器当中,依据分类器的输出结果跟切片的实际标签来计算交叉熵损失,通过反向传播去更新由指令编码网络和程序编码网络所构成的分段代码表示网络以及分类器网络的参数,一直到模型训练结束 。
9、步骤6:运用通过第5步骤练好的,用于表示网络状况以及分类器网络,并对待测试的汇编代码切片开展漏洞探测的代码。

10、相比于现有技术,本发明具有如下优点:
11、1、本发明把xlstm模型首度引入到二进制程序漏洞检测领域。xlstm所引入的指数门控机制,以及残差连接机制,使得它能够迅速适应新数据,进而调整其记忆状态,维持甚至增强整个网络的梯度流,捕获具有长上下文特性的汇编指令序列里的长期依赖关系,以及深层语义信息,从而识别代码里完整的漏洞模式 。和transformer架构相比较而言,xlstm并不依赖自注意力机制,并且拥有高度并行化架构。于是,它的计算复杂度在transformer架构之下。所以,在物联网设备等资源有限的情形里,它更为适合去实现二进制程序漏洞检测任务。
针对二进制漏洞检测任务,本发明引入了分段代码表示架构,该架构由指令编码网络与程序编码网络构成,指令编码网络可捕捉单条指令的局部语义信息,程序编码网络能提取代码片段的上下文信息,借此提高对程序整体语义的理解及分析能力,能结合不同粒度的代码语义信息,显著提升二进制程序漏洞检测的准确性与鲁棒性。
技术特征:
存在一种基于xlstm模型的,用于二进制切片级的,带有快速漏洞检测功能的方法,这种方法的特征在于,所述方法涵盖如下步骤:
2. 依据权利要求1所阐述的建立在xlstm模型基础之上的二进制切片级快速漏洞检测方法,其具有这样的特征,将步骤3的具体步骤按照以下方式来呈现:
按照权利要求1所讲的,基于xlstm模型的二进制切片级快速漏洞检测方法,其特征在于,步骤4的具体步骤如此这般:
4. 依据权利要求1所阐述的、基于xlstm模型的二进制切片级快速漏洞检测方法,该方法的特征在于,步骤5的具体步骤是这样的:
1. 针对基于xlstm模型的二进制切片级快速漏洞检测方面,依据权利要求4所阐述的内容, 2. 它具备这样的特性, 3. 也就是步骤5.2的详细步骤是像下面这样的 。标点符号。
技术总结
本发明所公开事宜在于,有一种基于xLSTM模型的二进制切片级快速漏洞检测法子,此方法运用分段代码表示架构,以及新型的xLSTM模型。分段代码表示架构是由指令编码网络与程序编码网络组合而成。能够凭借结合指令编码网络和程序编码网络,全面地捕获代码的细粒度语义信息,还有全局结构信息,进而增强漏洞检测模型的准确性。除此以外,该方法运用了新颖的xLSTM模型,xLSTM引入了指数门控机制,和传统的Sigmoid门控相比较,指数门控能够提供更具动态的信息过滤能力,对改善记忆和遗忘过程有帮助,同时,xLSTM在门控计算里引入了额外的归一化和稳定化步骤,提高了模型的稳定性 ,此外,xLSTM引入了矩阵记忆,这使得并行处理得以实现并改善了存储容量。
技术研发人员:苏小红,陶文鑫,柯晔坤,张丝敏,韩一,李艳龙
受保护的技术使用者:哈尔滨工业大学
技术研发日:
技术公布日:2025/3/6