中文

反应式自下而上测试

密码学与安全 2025-09-05 v1 软件工程

摘要

现代计算系统仍存在诸多软件漏洞。工程师们采取多种手段进行检测,其中动态测试是最常见且最有效的一种方法。然而,大多数动态测试技术遵循自上而下的范式,难以到达和测试调用图中深层的函数。虽然近期研究提出了自下而上的方法以克服这些限制,但面临着误报和生成符合整个程序上下文的有效输入的挑战。本文引入一种新范式,称为反应式自下而上测试(Reactive Bottom-Up Testing)。我们的洞见是:函数级别的测试虽必要,却不足以验证函数中的漏洞。我们需要的是一种系统方法,不仅在更广泛的程序上下文中测试函数,还要验证其行为,确保检测到的漏洞是可到达且可触发的。我们开发了一个三阶段的自下而上测试方案:(1)识别可能存在漏洞的函数并生成类型和上下文感知的测试 harness;(2)进行模糊测试以发现崩溃并通过符号执行提取输入约束;(3)组合约束以验证崩溃,消除误报。我们实现了一个自动化原型系统,称为Griller。我们在受控环境中使用包含48个已知漏洞的基准测试中评估了Griller,其中成功检测到28个已知漏洞。此外,我们在Pacman等多个实际应用中评估了Griller,它发现了6个先前未知的漏洞。我们的发现表明,反应式自下而上测试可以显著提升复杂系统中漏洞的检测,为更健壮的安全实践铺平了道路。

关键词

引用

@article{arxiv.2509.03711,
  title  = {Reactive Bottom-Up Testing},
  author = {Siddharth Muralee and Sourag Cherupattamoolayil and James C. Davis and Antonio Bianchi and Aravind Machiry},
  journal= {arXiv preprint arXiv:2509.03711},
  year   = {2025}
}