A preview of this full-text is provided by Springer Nature.
Content available from Neural Computing and Applications
This content is subject to copyright. Terms and conditions apply.
ORIGINAL ARTICLE
Deep neural-based vulnerability discovery demystified: data, model
and performance
Guanjun Lin
1
•Wei Xiao
2
•Leo Yu Zhang
3
•Shang Gao
3
•Yonghang Tai
4
•Jun Zhang
5
Received: 20 July 2020 / Accepted: 25 March 2021 / Published online: 17 May 2021
The Author(s), under exclusive licence to Springer-Verlag London Ltd., part of Springer Nature 2021
Abstract
Detecting source-code level vulnerabilities at the development phase is a cost-effective solution to prevent potential attacks
from happening at the software deployment stage. Many machine learning, including deep learning-based solutions, have
been proposed to aid the process of vulnerability discovery. However, these approaches were mainly evaluated on self-
constructed/-collected datasets. It is difficult to evaluate the effectiveness of proposed approaches due to lacking a unified
baseline dataset. To bridge this gap, we construct a function-level vulnerability dataset from scratch, providing in source-
code-label pairs. To evaluate the constructed dataset, a function-level vulnerability detection framework is built to
incorporate six mainstream neural network models as vulnerability detectors. We perform experiments to investigate the
performance behaviors of the neural model-based detectors using source code as raw input with continuous Bag-of-Words
neural embeddings. Empirical results reveal that the variants of recurrent neural networks and convolutional neural
network perform well on our dataset, as the former is capable of handling contextual information and the latter learns
features from small context windows. In terms of generalization ability, the fully connected network outperforms the other
network architectures. The performance evaluation can serve as a reference benchmark for neural model-based vulnera-
bility detection at function-level granularity. Our dataset can serve as ground truth for ML-based function-level vulner-
ability detection and a baseline for evaluating relevant approaches.
Keywords Vulnerability discovery Deep learning Function-level Baseline dataset Performance evaluation
1 Introduction
Computer software is ubiquitous and affects all aspects of
our lives daily. Vulnerabilities in the software might be
exploited by attackers, thus leading to severe consequences
Guanjun Lin and Wei Xiao have contributed equally to this
work, and Yonghang Tai is the corresponding author.
&Yonghang Tai
taiyonghang@ynnu.edu.cn
Guanjun Lin
daniellin1986d@gmail.com
Wei Xiao
xiaowei@ccut.edu.cn
Leo Yu Zhang
leo.zhang@deakin.edu.au
Shang Gao
shang.gao@deakin.edu.au
Jun Zhang
junzhang@swin.edu.au
1
School of Information Engineering, Sanming University,
Sanming, Fujian Province, China
2
School of Computer Science and Engineering, Changchun
University of Technology, Changchun, Jilin Province, China
3
School of Information Technology, Deakin University,
Geelong, VIC 3216, Australia
4
Yunnan Key Laboratory of Opto-electronic Information
Technology, Yunnan Normal University, Kunming, Yunnan,
China
5
School of Software and Electrical Engineering, Swinburne
University of Technology, Melbourne, VIC 3122, Australia
123
Neural Computing and Applications (2021) 33:13287–13300
https://doi.org/10.1007/s00521-021-05954-3(0123456789().,-volV)(0123456789().,-volV)
Content courtesy of Springer Nature, terms of use apply. Rights reserved.