这篇文章通过结合漏洞源代码和汇编代码的特征实现了一个漏洞检测系统。实现步骤如下:(1)从源代码和汇编代码中提取代码切片;(2)通过提出的代码对齐算法对这些片断进行对齐;(3)对齐的代码切片被转换为矢量,并输入到基于超融合的深度学习模型中。
1 提出问题
一些使用单一代码表征的方法,仅从源代码中提取漏洞相关特征,在检测一些漏洞时表现不稳定,导致漏报(如数组越界访问)。
2 解决方案
2.1 提出方法
融合了汇编代码和源代码的信息来预测结果。使用多模态混合融合策略来进行网络搭建。首先通过早期融合将汇编代码片和源代码片段结合起来。然后,这些混合片断,连同源代码片断和汇编代码片断被送入三个单独的网络中。最后,这三个网络的结果被用来通过后期融合给出最终决定。
2.2 主要贡献
文章的主要贡献如下:
- 通过融合汇编代码和源代码漏洞的特征来提高漏洞检测性能。
- 提出一种在源代码和汇编代码之间快速对齐数据片的数据对齐算法。
- 收集了一个由源代码和汇编代码组成的漏洞数据集,该数据集可用于训练和验证所提出的基于多模态融合的漏洞检测方法。
3 系统设计
3.1 系统概述
基本定义:
定义1(源代码切片)。源代码切片Si是一个语义相关的多行源代码的片段,表示为Si=(si1, si2, si3,…, sin),其中sij(1 ≤ j ≤ n)是Si中的第j行。
定义2(汇编代码切片)。汇编代码切片Di是一个语义相关的多行汇编代码片段,表示为Di=(di1, di2, di3

文章介绍了一种基于深度学习的漏洞检测系统,通过结合源代码和汇编代码特征,尤其是提出了一种代码对齐算法,显著提高了检测性能,尤其在处理像数组越界这类难以在源代码级别检测的漏洞时表现出色。
最低0.47元/天 解锁文章
823

被折叠的 条评论
为什么被折叠?



