针对基于抽象语法树的源代码漏洞检测方法难以从大规模语法树中充分提取语法和结构特征,导致漏洞表征能力不足、检测准确率低的问题,提出了一种基于抽象语法树压缩编码(abstract syntax tree compressed coding,ASTCC)的源代码漏洞检测...针对基于抽象语法树的源代码漏洞检测方法难以从大规模语法树中充分提取语法和结构特征,导致漏洞表征能力不足、检测准确率低的问题,提出了一种基于抽象语法树压缩编码(abstract syntax tree compressed coding,ASTCC)的源代码漏洞检测方法.该方法首先将程序抽象语法树以代码语句为单元分割成1组子树;然后通过递归神经网络对子树进行编码以提取代码语句内语法信息;再将原始语法树中的子树替换为其编码节点,从而在保留结构特征的同时减小原始语法树的深度并减少了叶子节点数量;最后,通过带注意力机制的树卷积神经网络实现源代码漏洞检测.在NVD和SARD公开数据集上的实验结果表明,ASTCC方法能够降低抽象语法树的规模,增强模型对源代码漏洞的表征能力,有效提升漏洞检测的准确率.展开更多
文摘针对基于抽象语法树的源代码漏洞检测方法难以从大规模语法树中充分提取语法和结构特征,导致漏洞表征能力不足、检测准确率低的问题,提出了一种基于抽象语法树压缩编码(abstract syntax tree compressed coding,ASTCC)的源代码漏洞检测方法.该方法首先将程序抽象语法树以代码语句为单元分割成1组子树;然后通过递归神经网络对子树进行编码以提取代码语句内语法信息;再将原始语法树中的子树替换为其编码节点,从而在保留结构特征的同时减小原始语法树的深度并减少了叶子节点数量;最后,通过带注意力机制的树卷积神经网络实现源代码漏洞检测.在NVD和SARD公开数据集上的实验结果表明,ASTCC方法能够降低抽象语法树的规模,增强模型对源代码漏洞的表征能力,有效提升漏洞检测的准确率.