该论文针对形式化验证程序中的一个关键盲区:即便程序通过了形式化验证,其正确性仍受限于规范(SPEC)的完整性。若规范本身存在漏洞或不完整,验证结果将失去意义。作者提出了一种名为 Fast(Fuzzing-Assisted Specification Testing)的自动化方法,利用同一代码库中规范、实现和测试套件均由同一业务需求派生出的冗余性和多样性进行交叉验证。核心思想是:如果某个意图在实现和测试用例中有所体现,却未被规范捕获,则强烈暗示规范存在盲点。Fast 首先通过变异测试定位规范缺口,即检查代码变体是否仍然符合原始规范;若符合,则进一步利用测试套件推断该缺口是有意引入还是疏忽所致。针对不同规模的代码库,Fast 可选择枚举式或进化式方式生成代码变体。作者在两个具有形式化验证的开源代码库上应用 Fast,分别确认了 13 个和 21 个规范盲点,证明规范不完整在真实应用中普遍存在。该研究为提升形式化验证的可信度提供了一种辅助手段,适合形式化方法、软件测试和安全研究人员阅读。
💡 推荐理由: 形式化验证被用于高安全性系统,但规范不完整会直接导致验证结果失真。该研究首次系统性地利用变异测试和测试套件自动检测规范盲点,为蓝队评估第三方形式化验证代码的可信度提供了新思路。
🎯 建议动作: 研究跟进