一句话:用理论无关溯因推断不可控输入约束,扩展鲁棒可达性以刻画大部分可复现的程序违反。
鲁棒可达性通过区分攻击者可控与不可控输入,保证所报告违反的可复现性,但原始分析无法刻画“大部分可复现”的违反:触发条件对所有不可控输入都成立,仅少数边界情况例外。本文提出利用理论无关的溯因技术,对不可控程序输入生成约束,以确保目标性质被鲁棒满足。该扩展对迹性质类型和验证技术保持通用,并在其推断语言上具有完备性;文中还讨论了高效探索推断空间的策略。作者实现的原型以鲁棒可达性 oracle 为基础,在软件验证与安全分析的标准基准上生成约束,并将其用于故障注入攻击场景下的漏洞刻画。结果表明,该方法在不复杂化鲁棒可达性定义的前提下克服了其原始局限。
Characterization of bugs and attack vectors is in many practical scenarios as important as their finding. Recently, Girol et al. have introduced the concept of robust reachability , which ensures a perfect reproducibility of the reported violations by distinguishing inputs that are under the control of the attacker ( controlled inputs ) from those that are not ( uncontrolled inputs ), and proposed first automated analysis for it. While it is a step toward distinguishing severe bugs from benign ones, it fails for example to describe violations that are mostly reproducible, i.e., when triggering conditions are likely to happen, meaning that they happen for all uncontrolled inputs but a few corner cases. To address this issue, we propose to leverage theory-agnostic abduction techniques to generate constraints on the uncontrolled program inputs that ensure that a target property is robustly satisfied . Our proposal comes with an extension of robust reachability that is generic on the type of trace property and on the technology used to verify the properties. We show that our approach is complete w.r.t. its inference language , and we additionally discuss strategies for the efficient exploration of the inference space. We demonstrate the feasibility of the method and its practical ability to refine the notion of robust reachability with an implementation that uses robust reachability oracles to generate constraints on standard benchmarks from software verification and security analysis. We illustrate the use of our implementation to a vulnerability characterization problem in the context of fault injection attacks. Our method overcomes a major limitation of the initial proposal of robust reachability, without complicating its definition. From a practical view, this is a step toward new verification tools that are able to characterize program violations through high-level feedback.
@article{paperbot2593,
title = {Inference of Robust Reachability Constraints},
author = {Yanis Sellami and Guillaume Girol and Frédéric Recoules and Damien Couroussé and Sébastien Bardin},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {POPL},
year = {2024},
doi = {10.1145/3632933}
}