基于深度代码表示的大型代码库漏洞预测
软件工程
2020-04-28 v1 机器学习
摘要
当前,软件工程师在编写各模块代码时,常会引入各类错误——编码、逻辑、语义及其他错误(多数无法被编译及其他工具捕获)。其中部分缺陷可能在后续测试阶段被发现,许多情况下则由客户在生产代码中报告。企业不得不投入大量资源(资金与时间)查找并修复这些本可在正确编码时避免的缺陷。此外,软件中隐藏的缺陷可能导致安全漏洞,使攻击者有可能入侵系统与应用程序。有趣的是,过去已修复的相同或相似问题/缺陷(虽在不同模块中)往往会在生产代码中再次出现。我们开发了一种新颖的基于 AI 的系统,其利用由源代码生成的抽象语法树(AST)的深度表示以及主动反馈回路,在开发阶段即开发者编写新代码(逻辑和/或函数)时,识别并警示潜在缺陷。该工具作为插件与 IDE 集成,在后台运行,指出已有的相似函数/代码段及这些函数中任何相关的缺陷。该工具使开发者能在开发时即刻采纳建议,而非等待单元测试/质量保证/客户提出缺陷。我们在开源代码及 Cisco 的 C 与 C++ 代码库上评估了该工具。结果证实,源代码的深度表示与主动反馈回路是一种用于预测代码中安全及其他漏洞的可靠方法。
引用
@article{arxiv.2004.12783,
title = {Predicting Vulnerability In Large Codebases With Deep Code Representation},
author = {Anshul Tanwar and Krishna Sundaresan and Parmesh Ashwath and Prasanna Ganesan and Sathish Kumar Chandrasekaran and Sriram Ravi},
journal= {arXiv preprint arXiv:2004.12783},
year = {2020}
}
备注
8 Pages