一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种源代码漏洞检测方法、装置以及存储介质与流程

2022-09-07 23:01:32 来源:中国专利 TAG:

技术特征:
1.一种源代码漏洞检测方法,其特征在于,包括如下步骤:s1:通过爬虫工具获取多个原始源代码数据,分别对各个所述原始源代码数据进行数据预处理,得到与各个所述原始源代码数据对应的预处理后源代码数据;s2:按照预设比例对多个所述预处理后源代码数据进行划分,得到训练集,验证集和测试集;s3:对所述训练集进行代码图的编码,得到多个代码图数据;s4:构建训练模型,根据多个所述代码图数据、所述验证集和所述测试集对所述训练模型进行模型分析,得到检测模型;s5:导入待检测源代码数据,通过所述检测模型对所述待检测源代码数据进行检测分析,得到是否存在漏洞的检测结果。2.根据权利要求1所述的源代码漏洞检测方法,其特征在于,所述步骤s1的过程包括:分别对各个所述原始源代码数据进行下采样处理,得到与各个所述原始源代码数据对应的下采样后源代码数据;分别对各个所述下采样后源代码数据进行标注,得到与各个所述原始源代码数据对应的预处理后源代码数据。3.根据权利要求1所述的源代码漏洞检测方法,其特征在于,所述训练集包括多个源代码训练数据,所述步骤s3的过程包括:利用clang工具分别对各个所述源代码训练数据进行抽象语法树的提取,得到与各个所述源代码训练数据对应的抽象语法树;分别通过各个所述抽象语法树构建代码图数据,从而得到与各个所述源代码训练数据对应的代码图数据。4.根据权利要求3所述的源代码漏洞检测方法,其特征在于,所述步骤s4的过程包括:构建训练模型,根据多个所述代码图数据对所述训练模型进行训练,得到训练后的模型;根据所述测试集对所述训练后的模型进行测试,得到待验证模型;根据所述验证集对所述待验证模型进行参数调整,得到检测模型。5.根据权利要求4所述的源代码漏洞检测方法,其特征在于,所述构建训练模型,根据多个所述代码图数据对所述训练模型进行训练,得到训练后的模型的过程包括:基于残差门控图神经网络分别对各个所述代码图数据进行目标特征向量的计算,得到与各个所述源代码训练数据对应的多个目标特征向量;分别对与各个所述源代码训练数据对应的多个目标特征向量进行图池化处理,得到与各个所述源代码训练数据对应的全局特征向量;利用sigmoid函数分别对各个所述全局特征向量进行映射,得到与各个所述源代码训练数据对应的预测向量;导入与各个所述源代码训练数据对应的真实标签向量,并对所有的预测向量和所有的真实标签向量进行损失值的分析,得到训练后的模型。6.根据权利要求5所述的源代码漏洞检测方法,其特征在于,所述代码图数据包括多个节点以及与各个所述节点对应的原始特征向量,每个所述节点对应多个邻接节点;所述基于残差门控图神经网络分别对各个所述代码图数据进行目标特征向量的计算,
得到与各个所述源代码训练数据对应的多个目标特征向量的过程包括:通过第一式分别对各个所述节点对应的原始特征向量以及与各个所述节点对应的多个邻接节点的原始特征向量进行目标特征向量的计算,得到与各个所述节点的目标特征向量,所述第一式为:其中,为目标特征向量,为节点i的原始特征向量,为节点i对应的所有邻接节点的原始特征向量,为预设层数,w为权重矩阵,f为映射函数。7.根据权利要求5所述的源代码漏洞检测方法,其特征在于,所述对所有的预测向量和所有的真实标签向量进行损失值的分析,得到训练后的模型的过程包括:利用二分类交叉熵损失函数分别计算各个所述预测向量与所述真实标签向量的损失值,得到与各个所述源代码训练数据对应的损失值;对各个所述损失值进行反向传播计算,得到与所述损失值对应的梯度值;利用梯度下降算法将所有的梯度值输入至所述训练模型中进行参数更新,参数更新后返回步骤s1,直至达到预设迭代次数,并将参数更新后的训练模型作为训练后的模型。8.根据权利要求1所述的源代码漏洞检测方法,其特征在于,所述步骤s5中,通过所述检测模型对所述待检测源代码数据进行检测分析,得到是否存在漏洞的检测结果的过程包括:将所述待检测源代码数据输入至步骤s3中,通过步骤s3得到待检测代码图数据;通过所述检测模型对所述待检测代码图数据进行检测,得到检测值;判断所述检测值是否大于或者等于预设检测阈值,若是,则将存在漏洞作为检测结果;若否,则将无漏洞作为所述检测结果。9.一种源代码漏洞检测装置,其特征在于,包括:数据预处理模块,用于通过爬虫工具获取多个原始源代码数据,分别对各个所述原始源代码数据进行数据预处理,得到与各个所述原始源代码数据对应的预处理后源代码数据;数据划分模块,用于按照预设比例对多个所述预处理后源代码数据进行划分,得到训练集,验证集和测试集;训练集编码模块,用于对所述训练集进行代码图的编码,得到多个代码图数据;模型分析模块,用于构建训练模型,根据多个所述代码图数据、所述验证集和所述测试集对所述训练模型进行模型分析,得到检测模型;检测结果获得模块,用于导入待检测源代码数据,通过所述检测模型对所述待检测源代码数据进行检测分析,得到是否存在漏洞的检测结果。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现如权利要求1至8任一项所述的源代码漏洞检测方法。

技术总结
本发明提供一种源代码漏洞检测方法、装置以及存储介质,属于代码检测技术领域,方法包括:S1:分别对各个原始源代码数据的数据预处理得到预处理后源代码数据;S2:按照预设比例对多个预处理后源代码数据的划分得到训练集,验证集和测试集;S3:对训练集的代码图编码得到多个代码图数据;S4:根据多个代码图数据、验证集和测试集对训练模型的模型分析得到检测模型;S5:通过检测模型对待检测源代码数据的检测分析得到检测结果。本发明实现了函数级的自动代码漏洞检测,能在源代码中快速、高效地完成代码漏洞检测任务,解决了代码静态分析工具进行漏洞检测上存在的误报率高、漏报率高的技术问题。技术问题。技术问题。


技术研发人员:陈灯 张俊 张彦铎 吴云韬 卢涛 周华兵 刘玮 栗娟 于宝成 鞠剑平 唐剑隐 徐文霞 彭丽
受保护的技术使用者:武汉引行科技有限公司
技术研发日:2022.04.28
技术公布日:2022/9/6
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献