一句话:提出贝叶斯程序分析引导的目标导向灰盒模糊测试,通过可达目标预测与反馈更新提升漏洞发现能力。
论文针对大规模目标导向灰盒模糊测试(LTGF)中目标优先级排序粗糙、依赖启发式且未系统利用模糊测试反馈的问题,将优先级排序形式化为“可达模糊测试目标问题”。方法上,作者重新定义贝叶斯程序分析的语义,把概率附加到分析规则并将分析结果转化为贝叶斯模型,用于预测各目标能否被模糊器到达,同时根据模糊器反馈动态调整预测,从而提供细粒度、系统化且自适应的引导。评估在真实程序上与多个最新模糊器对比,发现 3.25 至 13 倍更多唯一漏洞,并在经过充分测试的程序中发现 39 个未知漏洞,其中 30 个获得 CVE。
We propose a novel approach that leverages Bayesian program analysis to guide large-scale target-guided greybox fuzzing (LTGF). LTGF prioritizes program locations (targets) that are likely to contain bugs and applies directed mutation towards high-priority targets. However, existing LTGF approaches suffer from coarse and heuristic target prioritization strategies, and lack a systematic design to fully exploit feedback from the fuzzing process. We systematically define this prioritization process as the reachable fuzzing targets problem. Bayesian program analysis attaches probabilities to analysis rules and transforms the analysis results into a Bayesian model. By redefining the semantics of Bayesian program analysis, we enable the prediction of whether each target is reachable by the fuzzer, and dynamically adjust the predictions based on fuzzer feedback. On the one hand, Bayesian program analysis builds Bayesian models based on program semantics, enabling systematic and fine-grained prioritization. On the other hand, Bayesian program analysis systematically learns feedback from the fuzzing process, making its guidance adaptive. Moreover, this combination extends the application of Bayesian program analysis from alarm ranking to fully automated bug discovery. We implement our approach and evaluate it against several state-of-the-art fuzzers. On a suite of real-world programs, our approach discovers 3.25× to 13× more unique bugs compared to baselines. In addition, our approach identifies 39 previously unknown bugs in well-tested programs, 30 of which have been assigned CVEs.