FORTIFY:从“代码路径”出发,真正定位漏洞的执行轨迹

“ 在真实软件系统中,漏洞往往并不对应单一语句或函数,而是隐藏在特定执行路径中:只有当程序沿着某条路径运行、特定条件被同时满足时,漏洞才会被触发。然而,现有漏洞检测方法仍停留在函数级或代码片段级建模,忽略了路径内部的控制流顺序、特征依赖与图结构信息,导致模型“知道哪里有风险”,却说不清“风险是如何发生的”。

针对这一问题,研究者提出了 FORTIFY ,一种面向路径级漏洞检测的表示与建模框架,显式融合特征导向表示与程序图拓扑结构,让模型能够真正理解漏洞的执行上下文。”

  • 📄 论文标题:FORTIFY: Feature-Oriented Representation and Graph Topology Integration for Path-Level Vulnerability Detection

  • 📅 发表时间:ACM Transactions on Architecture and Code Optimization, 2025

  • 🏫 作者单位:大连海事大学、梅西大学

  • 💡开源代码:    https://github.com/ACoTAI/FORTIFY

01—方法介绍

FORTIFY的核心思想是:漏洞是“沿路径发生的行为”,而不是孤立代码位置的属性。为此,论文从“路径”和“结构”两个维度重构漏洞表示方式,整体流程可概括为三步:

① 路径级特征抽取

以执行路径为基本分析单元,提取语义、控制与数据相关特征。

② 特征导向表示学习

对不同类型特征进行针对性编码,避免信息混杂与语义稀释。

③ 图拓扑融合建模

将路径嵌入到程序图结构中,联合建模顺序关系与结构依赖。

图片

图 1. FORTIFY整体流程 

小结:FORTIFY 不再“看代码块”,而是“看代码是如何一步步执行到漏洞的。

02—关键机制

  1. 路径级漏洞检测视角,突破函数级、行级检测的表达上限。
  2. 特征导向表示设计,针对不同特征类型进行差异化建模。
  3. 图拓扑深度融合,显式利用程序结构约束路径语义。
  4. 更强可解释性,模型预测结果可回溯至具体执行路径。

              模块

              设计思路

              作用

              路径级建模

              以执行路径作为最小分析单元

              捕捉漏洞触发的完整上下文

              特征导向表示

              区分语法、语义、控制等特征

              避免多源特征相互干扰

              程序图拓扑

              融合 CFG / 程序依赖结构

              保留路径间的结构关联

              路径级预测

              深度学习分类模型

              判断路径是否存在漏洞

              小结:该框架的关键在于“路径 + 结构”的联合,而非二者割裂建模。

              03—实验结果

              为了评估FORTIFY的性能,实验使用了四个公开可用的漏洞数据集:SARD、NVD、FFmpeg和PX4无人机平台。这些数据集涵盖了广泛的C/C++漏洞类型,确保了多样性和代表性。主要实验结果如下。


              (1)表1展示了FORTIFY和基线模型中不同模型的F1分数。为了验证FORTIFY在检测各种漏洞方面的能力,实验在19种CWE类型上将其性能与九个基线模型进行了比较。

              表1. F1分数(↑)在漏洞类型和模型之间的比较

              图片

              (2)表2报告了FORTIFY与基于Transformer和LLM的基线比较结果,实验在具有代表性的CWE类别上评估了最新的预训练模型。

              表2. 在具有代表性的CWE类型中,与Transformer/LLM基线模型的F1分数对比

              图片

              (3)图2展示了SCG、PDG和随机切片策略之间的路径覆盖对比。实验对FFgmep实例中的250个真实漏洞进行了敏感路径覆盖评估。SCG(绿色)保留了完整的攻击路径,如缓冲区溢出链,而PDG(橙色)则忽略了跨函数依赖关系。

              图片

              图2. 典型漏洞的路径覆盖率对比

              小结:FORTIFY是一个基于图的漏洞检测框架,它集成了程序依赖图(PDGs)、多类型边建模以及一种新颖的边-超图嵌入机制。针对19种CWE漏洞类型的实验评估表明,FORTIFY的F1分数达到了97.2%,并且在PX4等真实世界软件上保持了高准确性和鲁棒性。

              📌 总结

              FORTIFY从程序真实执行行为出发,重新定义了漏洞检测的建模粒度。通过将路径级语义与程序图拓扑深度融合,该方法让模型不再停留在“代码长什么样”,而是理解“漏洞是如何一步步被触发的”。

              这一工作表明,未来漏洞检测的重要方向之一,或许正是从静态位置判断,走向执行语义理解。 

              📣 欢迎留言讨论

              • 你认为路径级漏洞检测是否具备足够的工程可扩展性?

              • 在大规模项目中,路径数量爆炸问题该如何权衡精度与效率?

              📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

              评论
              添加红包

              请填写红包祝福语或标题

              红包个数最小为10个

              红包金额最低5元

              当前余额3.43前往充值 >
              需支付:10.00
              成就一亿技术人!
              领取后你会自动成为博主和红包主的粉丝 规则
              hope_wisdom
              发出的红包
              实付
              使用余额支付
              点击重新获取
              扫码支付
              钱包余额 0

              抵扣说明:

              1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
              2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

              余额充值