基于比较学习的漏洞检测方法
A Vulnerability Detection Approach Based on Comparative Learning作者机构:北京城市学院信息学部北京100191 中国科学院网络测评技术重点实验室(中国科学院信息工程研究所)北京100093 中国科学院大学网络空间安全学院北京100049
出 版 物:《计算机研究与发展》 (Journal of Computer Research and Development)
年 卷 期:2023年第60卷第9期
页 面:2152-2168页
核心收录:
学科分类:081203[工学-计算机应用技术] 08[工学] 0835[工学-软件工程] 0812[工学-计算机科学与技术(可授工学、理学学位)]
基 金:中国科学院信息工程研究所中国科学院网络测评技术重点实验室开放课题(KFKT2022-005) 中国科学院战略性先导科技专项(XDC02040100)
摘 要:当前基于深度学习的源代码漏洞检测是一种效率较高的漏洞分析方式,但其面临2个挑战:容量较大的数据集和有效的学习方式.针对这2个挑战做了2方面的研究工作:首先基于SARD数据集构建了样本容量为280793的多漏洞数据集,包含150种CWE漏洞类型.其次提出基于比较学习的深度学习方法.其核心思想是为深度学习训练集中每一个样本构建1个类型相同的样本集合,以及1个类型不相同的样本集合,形成一种比较学习的氛围.基于该思想创建的训练数据集,深度学习模型在训练的过程中,不但可以学习同类型样本大量的、细微的特征,还可以提取不同类型样本中区分性较强的特征.经过实验验证,基于所创建的数据集和提出的学习方法训练的深度学习模型可以识别150种CWE漏洞类型,准确率可以达到92.0%,平均PR值可以达到0.85,平均ROC-AUC值可以达到0.96.此外,也对基于深度学习的漏洞分析技术中普遍使用的代码符号化技术进行分析与讨论.实验表明,深度学习训练过程中,是否对代码进行符号化,并不会影响深度学习模型的漏洞识别准确率.