近日,第41届IEEE国际软件维护与演化会议(IEEE International Conference on Software Maintenance and Evolution, ICSME 2025)在新西兰奥克兰成功举办。ICSME是中国计算机学会(CCF)推荐的软件工程领域B类国际学术会议,历史悠久、影响力广泛,是全球软件维护、演化与分析研究社区交流最新成果、分享创新思想的重要国际平台。
在本届会议中,北京航空航天大学软件学院智能软件工程研究所师生共有两篇研究论文被录用。 论文的第一作者分别为学院博士研究生田文通 ,以及硕士研究生邓兴靖和本科生柳政尧(两人为共同第一作者), 指导老师为高祥副教授和孙海龙教授。 由邓兴靖和柳政尧同学共同完成的论文 《Code Property Graph Meets Typestate: A Scalable Framework to Behavioral Bug Detection》荣获IEEE Computer Society TCSE Distinguished Paper Award 。这是北航作为第一作者单位首次在ICSME会议上获得该荣誉,实现了在该重要国际会议上奖项零的突破。

该获奖论文的研究聚焦于大型软件系统中一类难以检测的安全漏洞——行为型漏洞。这类漏洞的产生源于程序运行时对系统资源或对象状态的错误操作序列,其特殊性在于只有当代码按特定顺序执行时才会触发,因此极难被传统静态分析方法发现。"双重释放"(Double-Free)就是其中典型代表,指程序错误地对同一块内存资源执行了多次释放操作。这种操作违反了内存管理的基本规则,会导致程序状态混乱,可能引发系统崩溃或更严重的安全风险。现有主流检测技术在应对此类漏洞时面临两个主要挑战:首先,它们缺乏对程序运行时状态变化的追踪能力,难以捕捉资源在不同执行路径下的生命周期变化;其次,当分析大型项目(达到百万行代码规模)时,传统方法会产生过大的分析开销,导致检测效率急剧下降,实际应用受到限制。

为应对行为型漏洞的检测挑战,该团队设计并实现了QVoG(Querying Vulnerability over Graph)框架。其核心思想是将复杂的行为型漏洞检测问题,拆解为代码属性图的构建、行为的建模和模式的查询三个关键步骤。该方法正是围绕这三个步骤中的核心创新点展开:
1) 创新的图结构:语句级的程序属性图(CPG)
该框架首先改进了静态分析的基础——代码属性图。它没有在微观的抽象语法树(AST)层面构建,而是创新性地在语句(statement)级别构建CPG。在这种设计下,完整的AST被存储为语句节点的一个属性,而非图的独立节点,这极大地降低了图的冗余和复杂性。优化后的CPG主要融合了控制流(CFG)、数据流(DFG)和调用图(CG)三种边,并显式地移除了在真实场景下求解低效的程序依赖图(PDG)。实验证明,该方法可将图规模缩减至传统方法的十分之一以下,为大规模代码分析奠定了基础。
2) 精准的行为建模:基于类型状态的形式化方法
在高效图结构的基础上,该工作引入了类型状态分析(Typestate Analysis)来精确地定义“什么是错误的行为”。该技术使用确定性有限自动机(DFA)为变量或资源的生命周期建立一个形式化的状态转换模型。这个模型严格定义了合法的操作序列(例如,内存必须在分配后才能使用,在使用后才能释放),任何偏离该模型的路径都将被视为潜在漏洞。
3) 高效的检测引擎:基于谓词的查询机制
为了将抽象的DFA行为模型应用到具体的代码属性图上,QVoG设计了一套基于谓词的查询与检测机制。它包含两大关键组件:
·FilterPredicate: 作为一个高效的过滤器,它能在CPG中快速筛选出与状态转换相关的关键操作节点(如malloc, free)。
·FlowPredicate: 作为一个路径验证器,它负责验证两个节点间的路径是否严格符合DFA定义的合法状态转换序列。
最终,在这套机制之上,该框架还设计了一种领域特定语言(DSL),允许分析师以类似SQL的直观方式编写自定义查询。这些查询在底层会被自动转换为对谓词的调用,大幅降低了使用门槛。。
实验评估与核心结果
为验证其有效性,相关实验围绕三个研究问题(RQ)展开,以全面评估QVoG的性能与效果。
·RQ1: 性能评估

将QVoG与主流工具Joern进行比较后发现,在图规模上,QVoG展现出巨大优势。例如在barebox项目(385k行代码)上,QVoG的图大小仅为Joern的约七分之一。在处理PostgreSQL项目(1834k行代码)时,Joern因超时而失败,而QVoG成功完成分析。在查询速度方面,QVoG的CPU时间比Joern快至少三分之一。
·RQ2: 在基准测试集上的有效性

在Juliet测试集上,QVoG与Joern, CodeQL, Infer等多种工具进行了对比。结果显示,QVoG在多个CWE类别上表现优异。例如,在CWE-415(Double Free)上,其召回率达到 92.10% ,远超其他工具。在CWE-416(Use-After-Free)上,QVoG在高达97.43%的精度下,实现了 100%的召回率 。
·RQ3: 在真实世界项目中的应用

研究团队将QVoG应用于多个大型开源项目,共发现了25个安全问题,其中17个得到了项目开发者的确认和修复。更重要的是,发现的漏洞中有2个被分配官方CVE编号,这直接证明了QVoG在发现真实、高价值漏洞方面的有效性。
论文链接:https://gaoxiang9430.github.io/papers/ICSME2025b.pdf