arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2104.14978cs.SEcs.CRcs.LG
收藏

用于软件漏洞自动检测的神经网络技术的比较研究

A comparative study of neural network techniques for automatic software vulnerability detection

Harbin Engineering University(哈尔滨工程大学);Institute of System Engineering, Chinese Academy of Military Science(军事科学院系统工程研究院);Shenzhen University(深圳大学)

Gaigai Tang, Lianxiao Meng, Shuangyin Ren, Weipeng Cao, Qiang Wang, Lin Yang

摘要:

软件漏洞通常是由设计缺陷或实现错误引起的,这些漏洞可能会被利用来破坏系统的安全性。目前,检测软件漏洞最常用的方法是静态分析。大多数相关技术基于规则或代码相似性(源代码级别)工作,并依赖于手动定义的漏洞特征。然而,这些规则和脆弱性特征很难精确定义和设计,使得静态分析在实际应用中面临诸多挑战。为了缓解这一问题,一些研究人员提出使用具有自动特征提取能力的神经网络来提高检测的智能性。然而,神经网络的类型很多,不同的数据预处理方法会对模型性能产生重大影响。对于给定的问题,如何选择合适的神经网络和数据预处理方法是工程师和研究人员面临的一个巨大挑战。为了解决这个问题,我们进行了大量的实验来测试两个最典型的神经网络的性能(即,Bi-LSTM和RVFL)与两种最经典的数据预处理方法(即,向量表示法和程序符号化方法)对软件漏洞检测问题的研究,得到了一系列有趣的研究结论,可为研究人员和工程师提供有价值的指导。具体来说,我们发现:1)RVFL的训练速度始终快于BiLSTM,但Bi-LSTM模型的预测精度高于RVFL; 2)使用doc 2 vec进行向量表示,可以使模型比使用word 2 vec具有更快的训练速度和泛化能力; 3)多级符号化有助于提高神经网络模型的精度。

英文摘要:

Software vulnerabilities are usually caused by design flaws or implementation errors, which could be exploited to cause damage to the security of the system. At present, the most commonly used method for detecting software vulnerabilities is static analysis. Most of the related technologies work based on rules or code similarity (source code level) and rely on manually defined vulnerability features. However, these rules and vulnerability features are difficult to be defined and designed accurately, which makes static analysis face many challenges in practical applications. To alleviate this problem, some researchers have proposed to use neural networks that have the ability of automatic feature extraction to improve the intelligence of detection. However, there are many types of neural networks, and different data preprocessing methods will have a significant impact on model performance. It is a great challenge for engineers and researchers to choose a proper neural network and data preprocessing method for a given problem. To solve this problem, we have conducted extensive experiments to test the performance of the two most typical neural networks (i.e., Bi-LSTM and RVFL) with the two most classical data preprocessing methods (i.e., the vector representation and the program symbolization methods) on software vulnerability detection problems and obtained a series of interesting research conclusions, which can provide valuable guidelines for researchers and engineers. Specifically, we found that 1) the training speed of RVFL is always faster than BiLSTM, but the prediction accuracy of Bi-LSTM model is higher than RVFL; 2) using doc2vec for vector representation can make the model have faster training speed and generalization ability than using word2vec; and 3) multi-level symbolization is helpful to improve the precision of neural network models.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