论文
Reparo从仓库证据合成访问策略并以独立行为预期验证
Reparo: Synthesizing and Validating Access Control Policies
摘要
为软件应用程序编写正确的访问控制策略很困难,因为它需要授权语言方面的专业知识以及对应用程序授权要求的透彻理解。现有的策略合成和挖掘方法假定存在显式授权输入和可信的参考策略。然而,授权逻辑通常分布在代码、注释和文档中,而不是捕获在单个工件中,并且实际应用程序存储库中开发人员定义的策略通常不完整、过时或不正确。我们推出 Reparo,这是一个用于访问控制策略合成、修复和验证的 LLM 辅助管道。 Reparo 收集授权意图的存储库证据,并使用它来指导 LLM 生成初始策略。然后,它使用官方策略语言验证工具来识别并自动修复错误。对于语义验证,不同的 LLM 从同一存储库证据中派生出行为判定器,其中包含具有预期允许或拒绝决策的具体授权请求,Reparo 根据生成的策略执行该决策。我们在依据统计要求确定规模的 390 个测试用例样本上,人工评估该判定器。我们在使用 Cedar、OpenFGA 或 Rego 的 228 个真实 GitHub 存储库上评估 Reparo。在这些存储库中,40.6-55.7% 的存储库策略未通过其语言的验证工具,而 Reparo 在修复后生成 99.0-100% 的有效策略。 OpenFGA 与判定器的一致性为 98.2-99.6%,Cedar 为 82.0-86.5%,Rego 为 76.3-80.2%。手动审核确认 91.5-96.9% 的抽样测试用例正确。合成和验证一个存储库的策略大约需要五分钟,成本为 $0.55-$1.57。这些结果表明,即使不存在可靠的参考策略,存储库证据也可以支持访问策略合成和独立验证。
