一句话:提出上下文感知图神经网络模型 VDA,在代码提交层面同时进行漏洞检测与 CVSS 评估。
软件漏洞若延迟检测与评估,可能因未知影响造成严重后果。现有提交级方法无法同时完成漏洞检测与评估,且因代码变更及上下文表示有限,评估准确率较低。本文提出上下文感知、基于图的提交级漏洞检测与评估模型 VDA,学习融合程序依赖与代码变更周边上下文的表示,并通过多任务学习联合建模漏洞检测与各评估类型,利用任务间相互影响提升整体性能。在 C 漏洞数据集上,VDA 的评估 F-score 与 MCC 分别相对优于基线 25.5% 和 26.9%;在 Java 数据集上分别相对提升 31% 和 33.3%;漏洞检测 F-score 相对提升 13.4–322%。
Software Vulnerabilities (SVs) are security flaws that are exploitable in cyber-attacks. Delay in the detection and assessment of SVs might cause serious consequences due to the unknown impacts on the attacked systems. The state-of-the-art approaches have been proposed to work directly on the committed code changes for early detection. However, none of them could provide both commit-level vulnerability detection and assessment at once. Moreover, the assessment approaches still suffer low accuracy due to limited representations for code changes and surrounding contexts. We propose a Context-aware, Graph-based, Commit-level Vulnerability Detection and Assessment Model, VDA, that evaluates a code change, detects any vulnerability and provides the CVSS assessment grades. To build VDA, we have key novel components. First, we design a novel context-aware, graph-based, representation learning model to learn the contextualized embeddings for the code changes that integrate program dependencies and the surrounding contexts of code changes, facilitating the automated vulnerability detection and assessment. Second, VDA considers the mutual impact of learning to detect vulnerability and learning to assess each vulnerability assessment type. To do so, it leverages multi-task learning among the vulnerability detection and vulnerability assessment tasks, improving all the tasks at the same time. Our empirical evaluation shows that on a C vulnerability dataset, VDA achieves 25.5% and 26.9% relatively higher than the baselines in vulnerability assessment regarding F-score and MCC, respectively. In a Java dataset, it achieves 31% and 33.3% relatively higher than the baselines in F-score and MCC, respectively. VDA also relatively improves the vulnerability detection over the baselines from 13.4–322% in F-score.