2.1 早期访问控制技术

见博文“《大数据安全与隐私保护》读书笔记——2.安全存储与访问控制技术(一)”

2.2 基于数据分析的访问控制技术

数据集的规模和增长速度以及用户复杂度都为访问控制策略的制定和授权管理带来巨大挑战,为了应对这些问题,旨在提高访问控制系统的自动化水平和增强自适应性的技术引人关注。

2.2.1 角色挖掘技术

以基于角色的访问控制(RBAC)为例,管理员需要解决两个问题:1)创建哪些角色?2)角色与用户、角色与权限如何关联?根据上一节的局限性总结,大数据场景下角色定义的工作量较大,且需要熟悉领域知识。安全管理员已经难以自上而下地分析和归纳安全需求,并基于需求来定义角色了。为了解决该问题,自底向上定义角色的方法被提出,即采用数据挖掘技术从系统的访问控制信息等数据中获得角色的定义,也被称为角色挖掘(Role Mining)。

目前经典的角色挖掘技术可以分为两类:1.基于层次聚类的角色挖掘方法;生成式角色挖掘方法。

1.基于层次聚类的角色挖掘方法

系统在初始情况下往往已经有了简单的访问权限分配——“哪些用户能够访问哪些数据”,例如下图授权信息表。基于层次聚类的角色挖掘方法将从这类数据中分析和挖掘潜在的角色概念,并将角色与用户、角色与权限分别关联。
《大数据安全与隐私保护》读书笔记——2.安全存储与访问控制技术(二)
由于标准RBAC模型中角色可以继承并形成层次结构,所以在聚类时通常选择层次聚类算法以支持角色继承。根据层次聚类方式,又分为凝聚式角色挖掘和分裂式角色挖掘。

1)凝聚式角色挖掘

该方法将权限看作是聚类的对象,通过不断合并距离近的类簇完成对权限的层次聚类,聚类结果为候选的角色。基本定义如下:

  • 类簇ClusterCluster:由权限和持有这些权限的用户组成的二元组c=<rights,members>c=<rights,members>
  • 用户集合PersonsPersons:所有用户组成的集合。
  • 类簇集合ClustersClusters:包含所有类簇的聚类结果集。
  • 偏序关系集合<<:聚类之间的偏序关系构成的集合。
  • 无偏序关系类簇集合T<T_<:类簇集合中的类簇,两两间不存在偏序关系。即 T<={cClusters:dClusters:c<d}T_< = \{ c ∈ Clusters: ∄d∈Clusters : c < d \} 。且对于任意的类簇对<c,d>T<<c,d>∈T_<有如下定义:members(<c,d>)=members(c)members(d)members(<c,d>)= members(c) ∩members(d)rights(<c,d>)=rights(c)rights(d)rights(<c,d>)= rights(c) ∪rights(d)

凝聚式角色挖掘算法:

  • 输入:所有权限及持有权限的用户。
  • 输出:一个类簇Cluster构成的树结构,即ClustersClusters<<
  • (1)初始化变量:
    • Clusters:=Clusters:=∅
    • <:=<:=∅
    • T<:=T_< :=∅
  • (2)为所有单个权限rr创建一个类簇crc_r,并将其放入类簇集合ClustersClusters和无偏序关系类簇集合T<T_<中:
    • rights(cr)=rrights(c_r) = r
    • members(cr)={pPersons:p  has  permission  r}members(c_r) = \{ p ∈ Persons : p \,\, has \,\, permission \,\, r\}
    • Clusters:=Clusters{cr}Clusters:=Clusters ∪ \{c_r\}
    • T<:=T<{cr}T_<:= T_< ∪ \{c_r\}
  • (3)合并距离相近的类簇对产生新类簇。距离最近的类簇对的寻找方式为先寻找出拥有共同用户最多的类簇对集合SS,再从SS中选出包含权限最多的类簇对集合EE。即
    • m=max{members(<c,d>):c,dT<}m=max\{|members(<c,d>)|:c,d\in T_<\}
    • S={<c,d>:members(<c,d>)=mc,dT<}S = \{ <c, d>:|members(<c,d>)|=m∧c,d\in T_<\}
    • r=max{rights(<c,d>):<c,d>S}r=max\{|rights(<c,d>)|:<c,d>\in S\}
    • E={<c,d>:rights(<c,d>)=r<c,d>S}E=\{<c,d>:|rights(<c,d>)|= r ∧ <c,d> \in S\}
    • 然后从E中选择任意一个<c,d><c,d>合并产生新的类簇ee,其中rights(e)=rights(c)rights(d)rights(e)=rights(c)∪rights(d) 并且 members(e)=members(c)members(d)members(e)=members(c)∩members(d)
  • (4)更新ClustersClusters<<T<T_<变量
    • Clusters:=Clusters{e}Clusters:=Clusters ∪ \{e\}
    • <:=<{<c,e>,<d,e>}<:=<∪ \{<c,e>,<d,e>\}
    • T<:=T<\{c,d}T_<:= T_< \backslash\{c,d\}
    • T<:=T<{e}T_<:= T_< ∪ \{e\}
  • (5)重复(3)、(4),直到T<T_<为空。

基于层次聚类的角色挖掘存在的问题:它们是对已有的权限分配数据进行角色挖掘,所以挖掘出的角色定义的质量往往过多地依赖于已有权限分配的质量。而对于大数据应用这种复杂场景来说,已有权限分配的质量往往很难保证。

