中文

AIBugHunter:一种用于预测、分类与修复软件漏洞的实用工具

软件工程 2023-05-29 v1 密码学与安全

摘要

已有许多基于机器学习的方法被提出用于自动检测、定位与修复软件漏洞。尽管基于机器学习的方法比基于程序分析的漏洞分析工具更有效,但极少被集成到现代IDE中,阻碍了实际采用。为弥补这一关键差距,我们提出AIBugHunter,一种集成于Visual Studio Code的、面向C/C++语言的新型基于机器学习的软件漏洞分析工具。AIBugHunter帮助软件开发者在编程过程中实现实时漏洞检测、解释与修复。具体而言,AIBugHunter扫描开发者的源代码以(1)定位漏洞,(2)识别漏洞类型,(3)评估漏洞严重程度,以及(4)建议漏洞修复。在本文中,我们提出一种基于多目标优化(MOO)的新型漏洞分类方法以及一种基于Transformer的评估方法,以帮助AIBugHunter准确识别漏洞类型并评估严重程度。我们在由超过18.8万个C/C++函数组成的大型数据集上的实证实验证实,我们所提方法在漏洞分类与评估上比其他最先进的基线方法更准确。此外,我们开展了包括调查研究和用户研究在内的定性评估,以获取软件从业者对我们AIBugHunter工具的看法,并评估AIBugHunter可能对开发者安全方面生产力产生的影响。我们的调查显示AIBugHunter被认为有用,其中90%的参与者考虑采用我们的AIBugHunter。最后同样重要的是,我们的用户研究表明AIBugHunter可能提升开发者在软件开发过程中应对网络安全问题的生产力。

关键词

引用

@article{arxiv.2305.16615,
  title  = {AIBugHunter: A Practical Tool for Predicting, Classifying and Repairing Software Vulnerabilities},
  author = {Michael Fu and Chakkrit Tantithamthavorn and Trung Le and Yuki Kume and Van Nguyen and Dinh Phung and John Grundy},
  journal= {arXiv preprint arXiv:2305.16615},
  year   = {2023}
}

备注

34 pages, Accepted at Empirical Software Engineering Journal