一种漏洞检测方法、装置和存储介质制造方法及图纸

技术编号:27814005 阅读:18 留言:0更新日期:2021-03-30 10:00
本发明专利技术公开了一种漏洞检测方法、装置和存储介质,所述方法包括:获取待检测数据;所述待检测数据为二进制程序文件包括的汇编数据;运用预设的检测模型识别所述待检测数据,确定所述待检测数据中的漏洞数据;其中,所述预设的检测模型基于BERT神经网络、图神经网络和分类器训练得到;所述BERT神经网络,用于识别CFG中的汇编指令特征;所述图神经网络,用于识别所述CFG的图结构特征;所述分类器,用于基于汇编指令特征和图结构特征识别漏洞数据。指令特征和图结构特征识别漏洞数据。指令特征和图结构特征识别漏洞数据。

【技术实现步骤摘要】
一种漏洞检测方法、装置和存储介质


[0001]本专利技术涉及计算机领域,尤其涉及一种漏洞检测方法、装置和存储介质。

技术介绍

[0002]现有的对于漏洞检测的技术方案包括:源代码审查,模糊测试,动态和静态分析等。
[0003]源代码审查是一种已经获得软件源代码的情况下进行的漏洞检测技术。通常需要安全技术专家对于软件源代码进行检查。借由源代码审查,可以找到内存泄漏,栈溢出,等安全隐患。
[0004]模糊测试是一种软件测试技术,将自动或者半自动生成的随机数据输入到程序中,监测程序的异常情况,如崩溃,断言失败等以发现可能的程序错误。
[0005]静态分析指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,来发现程序的各种缺陷。程序静态分析可以帮助软件开发人员、质量保证人员查找代码中存在的结构性错误、安全漏洞等问题,从而保证软件的整体质量。
[0006]动态分析指通过在处理器上执行程序来进行分析的方式。为了使动态分析有效,必须使用足够的测试输入来执行目标程序以覆盖几乎所有可能的输出。
[0007]上述方案分别具有不同的缺陷,具体来说:
[0008]源代码审查:需要安全专家或开发人员对源代码进行详细的检查,开发人员在每种功能函数上花费的时间几乎翻了一番,而且对于一些非常大型的项目,对源代码进行详细的审查几乎是一项不可能完成的任务。
[0009]模糊测试:模糊测试是当前检测漏洞最广泛使用的方式,但是实施非常缓慢,通常以月计算,且仅限于导致崩溃的漏洞。
[0010]静态分析:非常缓慢,至少以天计,需要安全方面的专家,且仅限于给定规则,难以扩展。
[0011]动态分析:可以利用部分工具辅助执行,但是通常情况下难以实施,应用范围有限,因为覆盖所有可能的输出是一项非常难的任务。

技术实现思路