2)分裂式角色挖掘

分裂式角色挖掘方法是初始较大的权限集合,不断地细分为更小的权限集合,从而形成权限类簇构成的树。

2.生成式角色挖掘方法

将角色挖掘问题映射为文本分析问题,采用两类主题模型LDA(Latent Dirichlet Allocation)和ATM(Author-Topic Model)进行生成式角色挖掘,从权限使用情况的历史数据来获得用户的权限使用模式,进而产生角色,并为它赋予合适的权限,同时根据用户属性数据为用户分配恰当的角色。

生成式角色挖掘的基本定义:

  • UU是系统中用户的集合;
  • PP是系统中权限的集合;
  • UPUP是用户与权限的映射,UPU×PUP⊆U×P
  • USAGE:U×PZUSAGE:U×P→Z,是一个函数,输入为(u,p)U×P(u,p)∈U×P,输出为一个数值,该数值为用户uu使用权限pp的次数。
  • GUPA:U×P{0,1}GUPA: U×P→\{0,1\},是一个以USAGEUSAGE为基础定义的函数,该函数的输入为(u,p)U×P(u,p)∈U×P,输出为0或1。若USAGE(i,j)>0USAGE(i,j)>0,则GUPA(i,j)=1GUPA(i,j)=1,否则GUPA(i,j)=0GUPA(i,j)=0

生成式角色挖掘的结果为两个集合:

  • PAPA是角色与权限的映射关系,PAR×PPA⊆R×P
  • UAUA是用户与角色的映射关系,UAU×RUA⊆U×R

文档的生成:一篇文档包括了多个主题,文档中的每个词都是由其中一个主题产生的。也就是存在两个多项式概率分布θ和φ,θ是一个文档上的主题分布,φ是一个主题上的单词出现的概率分布。角色挖掘问题被映射为文档生成问题,采用LDA模型就能够挖掘出角色定义。
《大数据安全与隐私保护》读书笔记——2.安全存储与访问控制技术(二)

2.2.2 风险自适应的访问控制技术

从风险管理的角度来看,访问控制是一种平衡风险和收益的机制。

  • 传统访问控制:风险与收益的平衡被静态定义在访问控制策略中,即“满足策略约束条件的访问行为所带来的风险”被视为系统可接受的。
  • 基于风险的访问控制:风险与收益的平衡是访问过程中动态实施的,而非预先定义在访问控制策略中。

1.风险量化

风险量化是将访问行为对系统造成的风险进行数值评估,它是基于风险来实施访问控制的前提。常见的风险要素:

  • 被访问客体敏感程度是客体重要性的体现。
  • 被访问客体的数量是指主体在一次访问请求中或一段时间内所访问的客体的规模。
  • 客体之间的互斥关系描述了多次访问行为的风险累加是非线性的。即两个客体存在如下关系:对其中一个客体访问后将不能访问另一客体,或者再访问另一客体时带来的风险会急剧增加。
  • 访问主体的安全级别是实施了强制访问控制的系统中对主体访问敏感客体时所能达到的安全性的评估。
  • 访问目的与被访问客体的相关性体现了在业务流程中主体对客体的需求程度。

目前主流的风险计算方法分为基于概率论或模糊理论的静态方式,以及基于协同过滤的动态方式两类。

1)基于概率论的风险量化:

其核心思想是“风险量化值由危害发生的可能性和危害程度决定”,即 Quantified Risk = (Probability of Damage) × (Value of Damage)。其中,危害的值(Value of Damage)是一个对危害程度的量化度量,往往取决于信息资源的价值,只能由企业或组织根据业务背景自行评估。而危害发生的可能性(Probability of Damage)是指引发该危害的事件发生的可能性,通常采用概率论进行计算。

2)基于协同过滤的动态风险量化:

基本思想是利用系统中用户的历史访问行为来构建正常用户的访问行为画像,并以此为风险量化的基准,然后计算每次用户访问行为与该基准的偏离程度作为风险量化值。即访问行为偏离基准越大,则该访问产生的风险越大。

其特点是通过行为异常的概率来衡量风险值,所以风险量化结果可以随着系统中整体用户的行为变化而动态变化,相比于静态计算方法更加灵活。然而这种计算往往需要大量的系统历史数据以确保风险量化的准确性。

2.访问控制实施方案

判定结果从“允许/拒绝”的二值向多值发展,引入了部分允许的概念。
《大数据安全与隐私保护》读书笔记——2.安全存储与访问控制技术(二)
实现整个系统风险与收益平衡的方法包括:

  • 信用卡式:它为每个用户分配风险额度,并让用户在访问资源时根据访问带来的风险去消耗额度。当额度不足以支付新的访问时,系统将阻止用户的访问行为。
  • 市场交易式:它将风险视为市场上的商品,而整个系统能够容忍的风险被视为可以交易的商品总量。作为商品的风险流通越充分,则越能够实现整体系统的风险与收益的最优化配置。

风险访问控制通常采用与传统访问控制结合的实施框架。
《大数据安全与隐私保护》读书笔记——2.安全存储与访问控制技术(二)

2.3 基于密码学的访问控制技术

见博文“《大数据安全与隐私保护》读书笔记——2.安全存储与访问控制技术(三)”

相关文章: