摘 要: | 针对软件源代码漏洞检测误报率和漏报率高的问题,文中提出一种基于双向门控递归单元(BGRU)的软件源代码漏洞检测方法。首先,采用基于Token的方法和词法分析,将软件源代码的字符流转换成等价Token序列,并将其表征为one-hot向量;然后,使用Word2vec模型将其转换为分布式向量并输入到BGRU神经网络中,通过BGRU自动从正反两个方向提取软件源代码中的高维非线性特征。这样可以充分利用软件源代码中的特征信息对软件源代码进行表征建模,从而有效地降低软件源代码漏洞检测的误报率和漏报率。再以白酒质量监控系统软件源代码为测试对象,针对软件源代码的10种开放式Web应用程序安全项目(OWASP)漏洞进行检测。最后,将所提方法与双向循环神经网络和卷积神经网络两种深度学习方法进行比较。实验结果表明,在检测软件源代码漏洞时,其他两种方法出现较大的误报率或漏报率,而所提方法具有较低的漏洞检测误报率和漏报率,说明所提出的BGRU检测方法能够有效降低软件源代码漏洞检测的误报率和漏报率。
|