基于存储库级别图表示学习的增强安全补丁检测
软件工程
2024-12-12 v1 人工智能
密码学与安全
摘要
软件供应商通常在不提供充分建议书(例如通用漏洞披露)或通过延迟更新资源(例如国家漏洞数据库)的情况下默默发布安全补丁。因此,检测这些安全补丁以确保安全软件维护变得至关重要。然而,现有方法面临以下挑战:(1)它们主要关注补丁本身的信息,忽略了存储库中复杂的依赖关系。(2)安全补丁通常涉及多个函数和文件,这增加了对表示进行良好学习的难度。为缓解上述挑战,本文提出了存储库级别安全补丁检测框架,称为RepoSPD,该框架包括三个关键组件:1)存储库级别图构建RepoCPG,它通过在存储库级别合并补丁前后的源代码来表示软件补丁;2)结构感知补丁表示,通过融合图和序列分支旨在理解多个代码更改之间的关系;3)渐进式学习,促进模型在语义和结构信息之间进行平衡。为评估RepoSPD,我们采用两种在安全补丁检测中广泛使用的数据集:SPI-DB和PatchDB。我们进一步将这些数据集扩展到存储库级别,分别包含C/C++编程语言中总计为20,238和28,781个存储库版本,分别表示为SPI-DB*和PatchDB*。我们将RepoSPD与六种现有安全补丁检测方法以及五种静态工具进行比较。我们的实验结果表明,RepoSPD在两个数据集上的准确率分别比最先进的基线提高了11.90%和3.10%。
引用
@article{arxiv.2412.08068,
title = {Repository-Level Graph Representation Learning for Enhanced Security Patch Detection},
author = {Xin-Cheng Wen and Zirui Lin and Cuiyun Gao and Hongyu Zhang and Yong Wang and Qing Liao},
journal= {arXiv preprint arXiv:2412.08068},
year = {2024}
}
备注
13 pages. This paper is accepted by ICSE 2025