Stratified Abstraction of Access Control Policies

Introduction

  • 提出了一种帮助用户了解其政策是否正确的方法
    • 将政策抽象为一组紧凑的积极和声明性陈述,准确总结谁可以访问资源。用户可以查看摘要,以确定该政策是否根据他们的意图授予访问权限。
    • 关键挑战:可能请求数量的组合爆炸,其中包括用户名和帐户、标识符、主机名、IP地址等。
    • 通过分层谓词抽象使总结变得易于处理,这允许我们将许多等效(具体)请求折叠成单个(抽象)查找。

Overview

  • AWS policy
    在这里插入图片描述
  • 仍然难以使用
    • Intuit:the criteria important to them
    • Formalize:用Zelkova的查询语言形式化上述内容
    • Interpret:解释工具返回的结果

Approach

  • Core contribution
    • from “is this policy correct?” to “who has access?”
  • 关键要求
    • Sound:用户需要对调查结果总结政策的信心。我们必须确保政策允许的每个访问都以一些调查结果为代表。这种过度近似至关重要地促成了有关该政策的组合推理:如果用户认为每个发现都是安全的,那么她可以放心,整个政策是安全的。
    • Precise:用户要求调查结果精确。
    • Compact:要求调查结果以紧凑的方式表示谁可以访问,同时仍然确保合理性和准确性。
  • Example (Fig.1)
    • Its SrcVpc is vpc-a, or
    • Its OrgId is o-2, or
    • Its SrcVpc is vpc-b and its OrgId is o-1.

Solution: Computing Findings via Stratified Abstraction

Concrete Enumeration

  • 流程
    • 列举可能的请求
    • 查询Zelkova以过滤掉无法访问的请求
    • 将其余作为调查结果返回
  • 特点:Sound & Precise
  • 问题:Intractable & large & useless

Predicate Abstraction

  • 流程
    • 对策略进行句法传递
    • 提取用于约束访问的常量集
    • 使用这些常量生成谓词族
  • Example (Fig.1)
    • p a = ˙ S r c V p c = v p c − a , p b = ˙ S r c V p c = v p c − b , p ⋆ = ˙ S r c V p c = ⋆ , p_a \dot{=} SrcVpc = vpc-a, p_b \dot{=} SrcVpc = vpc-b, p_{\star} \dot{=} SrcVpc = \star, pa=˙SrcVpc=vpca,pb=˙SrcVpc=vpcb,p=˙SrcVpc=,
    • q 1 = ˙ O r g I d = o − 1 , q 2 = ˙ O r g I d = o − 2 , q ⋆ = ˙ O r g I d = ⋆ . q_1 \dot{=} OrgId = o-1, q_2 \dot{=} OrgId = o-2, q_{\star} \dot{=} OrgId = \star. q1=˙OrgId=o1,q2=˙OrgId=o2,q=˙OrgId=.
    • 枚举上述谓词生成的所有cudes和查询Zelkova以确定该策略是否允许访问
      在这里插入图片描述
    • Translate each allowed cube into a finding
  • 特点:Sound & Precise
  • 问题:领域不同导致列举和查询每个cude可能相当缓慢 & not compact

Stratified Abstraction

  • 导致cude计算困难的原因可能是过于急切地拆分字段
  • 新算法
    在这里插入图片描述

Algorithm

Policies and Findings

  • Requests :令 K = { k 1 , ⋯   , k n } K = \{k_1, \cdots, k_n\} K={k1,,kn}为关键字集合,令 V k = { v 1 , ⋯   } V_k = \{v_1, \cdots\} Vk={v1,}为关键字 k k k可能的值,一个请求 r r r是关键字 k k k到值 V k V_k Vk的映射。
    • Example: r 1 = { P r i n c i p a l ↦ 123 : u s e r / A , S r c I P ↦ 192.0.2.3 , O r g I D ↦ o − 1 } r_1 = \{Principal \mapsto 123:user/A, SrcIP \mapsto 192.0.2.3, OrgID \mapsto o-1 \} r1={Principal123:user/A,SrcIP192.0.2.3,OrgIDo1}
  • Policies:一个policy是一个基于请求 p : r → B o o l p:r \to Bool p:rBool的谓词。policy的标记是它允许的请求集: γ ( p ) = ˙ { r ∣ p ( r ) = T r u e } \gamma(p) \dot{=} \{ r | p(r) = True \} γ(p)=˙{rp(r)=True}
  • Predicates:一个谓词是一个映射 ϕ : V k → B o o l \phi : V_k \to Bool ϕ:VkBool,谓词的标记是满足谓词的值集: γ ( ϕ ) = ˙ { v ∣ ϕ ( v ) = T r u e } \gamma(\phi) \dot{=} \{v | \phi(v) = True \} γ(ϕ)=˙{vϕ(v)=True}
    • partial order: ϕ 1 ⪯ ϕ 2 \phi_1 \preceq \phi_2 ϕ1ϕ2,iff γ ( ϕ 1 ) ⊆ γ ( ϕ 2 ) \gamma(\phi_1) \subseteq \gamma(\phi_2) γ(ϕ1)γ(ϕ2)
  • Findings:一个finding σ \sigma σ 是一个从关键字 K K K到谓词 Φ \Phi Φ的映射。 σ \sigma σ的标记为一组请求,其中每个键 k k k映射到 σ ( k ) \sigma(k) σ(k)表示中的值 v v v γ ( σ ) = ˙ { r ∣ ∀ k . r ( k ) ∈ γ ( σ ( k ) ) } \gamma(\sigma) \dot{=} \{r | \forall k.r(k) \in \gamma(\sigma(k))\} γ(σ)=˙{rk.r(k)γ(σ(k))}

