中文

基于语义漏洞图的无偏 Transformer 源代码学习

密码学与安全 2024-01-09 v1 人工智能 机器学习

摘要

多年来,开源软件系统已成为威胁行为者的猎物。尽管开源社区迅速修补漏洞,代码漏洞筛查仍应从一开始就作为敏捷软件开发不可或缺的一部分。遗憾的是,当前的漏洞筛查技术在识别新型漏洞或向开发者提供代码漏洞及分类方面效果不佳。此外,由于对手部署的新型攻击策略,用于漏洞学习的数据集往往表现出与真实世界测试分布的分布偏移,因此机器学习模型的性能可能受阻或产生偏差。为解决这些问题,我们提出了一种联合插值多任务无偏漏洞分类器,由 transformer “RoBERTa” 和图卷积神经网络(GCN)组成。我们提出了一种利用源代码语义漏洞图(SVG)表示的训练过程,该图通过整合顺序流、控制流和数据流的边,以及一种称为偷猎者流(PF)的新流构建。偷猎者流边缩小了动态与静态程序分析之间的差距,并处理复杂的长程依赖。此外,我们的方法通过结合 Focal Loss 目标函数与 SVG,减少了分类器对不平衡数据集的偏差。值得注意的是,实验结果表明,我们的分类器在漏洞检测上以更少的假阴性和假阳性优于 SOTA 结果。在多个数据集上测试我们的模型后,其在最佳情况下显示出至少 2.41% 和 18.75% 的提升。使用 N-day 程序样本进行评估表明,我们提出的方法达到了 93% 的准确率,并能够从流行的 GitHub 仓库中检测出 4 个零日漏洞。

关键词

引用

@article{arxiv.2304.11072,
  title  = {An Unbiased Transformer Source Code Learning with Semantic Vulnerability Graph},
  author = {Nafis Tanveer Islam and Gonzalo De La Torre Parra and Dylan Manuel and Elias Bou-Harb and Peyman Najafirad},
  journal= {arXiv preprint arXiv:2304.11072},
  year   = {2024}
}