[0012]有鉴于此,本专利技术的主要目的在于提供一种漏洞检测方法、装置和存储介质。
[0013]为达到上述目的,本专利技术的技术方案是这样实现的:
[0014]本专利技术实施例提供了一种漏洞检测方法,所述方法包括:
[0015]获取待检测数据;所述待检测数据为二进制程序文件包括的汇编数据;
[0016]运用预设的检测模型识别所述待检测数据,确定所述待检测数据中的漏洞数据;
[0017]其中,所述预设的检测模型基于BERT神经网络、图神经网络和分类器训练得到;
[0018]所述BERT神经网络,用于识别CFG中的汇编指令特征;
[0019]所述图神经网络,用于识别所述CFG的图结构特征;
[0020]所述分类器,用于基于汇编指令特征和图结构特征识别漏洞数据。
[0021]进一步地,所述方法还包括:训练BERT神经网络、训练图神经网络、训练分类器;或者,所述方法包括:联合训练BERT神经网络、图神经网络、分类器。
[0022]进一步地,所述训练BERT神经网络,包括:
[0023]获取训练数据集;所述训练数据集包括:至少一个CFG和每个CFG对应的标签;所述标签表征是否为漏洞;所述CFG包括:多CFG节点和CFG节点之间的边;所述CFG节点为汇编指令,所述边为转换指令;所述CFG基于使用反汇编程序将程序拆分确定的函数得到;
[0024]将CFG节点中的汇编指令的令牌转换成独热编码后,输入BERT神经网络,并使用MLM作为任务进行训练,得到训练后的BERT神经网络作为预设的检测模型中的一部分;
[0025]其中,训练BERT神经网络,包括:初始训练和二次训练;
[0026]所述初始训练,包括:在BERT神经网络中,输入层随机屏蔽预设比例的输入,输出层预测原始输入,以在网络上执行初始训练;
[0027]所述二次训练,包括:获得每个CFG节点的特征后,执行下一个CFG节点的预测任务,以将上游和下游节点与随机构建的CFG节点一同作为输入,以预测成对的CFG节点是否确实具有上游和下游关系。
[0028]进一步地,所述训练图神经网络,包括:
[0029]获取训练数据集;所述训练数据集包括:至少一个CFG和每个CFG对应的标签;所述标签表征是否为漏洞;其中,每个CFG节点都有一个定义的节点嵌入;所述嵌入表征向量;
[0030]根据所述训练数据集中各个CFG和CFG对应的标签输入图神经网络,训练所述图神经网络,得到训练后的图神经网络。
[0031]进一步地,所述训练分类器,包括:
[0032]根据对所述训练数据集中各个CFG处理得到的汇编指令特征、图结构特征和CFG对应的标签输入全连接神经网络,训练所述全连接神经网络,得到训练后的全连接神经网络,作为分类器。
[0033]进一步地,所述分类器采用多层感知机器(MLP)层堆叠到的编码器模型,并使用softmax激活函数进行分类训练;训练得到的分类器可用于确定漏洞数据的位置。
[0034]进一步地,所述获取待检测数据之后,所述方法还包括:将所述待检测数据转换为至少一个待检测CFG;
[0035]相应的,所述运用预设的检测模型识别所述待检测数据,确定所述待检测数据中的漏洞数据,包括:
[0036]运用预设的检测模型识别所述至少一个待检测CFG,确定所述待检测数据中的漏洞数据。
[0037]本专利技术实施例提供一种漏洞检测装置,所述装置包括:
[0038]获取模块,用于获取待检测数据;所述待检测数据为二进制程序文件包括的汇编数据;
[0039]检测模块,用于运用预设的检测模型识别所述待检测数据,确定所述待检测数据中的漏洞数据;
[0040]其中,所述预设的检测模型基于BERT神经网络、图神经网络和分类器训练得到;
[0041]所述BERT神经网络,用于识别CFG中的汇编指令特征;
[0042]所述图神经网络,用于识别所述CFG的图结构特征;
[0043]所述分类器,用于基于汇编指令特征和图结构特征识别漏洞数据。
[0044]本专利技术实施例提供一种漏洞检测装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上任一项所述漏洞检测方法的步骤。
[0045]本专利技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一项所述漏洞检测方法的步骤。
[0046]本专利技术实施例所提供的一种漏洞检测方法,所述方法包括:获取待检测数据;所述待检测数据为二进制程序文件包括的汇编数据;运用预设的检测模型识别所述待检测数据,确定所述待检测数据中的漏洞数据;其中,所述预设的检测模型基于BERT神经网络、图神经网络和分类器训练得到;所述BERT神经网络,用于识别CFG中的汇编指令特征;所述图神经网络,用于识别所述CFG的图结构特征;所述分类器,用于基于汇编指令特征和图结构特征识别漏洞数据;如此,实现快速、高效而准确的漏洞检测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种漏洞检测方法,其特征在于,所述方法包括:获取待检测数据;所述待检测数据为二进制程序文件包括的汇编数据;运用预设的检测模型识别所述待检测数据,确定所述待检测数据中的漏洞数据;其中,所述预设的检测模型基于BERT神经网络、图神经网络和分类器训练得到;所述BERT神经网络,用于识别CFG中的汇编指令特征;所述图神经网络,用于识别所述CFG的图结构特征;所述分类器,用于基于汇编指令特征和图结构特征识别漏洞数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:训练BERT神经网络、训练图神经网络、训练分类器;或者,所述方法包括:联合训练BERT神经网络、图神经网络、分类器。3.根据权利要求2所述的方法,其特征在于,所述训练BERT神经网络,包括:获取训练数据集;所述训练数据集包括:至少一个CFG和每个CFG对应的标签;所述标签表征是否为漏洞;所述CFG包括:多CFG节点和CFG节点之间的边;所述CFG节点为汇编指令,所述边为转换指令;所述CFG基于使用反汇编程序将程序拆分确定的函数得到;将CFG节点中的汇编指令的令牌转换成独热编码后,输入BERT神经网络,并使用MLM作为任务进行训练,得到训练后的BERT神经网络作为预设的检测模型中的一部分;其中,训练BERT神经网络,包括:初始训练和二次训练;所述初始训练,包括:在BERT神经网络中,输入层随机屏蔽预设比例的输入,输出层预测原始输入,以在网络上执行初始训练;所述二次训练,包括:获得每个CFG节点的特征后,执行下一个CFG节点的预测任务,以将上游和下游节点与随机构建的CFG节点一同作为输入,以预测成对的CFG节点是否确实具有上游和下游关系。4.根据权利要求3所述的方法,其特征在于,所述训练图神经网络,包括:获取训练数据集;所述训练数据集包括:至少一个CFG和每个CFG对应的标签;所述标签表征是否为漏洞;其中,每个CFG节点都有一个...

【专利技术属性】
技术研发人员:冯继强蒋磊朱鲲鹏
申请(专利权)人:苏州极光无限信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1