Transformer + 多模态代码:实现语句级漏洞定位的新方法

📅 2026/7/19 14:11:15
Transformer + 多模态代码:实现语句级漏洞定位的新方法
“ 在实际安全审计中开发者更关心的是漏洞具体位于哪一行代码哪些语句共同触发漏洞漏洞的触发逻辑是什么然而现有方法在细粒度漏洞定位方面仍存在明显不足单模态方法只能利用源代码信息难以捕获跨语句的长期依赖关系无法充分利用编译后汇编代码中的底层语义信息。因此论文提出一种基于 Transformer 的跨模态细粒度漏洞检测方法通过融合源代码与汇编代码特征实现语句级漏洞定位。”论文标题Transformer-based statement level vulnerability detection by cross-modal fine-grained features capture发表时间Information and Software Technology, 2025作者单位哈尔滨工业大学开源代码https://github.com/alg4ahvnt/postg-svn01—方法介绍图1(b)仅展示了与图1(a)源代码漏洞函数test()中的语句相对应的汇编指令序列。该漏洞示例是一段由多个漏洞语句触发的复杂漏洞代码包含一个整数溢出漏洞和一个缓冲区溢出漏洞。图1. SARD数据集中源代码与汇编代码之间细粒度对齐漏洞的示例该方法的核心思想是通过融合源代码与汇编代码的细粒度对齐信息并利用 Transformer 捕获长距离依赖实现精确的漏洞语句定位。整体框架分为三个阶段① 数据准备收集漏洞项目并生成源代码与汇编代码。② 跨模态代码切片通过 cross-slicing 技术生成源代码和汇编代码的对齐切片。③ Transformer 模型检测输入双模态代码切片预测漏洞语句位置。图2. 基于跨模态细粒度特征捕获的Transformer语句级漏洞检测概述小结将漏洞检测从“是否存在漏洞”升级为“漏洞具体在哪一行”。02—关键机制1.跨模态细粒度特征融合同时利用源代码与汇编代码信息进行漏洞检测。2.双模态切片净化机制通过删除无关代码提高漏洞特征信噪比。3.Transformer 语句级建模利用自注意力机制捕获跨语句依赖关系。4.精细化漏洞定位指标采用 IOU 等指标评估语句级漏洞检测性能。模块设计思路作用跨模态代码切片对源代码与汇编代码进行对齐切片建立双模态语义联系切片净化Slice Purification删除与漏洞无关代码减少噪声信息汇编语义增强将寄存器信息替换为变量语义提升模型理解能力Transformer 编码器捕获语句之间的长期依赖关系提取漏洞上下文特征语句级预测输出具体漏洞语句位置实现精确漏洞定位小结多模态语义融合 Transformer 长距离依赖建模是该方法的核心优势。03—实验结果作者制作了源代码和汇编代码的双模态数据集可在https://github.com/vulcoca/vul_coca上获取。数据集包括双模态SARD数据集和两个双模态真实世界项目数据集FFmpeg 1.2.2版本包含3478个源文件和637个测试用例而OpenSSL 1.0.1e版本包含2203个源文件和636个测试用例。主要实验结果如下。1实验验证所提方法在粗粒度漏洞检测任务中的性能。在SARD数据集和两个真实项目数据集上的实验结果分别如表1和表2所示。所提出的方法表现最佳其FPR仅为0.1%-0.2%。表1. SARD数据集上的粗粒度漏洞检测结果表2. FFmpeg和OpenSSL数据集上的粗粒度漏洞检测结果2实验验证所提方法在细粒度漏洞检测任务中的性能。为了使实验更加全面补充了两个不同规模和复杂度的真实项目数据集PostgreSQL和Apache SubversionSVN。实验结果见表3。 与LineVul相比所提出的方法取得了最佳的IOU性能FPR性能更为显著在所有数据集上的误报率均不超过0.2%。表3. FFmpeg和OpenSSL数据集上的粗粒度漏洞检测结果小结本文提出的方法通过融合细粒度对齐的源代码和汇编代码的信息并结合使用双模态交叉切片方法与基于双模态的切片纯化方法排除了与漏洞无关的源代码行并降低了汇编代码语义理解的难度。 总结该论文的重要贡献在于通过融合源代码语义信息、汇编代码底层执行信息、细粒度语句对齐关系模型能够更准确地识别漏洞语句从而实现更精确的漏洞定位。该方法为未来的多模态漏洞检测与精细化漏洞定位提供了新的研究思路。 欢迎留言讨论你认为未来漏洞检测模型是否都会采用多模态代码信息源代码 二进制 / 汇编信息是否会成为漏洞检测的主流范式 点赞 收藏 分享你的支持是我们持续解析高水平软件安全论文的最大动力