paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Precise Data-Driven Approximation for Program Analysis via Fuzzing

基于模糊测试的程序分析精确数据驱动近似
ASE 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)2023匹配度 6/10 · 该论文用 fuzzing 样本对可达程序状态做概率近似,以提升抽象解释与符号执行精度,属于数据驱动/概率式的程序分析,与用户关注的“贝叶斯程序分析”方向有方法论上的呼应,且兼具抽象解释、符号执行与修复排序的工程实现与量化评测(MCC、F1、solver 调用数、patch rank)。但它既不涉及 LLM/Agent 与静态分析的交叉,也不面向浮点程序分析,因此并非正中核心。引用 4 inbox
Nikhil Parasaram, Earl T. Barr, Sergey Mechtaev, Marcel Böhme
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 PSP,用 fuzzing 样本概率近似可达状态,提升抽象解释与符号执行精度并辅助修复排序。

抽象解释与符号执行常因过近似或欠近似而不精确,导致误报与漏报。本文提出程序状态概率(PSP)数据结构,利用 fuzzing 执行样本对可达程序状态进行概率近似。其直觉是状态可达概率差异很大,因而可在仅承担小概率不 sound/不完备风险时显著提升面向缺陷发现的分析精度:忽略过近似判定可行但低概率的状态,并识别欠近似判定不可行但高概率的状态。PSP 在三类任务中有效:增强 Clam 抽象解释器,使 MCC 从 0.09 升至 0.27、F1 从 0.22 升至 0.34;指导符号执行搜索,优先高概率状态,发现更多缺陷并减少求解器调用;用于程序修复补丁排序,使平均补丁排名降低 26%。

问题
抽象解释和符号执行因过近似/欠近似而不精确,导致误报和漏报。
方法
提出 PSP,用 fuzzing 执行样本概率化近似可达状态,并据此忽略低概率可行状态、识别高概率不可行状态。
评估
在 Clam 抽象解释、符号执行搜索和程序修复补丁排序三类任务上评估,分别提升 MCC/F1、增加缺陷发现并减少求解器调用、降低平均补丁排名。
原文摘要(Abstract)

Program analysis techniques such as abstract interpretation and symbolic execution suffer from imprecision due to over- and underapproximation, which results in false alarms and missed violations. To alleviate this imprecision, we propose a novel data structure, program state probability (PSP), that leverages execution samples to probabilistically approximate reachable program states. The core intuition of this approximation is that the probability of reaching a given state varies greatly, and thus we can considerably increase analysis precision at the cost of a small probability of unsoundness or incompleteness, which is acceptable when analysis targets bug-finding. Specifically, PSP enhances existing analyses by disregarding low-probability states deemed feasible by overapproximation and recognising high-probability states deemed infeasible by underapproximation. We apply PSP in three domains. First, we show that PSP enhances the precision of the Clam abstract interpreter in terms of MCC from 0.09 to 0.27 and F1 score from 0.22 to 0.34. Second, we demonstrate that a symbolic execution search strategy based on PSP that prioritises program states with a higher probability increases the number of found bugs and reduces the number of solver calls compared to state-of-the-art techniques. Third, a program repair patch prioritisation strategy based on PSP reduces the average patch rank by 26%.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{ParasaramBMB23,
  title = {Precise Data-Driven Approximation for Program Analysis via Fuzzing},
  author = {Nikhil Parasaram and Earl T. Barr and Sergey Mechtaev and Marcel Böhme},
  booktitle = {ASE},
  year = {2023},
  doi = {10.1109/ase56229.2023.00185}
}