中文

VUDENC:基于自然语言代码库深度学习的 Python 漏洞检测

密码学与安全 2022-01-24 v1 机器学习 软件工程

摘要

背景:识别潜在的漏洞代码对于提升软件系统安全性十分重要。然而,漏洞的手动检测需要专家知识且耗时,必须借助自动化技术。目标:此类自动化漏洞检测技术应达到高准确率,将开发者直接指向漏洞代码段,可扩展至真实世界软件,能泛化至特定软件项目边界之外,且无需或仅需适度配置工作。方法:本文提出 VUDENC(基于自然语言代码库深度学习的漏洞检测),一种基于深度学习的漏洞检测工具,可从大规模真实世界 Python 代码库中自动学习漏洞代码特征。VUDENC 应用 word2vec 模型识别语义相似的代码标记并提供向量表示。随后使用长短期记忆单元(LSTM)网络在细粒度层面对漏洞代码标记序列进行分类,高亮源代码中可能含漏洞的具体区域,并给出预测置信度。结果:为评估 VUDENC,我们使用来自不同 GitHub 仓库的 1,009 个漏洞修复提交进行训练,涵盖七类漏洞(SQL 注入、XSS、命令注入、XSRF、远程代码执行、路径泄露、开放重定向)。在实验评估中,VUDENC 达到 78%–87% 召回率、82%–96% 准确率与 80%–90% 的 F1 分数。VUDENC 代码、漏洞数据集及 word2vec 模型的 Python 语料均公开以供复现。结论:我们的实验结果表明……

关键词

引用

@article{arxiv.2201.08441,
  title  = {VUDENC: Vulnerability Detection with Deep Learning on a Natural Codebase for Python},
  author = {Laura Wartschinski and Yannic Noller and Thomas Vogel and Timo Kehrer and Lars Grunske},
  journal= {arXiv preprint arXiv:2201.08441},
  year   = {2022}
}

备注

Accepted Manuscript