实现每日十亿次SMT查询:AWS的技术探索与实践
1. 背景与Zelkova工具介绍
亚马逊网络服务(AWS)在开发和应用形式化工具与技术方面投入巨大,以证明关键内部系统的正确性,并为用户提供其系统正确性的保证。在AWS身份与访问管理(IAM)背景下,IAM用于控制对AWS中应用程序、数据和工作负载等资源的访问。资源所有者通过编写策略来配置访问权限,这些策略用IAM策略语言表达。
为帮助AWS用户保护其资源,开发了Zelkova这一策略分析工具。它将策略和属性转换为可满足性模理论(SMT)公式,并使用SMT求解器来证明各种安全属性。SMT编码使用了字符串、正则表达式、位向量和整数比较等理论,由于字符串约束中使用了通配符,决策问题是PSPACE完全的。Zelkova采用组合求解器,后端调用多个求解器,使用最先返回结果的求解器的结果。集成Zelkova的AWS服务包括Amazon S3、AWS Config等,它推动了预防性控制功能,如Amazon S3阻止公共访问。
然而,Zelkova是由形式化方法专家开发的,使用它需要一定的专业知识,不能期望所有AWS用户都具备这些能力。因此,为使Zelkova能被所有AWS用户使用,提出了三个关键解决方案。
2. 消除编写规范
传统的Zelkova验证方法需要输入策略和规范,并输出是或否的答案。开发者和云管理员编写策略,安全工程师编写可接受行为的规范。但这种方法难以扩展到所有AWS用户,瓶颈在于人工编写规范的工作量大,且用户无法确定规范的正确性。
为解决这个问题,改变了方法,让自动化推理引擎负责生成规范。现在Zelkova接收策略作为输入,返回详细的发现结果,安全工程师审查这些发
超级会员免费看
订阅专栏 解锁全文
903

被折叠的 条评论
为什么被折叠?