Properties

  • Coverage:一个finding集合 ∑ \sum coverage 一个policy p p p,如果 γ ( p ) ⊆ γ ( ∑ ) \gamma(p) \sube \gamma(\sum) γ(p)γ().
  • Reducibility:一个finding σ \sigma σ 细化另一个finding σ ′ \sigma' σ,记为 σ ⊑ σ ′ \sigma \sqsubseteq \sigma' σσ,如果每个关键字 k k k都有 σ ( k ) ⪯ σ ′ ( k ) \sigma(k) \preceq \sigma'(k) σ(k)σ(k). 一个finding σ \sigma σ 细化一个finding集 ∑ \sum ,记为 σ ⊑ ∑ \sigma \sqsubseteq \sum σ,如果 σ \sigma σ细化一些 σ ′ ∈ ∑ \sigma' \in \sum σ. 需要说明的是 σ ⊑ σ ′ \sigma \sqsubseteq \sigma' σσ代表 γ ( σ ) ⊆ γ ( σ ′ ) \gamma(\sigma) \subseteq \gamma(\sigma') γ(σ)γ(σ). 一个finding σ \sigma σ 对于一个策略 p p p是 irreducibility的如果: ∃ r ∈ γ ( p ) ∩ γ ( σ ) . ∀ σ ′ ⊏ σ . r ∉ γ ( σ ′ ) \exists r \in \gamma(p) \cap \gamma(\sigma). \forall \sigma' \sqsubset \sigma. r \notin \gamma(\sigma') rγ(p)γ(σ).σσ.r/γ(σ)
  • Minimality:一个finding集 ∑ \sum 是最小的如果对于每个 ∑ ′ ⊂ ∑ \sum' \subset \sum 的表示严格包含在 ∑ \sum 的表示中。

Algorithm

根据策略 p p p和一组有限的部分有序谓词 Φ \Phi Φ,我们的目标是生成仅包含不可约结果的 p p p的最小覆盖

  • Access Oracle
    C a n A c c e s s ( p , σ ) = S o m e    i f    γ ( σ ) ∩ γ ( p ) ≠ ∅ ∣ N o n e    i f    γ ( σ ) ∩ γ ( p ) = ∅ CanAccess(p,\sigma) = Some \; if \; \gamma(\sigma) \cap \gamma(p) \neq \empty | None \; if \; \gamma(\sigma) \cap \gamma(p) = \empty CanAccess(p,σ)=Someifγ(σ)γ(p)=Noneifγ(σ)γ(p)=
  • Dominators:定义了immediately dominates set of ϕ ∈ Φ \phi \in \Phi ϕΦ为严格小于 ϕ \phi ϕ但彼此无关的元素集:
    i d o m ( ϕ ) = ˙ ϕ ′ ∣ ϕ ′ ≺ ϕ    a n d    ∀ ϕ ′ ′ . ┐ ( ϕ ′ ≺ ϕ ′ ′ ≺ ϕ ) idom(\phi) \dot{=} {\phi' | \phi' \prec \phi \; and \; \forall \phi''. \urcorner(\phi' \prec \phi''\prec \phi)} idom(ϕ)=˙ϕϕϕandϕ.(ϕϕϕ)
  • Reducing a Finding

在这里插入图片描述

  • Refining a Finding
    在这里插入图片描述
  • Summarizing Access
    在这里插入图片描述
  • Theorem
    在这里插入图片描述

Implementation and Evaluation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值