【技术实现步骤摘要】
一种多样本比较和融合的多种类型漏洞检测方法及系统
[0001]本专利技术涉及网络信息安全
,特别涉及一种多样本比较和融合的多种类型漏洞检测方法及系统。
技术介绍
[0002]当前软件中存在的漏洞是引发软件安全事件的主要原因。因此在软件开发的各个阶段通过静态检测技术和动态检测技术来发现软件中存在的漏洞是一个很重要的工作。但是,由于静态检测技术和动态检测技术极大地依赖于专家和资深软件开发人员的个人经验,因此漏洞发现的时间较长,并且精度也不高。
[0003]目前,随着深度学习技术在恶意代码检测、垃圾邮件过滤等方面的不断应用,学术界和工业界也在不断地尝试将深度学习技术应用于软件漏洞的挖掘和分析当中,目的是实现软件漏洞自动化挖掘和分析,大幅度地提高漏洞挖掘的效率和精度。
[0004]基于深度学习的源代码漏洞检测的思想来源于自然语言处理技术。在自然语言处理技术中,可以把自然语言当作一种时序字符串序列,然后训练一个神经网络模型捕捉时序序列中的特征,应用于语言识别和机器翻译等具体的应用。与此类似,程序语言也是一种时序语 ...
【技术保护点】
【技术特征摘要】
1.一种多样本比较和融合的多种类型漏洞检测方法,其特征在于,包括以下步骤:S1、对原始数据集进行处理,生成多种漏洞类型的数据集;S2、对所述数据集中的样本进行单一代码的符号化操作,得到符号化样本;S3、构建针对特定程序语言的专有词向量模型,对所述符号化样本进行向量化操作,得到样本向量;S4、为所述样本向量分别构建同类型样本融合矩阵和不同类型样本比较矩阵,并且分别对所述同类型样本融合矩阵和所述不同类型样本比较矩阵进行相加和取平均值,得到所述数据集中每一个样本的同类型样本融合向量和不同类型样本比较向量;S5、利用所述同类型样本融合向量和所述不同类型样本比较向量对深度学习模型进行训练,并利用训练后的深度学习模型进行漏洞检测。2.根据权利要求1所述的多样本比较和融合的多种类型漏洞检测方法,其特征在于,步骤S3具体包括:S31、对所述数据集中经过符号化操作的符号化样本进行单词统计,得到语料库;S32、使用word2vec中的CBOW方法训练一个专有词向量模型;S33、使用训练好的专有词向量模型对所述数据集中每一个符号化样本进行向量化操作,生成样本向量。3.根据权利要求2所述的多样本比较和融合的多种类型漏洞检测方法,其特征在于,步骤S33具体包括:S331、读取数据集中的一个符号化样本;S332、使用分词工具NLTK将所述符号化样本分为若干个单词;S333、对每一个单词使用训练好的专有词向量模型进行向量化操作,生成维度固定的词向量;S334、将每一个单词对应的词向量进行相加、取平均值,得到整个符号化样本对应的样本向量;S335、重复步骤S331
‑
S334,得到数据集中所有符号化样本各自对应的样本向量。4.根据权利要求1所述的多样本比较和融合的多种类型漏洞检测方法,其特征在于,步骤S4具体包括:S41、统计数据集中每一种漏洞类型的样本数量;S42、基于步骤S41的结果,为数据集中的每一个样本寻找漏洞类型相同的样本和漏洞类型不同的样本;S43、根据步骤S42中返回的同类型样本集合和不同类型样本集合,构建目标样本的同类型样本融合矩阵和不同类型样本比较矩阵;S44、把所述同类型样本融合矩阵中的每一个同类型样本对应的向量进行相加,并取平均值,得到最终的同类型样本融合向量;把所述不同类型样本比较矩阵中的每一个不同类型样本对应的向量进行相加,并取平均值,得到最终的不同类型样本比较向量。5.根据权利要求1所述的多样本比较和融合的多种类型漏洞检测方法,其特征在于,步骤S5中,所述深度学习模型包含一个输入层模块,一个特征抽取层模块和一个分类层模块;其中,所述输入层模块由一个全连接网络和ReLU激活函数构成;所述特征抽取层模块由多个全连接网络构成,在全连接网络之间采用ReLU激活函数以及Dropout层来随机丢掉
网络中的神经元;所述分类层模块由一个全连接层构成,用于输出每一个样本的得分,然后使用Softmax函数对得分进行计算后输出各个漏洞类别预测的概率值,其中概率值最大的即为最终的分类结果。6.一种多样本比较和融合的多种类型漏洞...
【专利技术属性】
技术研发人员:陈小全,龚晓锐,刘剑,夏翔宇,周绍翔,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。