计算机研究与发展2023,Vol.60Issue(9) :2152-2168.DOI:10.7544/issn1000-1239.202220140

基于比较学习的漏洞检测方法

A Vulnerability Detection Approach Based on Comparative Learning

陈小全 刘剑 夏翔宇 周绍翔
计算机研究与发展2023,Vol.60Issue(9) :2152-2168.DOI:10.7544/issn1000-1239.202220140

基于比较学习的漏洞检测方法

A Vulnerability Detection Approach Based on Comparative Learning

陈小全 1刘剑 2夏翔宇 3周绍翔3
扫码查看

作者信息

  • 1. 北京城市学院信息学部 北京 100191;中国科学院网络测评技术重点实验室(中国科学院信息工程研究所) 北京 100093
  • 2. 中国科学院网络测评技术重点实验室(中国科学院信息工程研究所) 北京 100093;中国科学院大学网络空间安全学院 北京 100049
  • 3. 北京城市学院信息学部 北京 100191
  • 折叠

摘要

当前基于深度学习的源代码漏洞检测是一种效率较高的漏洞分析方式,但其面临 2个挑战:容量较大的数据集和有效的学习方式.针对这 2个挑战做了 2方面的研究工作:首先基于SARD数据集构建了样本容量为 280793的多漏洞数据集,包含 150种CWE漏洞类型.其次提出基于比较学习的深度学习方法.其核心思想是为深度学习训练集中每一个样本构建 1个类型相同的样本集合,以及 1个类型不相同的样本集合,形成一种比较学习的氛围.基于该思想创建的训练数据集,深度学习模型在训练的过程中,不但可以学习同类型样本大量的、细微的特征,还可以提取不同类型样本中区分性较强的特征.经过实验验证,基于所创建的数据集和提出的学习方法训练的深度学习模型可以识别 150种CWE漏洞类型,准确率可以达到 92.0%,平均PR值可以达到 0.85,平均ROC-AUC值可以达到 0.96.此外,也对基于深度学习的漏洞分析技术中普遍使用的代码符号化技术进行分析与讨论.实验表明,深度学习训练过程中,是否对代码进行符号化,并不会影响深度学习模型的漏洞识别准确率.

关键词

漏洞检测/比较学习/深度学习/不平衡数据/模型检测

Key words

vulnerability detection/comparative learning/deep learning/unbalanced data/model checking

引用本文复制引用

基金项目

中国科学院信息工程研究所中国科学院网络测评技术重点实验室开放课题(KFKT2022-005)

中国科学院战略性先导科技专项(XDC02040100)

出版年

2023
计算机研究与发展
中国科学院计算技术研究所 中国计算机学会

计算机研究与发展

CSTPCDCSCD北大核心
影响因子:2.649
ISSN:1000-1239
参考文献量4
段落导航相关论文