【技术实现步骤摘要】
基于源代码和汇编代码跨模态特征增强的漏洞检测方法
[0001]本专利技术属于软件漏洞检测领域,涉及一种自动检测软件漏洞的方法,具体涉及一种基于源代码和汇编代码跨模态特征增强的软件漏洞检测方法。
技术介绍
[0002]软件漏洞(Vulnerability,也称脆弱性)是指软件在其生命周期中存在的可能被不法分子利用的缺陷,一旦被利用,将导致隐私泄漏、非法授权、勒索等严重危害。软件漏洞检测技术是减少软件安全漏洞、降低软件安全风险的重要方法和手段。程序表示学习是软件漏洞检测的基础和关键。利用深度学习技术从程序的中间表示中学习代码的语法语义特征表示的过程,称为代码的表示学习。
[0003]目前基于深度学习的软件漏洞检测,要么是在高级语言编写的源代码层面,要么是在汇编代码层面对程序进行表示学习并进行软件漏洞检测。
[0004]在高级语言程序层面,基于深度学习的漏洞检测方法大多采用语言模型,将代码看作自然语言文本进行词嵌入,然后利用深度神经网络(如LSTM和GRU)对代码进行表示学习,从代码中自动提取漏洞特征,并将其送入分类器进行漏洞检测。在汇编代码层面,大多使用RNN模型对函数级汇编代码进行表示学习,从汇编代码中提取漏洞特征,然后将模型输出的隐藏向量表示送入分类器进行漏洞检测。通过高级语言源代码得到汇编代码可分为正向和逆向两种。逆向方法是将可执行程序使用反编译工具或计算机模拟器按照执行顺序抓取汇编指令,但是编译器在编译程序时对程序进行了优化,删除了执行未覆盖的代码,因此逆向得到的汇编代码只能得到程序的调用上下文树 ...
【技术保护点】
【技术特征摘要】
1.一种基于源代码和汇编代码跨模态特征增强的漏洞检测方法,其特征在于所述方法包括如下步骤:步骤1:将高级语言程序源代码转化为语句对齐且带有源代码变量注释的汇编代码;步骤2:使用静态分析工具将高级语言程序源代码生成抽象语法树和程序依赖图;步骤3:根据源代码的切片准则生成源代码和汇编代码的切片代码段;步骤4:根据汇编代码的切片准则生成源代码和汇编代码的切片代码段;步骤5:将步骤3和步骤4生成的源代码切片代码段集合进行合并,并为包含漏洞语句的切片代码段标记为“有漏洞”,其余切片代码段标记为“无漏洞”,从而构成源代码切片代码段的训练数据集;同理,将步骤3和步骤4生成的汇编代码切片代码段集合进行合并,并为包含漏洞语句的切片代码段标记为“有漏洞”,其余切片代码段标记为“无漏洞”,从而构成汇编代码切片代码段的训练数据集;步骤6:使用word2vec将源代码切片代码段中的token进行词嵌入,得到源代码切片代码段中每条语句的初始向量表示,将其送入由CNN构成的语句编码网络,得到每条语句的隐藏向量表示,再将每条语句的隐藏向量表示送入双向GRU构成的程序编码网络,得到源代码切片代码段的隐藏向量表示;同理,使用word2vec将汇编代码切片代码段中的token进行词嵌入,得到汇编代码切片代码段中每条语句的初始向量表示,送入由两层双向GRU构成的汇编代码表示学习网络,得到汇编代码切片代码段的隐藏向量表示;步骤7:步骤6得到的源代码切片代码段的隐藏向量表示和汇编切片代码段的隐藏向量表示使用交叉注意力机制进行特征增强,生成更准确的切片代码段向量表示,然后将源代码切片代码段的隐藏向量表示和汇编切片代码段的隐藏向量表示进行注意力加权聚合拼接,得到跨模态特征增强和融合的隐藏向量表示;步骤8:将步骤7得到的经过跨模态交叉注意力特征融合和增强的向量表示送入由全连接层和Softmax构成的分类器,根据分类器的输出结果与代码段的实际标签计算叉熵损失,反向传播更新由源代码表示学习网络、汇编代码表示学习网络以及交叉注意力层组成的跨模态特征增强和融合的双模态表示学习模型参数,直到跨模态特征增强和融合的双模态表示学习模型训练结束;步骤9:使用训练好的跨模态特征增强和融合的双模态表示学习模型和分类器网络对待测试代码进行漏洞检测。2.根据权力要求1所述的基于源代码和汇编代码跨模态特征增强的漏洞检测方法,其特征在于所述步骤1的具体步骤如下:步骤1.1:使用程序编译器步调试源代码,按语句生成汇编代码,按语句对齐输出源代码与汇编代码;步骤1.2:使用代码编译器命令行编译方式带有特定参数生成带有源代码变量注释的汇编代码;步骤1.3:将汇编代码注释填入步骤1.1生成的与其对应的源代码语句。3.根据权利要求1的基于源代码和汇编代码跨模态特征增强的漏洞检测方法,其特征在于所述步骤3中,汇编代码切片生成的具体步骤如下:步骤3.1:根据源代码的切片准则,提取源代码的漏洞候选关键点,前向和后向遍历在步骤2中得到的程序依赖图,获取双向切片语句集合,生成高级语言形式的切片代码段;
步骤3.2:根据步骤1得到的汇编代码和高级语言源代码的语句对应关系,找到源代码切片代码段中的每条语句对应的汇编代码块,从而得到汇编语言形式的切片代码段。4.根据权利要求1的基于源代码和汇编代码跨模态特征增强的漏洞检测方法,其特征在于所述步骤4...
【专利技术属性】
技术研发人员:苏小红,陶文鑫,魏宏巍,郑伟宁,万佳元,王甜甜,张彦航,
申请(专利权)人:哈尔滨工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。