paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Bridging Coverage and Confidence: Reliable Static False Alarm Elimination via Input-Agnosticity

桥接覆盖率与置信度:基于输入无关性的可靠静态误报消除
PLDI 10(PLDI)2026匹配度 3/10 · 论文属于传统静态分析误报消除,虽与程序分析相关,但未涉及用户核心关注的 LLM/Agent 与静态分析交叉、浮点程序分析或贝叶斯程序分析。可作为静态分析背景参考,但不是当前研究方向的直接匹配。引用 0 inbox
Jiayi Wang, Yu Wang, Linzhang Wang, Ke Wang
crossref: 2026-09-10

AI 速览

一句话:提出 RICAN,利用输入无关性与定向模糊测试覆盖关键路径,可靠消除静态分析误报。

静态分析误报率高,已有基于模型检测、符号执行、动态分析、测试或机器学习的方法要么难以扩展,要么可能错误删除真实缺陷。本文提出 RICAN,其核心洞察是输入无关性:若告警有效性在每条执行路径上均独立于程序输入,则当测试已覆盖从入口到告警点的所有相关路径且未触发缺陷时,可安全判定为误报。RICAN 先用数据依赖分析识别输入无关告警,再计算仅包含可能影响告警有效性的分支与循环的必要路径集,最后利用动态测试与后向定向模糊测试覆盖这些关键路径。在六个真实开源项目上,RICAN 从 2912 个 double free、use-after-free 和空指针解引用告警中可靠消除 1313 个误报(45.09%),开销可忽略;用户研究显示其平均减少超过 70% 的人工检查工作量,并帮助程序员更快、更准确地发现缺陷。

问题
静态分析虽能发现软件缺陷,但误报率高;现有降误报方法难以扩展,或会错误消除真实缺陷。
方法
提出输入无关性概念,用数据依赖分析识别输入无关告警,计算影响告警有效性的必要路径,并以动态测试和后向定向模糊测试覆盖这些关键路径来安全消除误报。
评估
在六个真实开源项目上评估,对 2912 个 double free、use-after-free 和空指针解引用告警消除 1313 个误报(45.09%),开销可忽略;用户研究表明人工检查工作量平均减少超过 70%。
原文摘要(Abstract)

Static analysis is a foundational technique for detecting software defects, yet it notoriously suffers from high false positive rates. Prior efforts to reduce false positives via model checking, symbolic execution, dynamic analysis, testing, or machine learning either fail to scale or mistakenly eliminate real defects. This paper presents RICAN, a novel approach that leverages dynamic testing to reliably eliminate false alarms in static analysis. The key insight behind RICAN is the concept of input-agnosticity: if the validity of an alarm is independent of program inputs along each execution path, then once all such paths from the program entry to the alarm site have been exercised by tests without triggering the alarmed bug, the alarm can be safely classified as a false positive. To realize this insight, RICAN uses data-dependence analysis to identify input-agnostic alarms among all reported alarms. However, validating even input-agnostic alarms requires exploring all feasible paths, which is generally infeasible. To address this, RICAN computes a necessary set of paths by identifying only those branches and loops that may influence the alarm's validity. Finally, RICAN eliminates false alarms using existing dynamic testing and post-directed fuzzing to cover these critical paths. We evaluate RICAN on six real-world open-source projects. Our experiments show that RICAN can reliably eliminate 1,313 (45.09%) false positives across 2,912 double free, use-after-free, and null pointer dereference alarms, while incurring negligible overhead. Our user studies further demonstrate that RICAN reduces the manual effort required for alarm inspection by over 70% on average and helps programmers find bugs more quickly and accurately, highlighting its practical usefulness in real-world static analysis.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{WangWWW26,
  title = {Bridging Coverage and Confidence: Reliable Static False Alarm Elimination via Input-Agnosticity},
  author = {Jiayi Wang and Yu Wang and Linzhang Wang and Ke Wang},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {PLDI},
  year = {2026},
  doi = {10.1145/3808301}
}