CN100592315C - 一种xacml策略规则检测方法 - Google Patents

一种xacml策略规则检测方法 Download PDF

Info

Publication number
CN100592315C
CN100592315C CN200810119404A CN200810119404A CN100592315C CN 100592315 C CN100592315 C CN 100592315C CN 200810119404 A CN200810119404 A CN 200810119404A CN 200810119404 A CN200810119404 A CN 200810119404A CN 100592315 C CN100592315 C CN 100592315C
Authority
CN
China
Prior art keywords
rule
state
attribute
strategy
conflict
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200810119404A
Other languages
English (en)
Other versions
CN101339591A (zh
Inventor
王雅哲
冯登国
张立武
张敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN200810119404A priority Critical patent/CN100592315C/zh
Publication of CN101339591A publication Critical patent/CN101339591A/zh
Application granted granted Critical
Publication of CN100592315C publication Critical patent/CN100592315C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种XACML策略规则检测方法,属于信息安全中的授权策略分析领域,该方法针对XACML策略规则进行了规则状态定义、规则状态相关性定义、冲突类型分析,在此基础上,建立了基于语义树的策略索引并实施具体的XACML策略规则检测,分析了规则冲突和规则冗余,检测方法包含两种类型:基于属性层次操作关联的冲突检测方法;基于状态相关性的其他类型冲突检测方法,冗余分析方面,分别在允许优先、拒绝优先和首次适用消解算法下给出规则冗余的分析判定方法。策略管理者通过检测方法可以准确定位引发冲突的规则以及引发冲突的原因;冗余分析方面,可以根据分析结果优化策略结构,删除不影响访问判定结果的冗余规则,提高策略判定效率。

Description

一种XACML策略规则检测方法
技术领域
本发明主要涉及信息安全中的授权策略分析领域,确切给出一种针对XACML策略规则检测的方法。
背景技术
随着组织间业务协作、分布式计算、跨域资源共享等应用的大量涌现,policy-basedmanagement面临新的挑战。开放式计算环境下,跨组织边界的用户和服务资源动态加入或撤出组织,安全策略需要考虑的安全属性种类繁多,授权决策的辅助参数也趋向复杂,组织内的授权管理灵活多变,共享资源的访问策略通常由多个管理域协同制定。这些情况不可避免导致了内部策略冲突的威胁发生。应用系统的安全管理初衷能否被准确执行、策略间的冲突能否合理消解返回确定可知的安全状态是基于策略的授权系统要解决的难点。
OASIS发布的访问控制策略标记语言XACML(Extensible Access Control MarkupLanguage)基于属性匹配机制定义策略规则,适用于分布式异构访问控制、多管理域策略合成等应用场景,具备丰富动态的描述能力对主客体和系统环境属性进行细粒度刻化,同时也导致其内部比较复杂的策略规则冲突类型。规则间Target定义存在交集而判定结果相反是XACML策略冲突的基本类型;属性层次导致的权限继承以及主体、资源属性层次间的互操作关系也可能引发规则冲突。XACML标准中给出了若干冲突消解算法,从判定结果角度规避了策略冲突对访问请求的影响,但其自身缺乏从管理视图角度分析造成冲突的细节原因以及冲突预测验证能力。
随着XACML策略广泛使用并成为工业界标准,很多研究工作开始关注对其进行分析、推理和验证。Margave是Fisler等基于MTBDDS开发的策略分析工具,将XACML策略转化为多端二元判定图并进行策略验证和策略改动影响分析。Martin等人在Margave基础上借鉴软件测试的方法,生成变异测试用例检测策略有效性,但缺乏策略间的约束分析和冲突检测。Zhang等人基于RW语言提出模型检测算法,验证策略是否满足用户合法需求以及能否阻止非法访问,并将RW验证后的策略转化为XACML形式。Hughes等人应用一阶逻辑分析工具Alloy对XACML策略进行建模,验证策略合并后的特征一致性。Bryans将XACML协议栈在进程代数CSP体系下建模,验证策略实施的行为特征和有效性。Kolovski实现了XACML策略到描述逻辑DL的映射,借助DL分析工具进行策略对比、策略冗余和策略验证。其对策略冗余的各种情况缺乏完整分析,在策略比较时也没有对属性层次引起的冲突进行检测。
总的来看,逻辑方法验证XACML策略需要在逻辑转化方面做大量工作。Margave和RW等缺乏足够支持XACML语义的描述能力,并且策略分析的层面局限在策略满足性验证方面;Alloy等一阶逻辑工具分析能力强大,但大规模策略分析应用会带来难以承受的资源消耗代价。另外,现有工作大多数集中在策略目标的可满足性验证,缺乏对XACML基于属性的特质进行分析推理以发现策略结构性冲突。
XACML策略分析的一个重要瓶颈是如何建立高效的策略索引结构。XACML策略分层定义机制决定了策略匹配是一个约束粒度逐层细化的过程。细化过程会过滤一定数量的不相关策略,但无法避免对策略库的遍历式匹配。大部分应用XACML的项目如Sun XACMLImplementation、eXist、Parthenon Computing等都采用类似方式,将策略集合一次性加载,针对特定查询请求逐条匹配。环境单一的小规模策略环境下,遍历式匹配方法对系统效率没有显著影响。但在大规模策略集成应用场景中,会制约判定实施点PDP检索有效策略的概率。
发明内容
针对上述问题,本发明的主要目的是提供针对XACML策略规则冲突检测的预定位方法,以及在给定冲突消解算法的情况下对规则冗余的判定。
本发明的解决方法立足于策略规则分析,包括一系列基本前提要求:规则状态定义、规则相关性定义、冲突类型分析等。在这些工作的基础上,建立策略索引并实施具体的XACML策略规则冲突检测。检测方法包含两种类型:基于属性层次操作关联的冲突检测方法;基于状态相关性的其他类型冲突检测方法。冗余分析方面,分别在允许优先(permit-override)、拒绝优先(deny-override)和首次适用(first-applicable)消解算法下分析判定规则冗余。
第一部分构建形式化分析模型:
1)规则状态及相关定义
规则状态subi、resi、aci和eni分别代表Rule中一个主体、资源、动作和环境属性分量,每个分量包括使断言合取式
Figure C20081011940400061
为真的一组属性值,其中断言matchj是作用在属性值上的布尔函数,
Figure C20081011940400071
分别表示各种属性分量的并集,Decision表示Rule的effect类型,则Rule的规则状态表示为
规则状态满足规则状态满足若规则Rulei声明主体SA在环境状态为EA时,可以对资源RA进行访问动作AA,则属性状态向量(SA,RA,AA,EA)满足规则状态Statei,表示为Statei|=(SA,RA,AA,EA)effect
2)制定XACML中的权限继承和权限蕴含规则
若SA1是SA2的上层属性,表示为若RA1是RA2的上层属性,表示为
Figure C20081011940400074
权限继承规则当若Statei|=(SA1,RA,AA)permit,则Statei|=(SA2,RA,AA)permit;若Statei|=(SA1,RA,AA)deny,则Statei|=(SA2,RA,AA)deny
正向权限和负向权限都可以沿主体属性层次路径向下层主体属性传播。例如SoftDeveloper角色属性可以继承来自Employee的任意正向权限(允许读系统说明文档)和负向权限(禁止写系统测试文档)
权限蕴含规则 当
Figure C20081011940400076
若Statei|=(SA,RA1,AA)permit,则不能推导出Statei|=(SA,RA2,AA)permit;若Statei|=(SA,RA1,AA)deny,则Statei|=(SA,RA2,AA)deny
正向访问动作不能沿资源属性层次路径向下蕴含,负向访问动作可以向下层资源属性蕴含。例如允许读资源″Code/″并不能推导出允许读资源″Code/JavaCode″也成立,禁止写资源″Code/″可以推导出禁止写资源″Code/JavaCode″。
4)规则状态相关性定义
策略分析时需要比较规则间关系,将其转化为规则状态比较,有助于分析规则间可能存在的判定冲突。假设Rulei和Rulej的规则状态分别为
Figure C20081011940400077
Figure C20081011940400078
下面分别给出状态覆盖、状态相交和状态无关的定义。
状态覆盖 存在关系
Figure C20081011940400081
Figure C20081011940400082
则称Statej覆盖Statei,表示为 State i < State j .
State i < State j 的情况下,规则Rulei目标元素中定义的各种属性类型和属性取值范围或者包含在Rulej中(表示为: sub i n &Element; &cup; j = 1 m 1 sub j m , res i n &Element; &cup; j = 1 m 2 res j m 等),或者存在
Figure C20081011940400086
Figure C20081011940400087
的情况。当
Figure C20081011940400088
时,下层主体属性
Figure C20081011940400089
继承上层主体属性的访问权限,从权限包含的角度可以归为Statej覆盖Statei。当
Figure C200810119404000811
时,将上层属性
Figure C200810119404000812
理解为下层属性
Figure C200810119404000813
的祖先节点,从资源划分的角度可以归为Statej覆盖Statei
目标元素Targeti和Targetj如果存在部分重合,则两条规则可能在某些情况下适用于同一请求。根据目标元素的结构,会存在不同层次和粒度的重合相交关系:可能是某个属性分量的取值范围存在交集,也可能是属性分量组合的取值范围存在交集。
状态相交 存在关系
Figure C200810119404000814
Figure C200810119404000815
且Statej和Statei间不存在覆盖关系,则称Statej和Statei状态相交,表示为 State i &LeftRightArrow; granularity State j .
granularity表示状态相交的粒度,例如Rulei的主体属性为subi{role[developer,tester],group[internal,external]∧service age[3~5]},Rulej为subj{role[developer,designer],group[internal]∧service-age[2~4]},则granularity表示为(sub.role,sub.group∧sub.service-age)。前者表示针对role属性存在交集(role.developer),后者针对group属性和sevice-age属性组合存在交集(group.interneal∧service-age[3~4])。资源属性和动作属性等类似表示。
状态无关 存在关系
Figure C20081011940400091
,则称Statej和Statei状态无关,表示为Statei⊥Statej
如果两条规则间的各种属性分量集合以及具有相同属性名称的属性分量的取值范围完全不同,则认为两规则状态间状态无关。
4)属性层次操作关联类型分析
属性层次导致的权限继承和权限蕴含是XACML策略冲突的主要原因之一。例如manager角色的权限策略中包含规则状态
Figure C20081011940400092
developer角色的权限策略中包含规则状态manager自身权限和继承自developer的权限发生冲突;规则状态
Figure C20081011940400094
Figure C20081011940400095
针对下层资源“code/java code”发生冲突。当比较两条具体的访问规则时,可以把存在直接或间接层次关系的属性关系归纳为二元关系。规则间属性层次的基本操作关联比较如图3(i)所示(设定动作属性相同,暂不考虑环境属性):主体属性层次关系中SA1表示上层属性,SA2表示下层属性,SA2继承来自SA1的权限;资源属性层次关系中RA1表示上层粗粒度资源,RA2表示下层细粒度资源,RA1对应的负向权限可蕴含至RA2。(a)~(d)描述了两条规则的属性定义既存在主体属性层次也存在资源属性层次的情况,此时主体和资源的层次关联存在两种可能:交叉(同一规则内定义的主体属性和资源属性相对另一规则位于不同层次)和同级(同一规则内定义的主体属性和资源属性相对另一规则位于相同层次),考虑effect的两种结果,组合在一起为四种类型;(e)~(f)描述了只存在资源属性层次的情况,此时两条规则定义了相同的主体属性,根据不同的effect结果分为两种类型;(g)~(h)描述了只存在主体属性层次的情况,此时两条规则定义了相同的资源属性,根据不同的effect结果分为两种类型。以上类型都是规则间属性层次操作关联的原子类型,囊括了属性层次导致的各种规则冲突原因,其它由属性层次引起的更复杂冲突场景都是这些原子类型的组合类型。
若Rule1的规则状态State1和Rule2的规则状态State2针对共同适用的访问请求存在判定冲突,表示为
Figure C20081011940400096
要说明的是,并不是所有的原子类型都导致实际的规则冲突,下面是各种属性层次关联的原子类型冲突判定的形式化推导
Figure C20081011940400097
(a)State1|=(SA1,RA2,AA)Deny,State2|=(SA2,RA1,AA)Permit
State 1 | = ( SA 1 , RA 2 , AA ) Deny &DoubleRightArrow; State 1 | = ( SA 2 , RA 2 , AA ) Deny State 2 | = ( SA 2 , RA 1 , AA ) Permit &NotEqual; > State 2 | = ( SA 2 , RA 2 , AA ) Permit &NotEqual; > conflict State 2 State 1
(b)State1|=(SA1,RA2,AA)Permit,State2|=(SA2,RA1,AA)Deny
State 1 | = ( SA 1 , RA 2 , AA ) Permit &DoubleRightArrow; State 1 | = ( SA 2 , RA 2 , AA ) Permit State 2 | = ( SA 2 , RA 1 , AA ) Deny &DoubleRightArrow; State 2 | = ( SA 2 , RA 2 , AA ) Deny &DoubleRightArrow; conflict State 2 State 1
(c)State1|=(SA1,RA1,AA)Permit,State2|=(SA2,RA2,AA)Deny
State 1 | = ( SA 1 , RA 1 , AA ) Permit &DoubleRightArrow; State 1 | = ( SA 2 , RA 1 , AA ) Permit &NotEqual; > State 1 | = ( SA 2 , RA 2 , AA ) Permit State 2 | = ( SA 2 , RA 2 , AA ) Deny &DoubleRightArrow; State 2 | = ( SA 2 , RA 2 , AA ) Deny &NotEqual; > conflict State 2 State 1
(d)State1|=(SA1,RA1,AA)Deny,State2|=(SA2,RA2,AA)Permit
State 1 | = ( SA 1 , RA 1 , AA ) Deny &DoubleRightArrow; State 1 | = ( SA 2 , RA 1 , AA ) Deny &DoubleRightArrow; State 1 | = ( SA 2 , RA 2 , AA ) Deny State 2 | = ( SA 2 , RA 2 , AA ) Permit &DoubleRightArrow; State 2 | = ( SA 2 , RA 2 , AA ) Permit &DoubleRightArrow; conflict State 2 State 1
(e)State1|=(SA,RA1,AA)Permit,State2|=(Sa,RA2,AA)Deny
State 1 | = ( SA , RA 1 , AA ) Permit &NotEqual; > State 1 | = ( SA , RA 2 , AA ) Permit State 2 | = ( SA , RA 2 , AA ) Deny &DoubleRightArrow; State 2 | = ( SA , RA 2 , AA ) Deny &NotEqual; > conflict State 2 State 1
(f)State1|=(Sa,RA1,AA)Deny,State2|=(SA,RA2,AA)Permit
State 1 | = ( SA , RA 1 , AA ) Deny &DoubleRightArrow; State 1 | = ( SA , RA 2 , AA ) Deny State 2 | = ( SA , RA 2 , AA ) Permit &DoubleRightArrow; State 2 | = ( SA , RA 2 , AA ) Permit &DoubleRightArrow; conflict State 2 State 1
(g)State1|=(SA1,RA,AA)Permit,State2|=(SA2,RA,AA)Deny
State 1 | = ( SA 1 , RA , AA ) Permit &DoubleRightArrow; State 1 | = ( SA 2 , RA , AA ) Permit State 2 | = ( SA 2 , RA , AA ) Deny &DoubleRightArrow; State 2 | = ( SA 2 , RA , AA ) Deny &DoubleRightArrow; conflict State 2 State 1
(h)State1|=(SA1,RA,AA)Deny,State2|=(SA2,RA,AA)Permit
State 1 | = ( SA 1 , RA , AA ) Deny &DoubleRightArrow; State 1 | = ( SA 2 , RA , AA ) Deny State 2 | = ( SA 2 , RA , AA ) Permit &DoubleRightArrow; State 2 | = ( SA 2 , RA , AA ) Permit &DoubleRightArrow; conflict State 2 State 1
对上述各种类型进行归纳,可以看出引起规则冲突主要有以下几种原因:(1)继承自上层主体属性的正向权限和自身负向权限对下层资源属性的蕴含冲突,(b)属于这种情况;(2)继承自上层主体属性的负向权限对下层资源属性的蕴含与自身正向权限冲突,(d)属于这种情况;(3)自身负向权限对下层资源属性的蕴含和自身正向权限冲突,(f)属于这种情况;(4)相同资源属性节点下,主体自身负向权限和继承自上层主体属性的正向权限冲突,(g)属于这种情况;(5)相同资源属性节点下,主体自身正向权限和继承自上层主体属性的负向权限冲突,(h)属于这种情况。类型(a)(c)(e)不会引起规则冲突。
第二部分规则冲突检测:
1)建立基于资源语义树的策略索引结构
无论是策略静态分析还是PDP根据请求进行策略评估,有效的索引结构可以缩减用户检索的策略空间规模,避免对策略库的遍历式匹配。大规模资源共享系统中的资源标识通常具有语义层次结构,例如URI统一资源标识符、XML节点等,类似具有层次关系的资源属性可以使用语义树表示。虽然XACML策略采用多属性类型匹配的模式,但访问控制策略的特性决定了资源属性匹配与否是策略匹配与否的必要条件,资源属性和策略间存在优先匹配关系。如果能利用资源语义树中的属性节点将安全策略和其针对的资源进行有效关联,可实现符合资源自然语义的策略索引结构,带来可预期的策略分析与判定的效率提升。
一条XACML策略会涉及多个资源属性节点,同一资源属性也可能在多条策略中定义,图2是一个已建立策略索引的语义树示例。建立策略索引之前,为系统提供完整的资源语义树,并且语义树的每个节点都建立一个策略标识符列表。语义树中的节点可以转换为策略中resource属性值标识,其对应列表中存放涉及该资源属性的所有策略标识符,标识符条目指向实际的访问控制策略。可以将策略内部的permit和deny类型规则分类存储,以提高分析检测效率。设定语义树的资源节点集为N,策略库中policySet和policy的条目集合为M,条目i中定义的资源属性条目集合表示为Ri,这些条目来自policy或policyset自身的Target。Ri中包含的资源属性条目可能重复但都属于集合N。最耗时情况下,策略条目i需要进行Θ(|N|)次添加索引操作,整个策略库进行Θ(|M|×|N|)次添加索引操作。基于资源语义树的策略索引结构有利于请求评估和策略分析时快速定位适用策略集合,资源属性的分层化索引有助于分析属性层次导致的策略冲突影响。
2)基于属性层次操作关联的冲突检测
XACML策略中的主体属性层次和权限策略继承关系可采用类似图1的形式描述,基于语义树构建的策略索引决定了存在资源层次关系的规则必定包含在相邻节点或存在祖先关系节点的策略列表中。针对已经分析的多种冲突类型,根据XACML继承策略描述方式和基于资源语义树的策略索引结构给出基于属性层次操作关联的冲突检测步骤方法,并以算法方式提供。检测方法首先要定位下层主体属性策略和其引用继承的上层主体属性策略,然后根据effect类型分别进行比较。针对permit类型规则,不仅要分析自身资源属性节点对应的deny类型规则,还要检测其祖先节点对应的继承策略,发现继承策略中deny类型规则沿资源层次蕴含到下层资源所可能引发的冲突。针对deny类型规则,不仅要分析自身资源属性节点对应的permit类型规则,还要检测其孩子节点对应的继承策略,发现自身策略中deny类型规则沿资源层次蕴含到下层资源所可能引发的冲突。
3)基于状态相关性的其他类型冲突检测
除了属性层次操作关联导致规则冲突外,不存在继承关系的任意策略间由于规则状态性也会导致冲突。例如
Figure C20081011940400121
Figure C20081011940400122
存在 State i < State j , 同时满足两个状态空间的访问请求会导致规则冲突。再如
Figure C20081011940400124
Figure C20081011940400125
存在 State i &LeftRightArrow; ( sub , role , res , type , ac , en . time ) State j , 请求req(role.developer,type.code,read)在时间段[11am,2pm]同时满足两个状态空间会导致判定冲突。另外由于负向权限对下层资源权限蕴含,上层属性节点的规则和下层节点规则如果存在状态相交也可能导致冲突。
第三部分规则冗余分析,这一部分的分析可以在规则冲突检测之前或者之后:
根据前面状态覆盖的定义可以看出,如果Rulei和Rulej存在 State Rule i < State Rule j , 且Rulej对Rulei适用的访问请求进行评估都能给出明确的判定结果(permit或者deny),那么在特定的评估结果合并算法下,Rulei可能对访问请求的判定不产生实际影响,将这类规则判定为冗余规则。冗余规则的判定和策略或策略集所选定的消解合并算法是密切相关的,相同规则在不同的合并算法下,其冗余判定结果可能不同。另外,冗余判定的过程遵照先策略内部后策略间的顺序。在策略内部被判定冗余的规则不再和其他策略中的规则进行冗余比较。策略内部根据规则合并算法进行冗余判定;策略间根据策略合并算法进行冗余判定。在进行冗余判定的过程中需按照下列定理进行判定。
定理1 若采用XACML标准中的允许优先合并算法,Rulei的effect为任意类型,Rulej的effect为permit,存在 State Rule i < State Rule j , 且不存在
Figure C20081011940400129
则Rulei是冗余规则。
定理2 若采用XACML标准中的否定优先合并算法,Rulei的effect为任意类型,Rulej的effect为deny,存在 State Rule i < State Rule j , 则Rulei是冗余规则。
定理3 若采用XACML标准中的首次适用合并算法,seq(Rulej)<seq(Rulei),存在 State Rule i < State Rule j . 若Rulej.effect=deny,则Rulei是冗余规则;若Rulej.effect=permit且不存在
Figure C20081011940400133
则Rulei是冗余规则。
本发明从管理视图角度分析造成冲突的细节原因以及冲突预测验证能力。策略管理者通过本发明的方法可以准确定位引发冲突的规则以及引发冲突的原因;冗余分析方面,提供了不同评估合并算法下规则冗余分析判定方法,判定评估系统可以根据分析结果优化策略结构,删除不影响访问判定结果的冗余规则,提高策略判定效率。
附图说明
图1XACML中的权限继承示意图
图2基于资源语义树的XACML策略索引示意图
图3主体层次和资源层次操作关联类型分析图
图4基于属性层次操作关联的冲突检测算法示意图
图5基于状态相关的其他类型冲突检测算法示意图
图6规则冗余判定策略集实例图
具体实施方式
图4描述了基于属性层次操作关联的冲突检测算法。该算法输入包括需检测的主体属性策略pol和其引用继承的上层主体属性的权限策略列表,输出是由若干冲突规则对pair(rulep,ruled)组成的集合conSet。算法具体过程如下。针对pol中的permit类型规则rulep,确定rulep中资源属性resAttrp在语义树上的节点Noderes,对Noderes自身策略标识列表中的每个策略polΔ进行检测。逐一分析polΔ中的deny类型规则ruled,若rulep和ruled状态相关性为
Figure C20081011940400134
则pair(rulep,ruled)属于上节分析的第(5)种类型,将其加入conSet。调用递归函数Traverse-up-checking(Noderes)处理Noderes上层节点的负向权限蕴含可能引发的规则冲突。Traverse-up-checking函数检索Noderes父节点权限策略列表中的每个策略:若策略pol包含在其中并判定
Figure C20081011940400141
为真,则说明策略pol对Noderes的负向权限蕴含与自身对Noderes的正向权限发生冲突,属于第(3)种类型;若其中存在某策略polΔ∈rePoList并判定
Figure C20081011940400143
为真,则说明引用策略polΔ对Noderes的负向权限蕴含与pol对Noderes的正向权限发生冲突,属于第(2)种类型。将上述产生的规则冲突对加入conSet中。若Noderes的父节点Noderes.parent不是语义树的根节点,则继续调用Traverse-up-checking(Noderes.parent)。针对pol中deny类型规则ruled,根据第(5)种类型冲突的检测方法步骤可以发现第(4)种类型冲突。ruled对下层节点的负向权限蕴含与引用策略对下层节点的正向权限可能引发第(1)种类型冲突,需要调用递归函数Traverse-down-checking(Noderes)处理此类冲突。此函数目的是遍历Noderes及其子节点,检测策略标识列表中的引用策略是否存在rulep
Figure C20081011940400144
判定为真。若存在,将pair(rulep,ruled)加入conSet。至此,算法对上文分析的5种冲突类型检测完毕,返回conSet。具体算法如下:
基于属性层次操作关联的冲突检测算法
输入:pol//某主体属性的权限策略
      rePoList//pol直接引用或间接引用的上层主体属性权限策略列表
输出:conSet//冲突规则对pair(rulep,ruled)组成的集合
begin
for eachrulep∈pol
 for each resAttrp∈rulep.res
 {
 get the Noderes of resAttrp
 for each polΔ∈policyList of Noderes
  if polΔ∈rePoList
   for edch ruled∈polΔ
    if
Figure C20081011940400151
//第(5)种类型
      add pair(rulep,ruled)to conSet
 traverse-up-checking(Noderes)
 {
  for each polΔ∈policyList of Noderes.parent
   if polΔ==pol
     for each ruled∈pol
      if
       //第(3)种类型
       add pair(rulep,ruled)to conSet
    else if polΔ∈rePoList
     for each ruled ∈polΔ
      if
Figure C20081011940400153
       //第(2)种类型
       add pair(rulep,ruled)to conSet
   if Noderes.parent isn′t root-node
     traverse-up-checking(Noderes.parent)
  }
 }
for each ruled∈pol
 for each resAttrd∈ruled.res
 {
  get the node Noderes of resAttrd
  for each polΔ∈policyList of Noderes
   if polΔ∈rePoList
    for each rulep∈polΔ
     if
Figure C20081011940400154
//第(4)种类型
        add pair(rulep,ruled)to conSet
  traverse-down-checking(Noderes)
  {
   for each nodechild∈Noderes.child
    for each polΔ∈policyList of Noderes
     if polΔ∈rePoList
      for each rulep∈polΔ
       if//第(1)种类型
        add pair(rulep,ruled)to conSet
    if nodechild isn′t leaf-node
     for each N ∈nodechild.child
      traverse-down-checking(N)
  }
 }
returnconSet
end
图5描述了基于状态相关的其他类型冲突检测算法,算法输入为要检测的资源属性节点node,输出是冲突规则对集合conSet和冲突威胁规则对集合p-conSet。算法具体过程如下。获取node的策略标识列表并检测其中每个策略包含的permit类型规则rulep。若rulep中存在资源属性对应节点node,运行递归函数Traverse-up-checking(node)。函数将遍历node的父节点和祖先节点,目的是检测节点对应的策略标识列表,针对其中任意策略polΔ当ruled∈polΔ
Figure C20081011940400161
为真时,rulep和ruled的状态向量空间存在属性分量的交集,将pair(rulep,ruled)加入conSet。若
Figure C20081011940400162
为真,将pair(rulep,ruled)加入p-conSet。此类冲突是否发生依赖访问上下文信息,虽然规则的主体属性不存在交集,但用户实际访问时拥有的主体属性可能同时满足两个规则从而引起访问权限冲突,因此将pair(rulep,ruled)定义为冲突威胁规则对。
基于状态相关的其他类型冲突检测算法
输入:node //要检测的资源属性节点
输出:conSet  //冲突规则pair(rulep,ruled)组成的集合
      p-conSet //冲突威胁规则对pair(rulep,ruled)组成的集合
begin
get policyList of node
for each pol∈policyList
{
 for each rulep∈pol
  if
Figure C20081011940400163
resAttr∈rulep.res:resAttr map node
    traverse-up-checking(node)
    {
      get policyListΔ of node
      for each polΔ∈policyListΔ
       for each ruled∈polΔ
         if
Figure C20081011940400164
           add pair(rulep,ruled)to conSet
         else if
Figure C20081011940400166
           add pair(rulep,ruled)to p-conSet
       if node isn′t root-node
            traverse-up-checking(node.parent)
        }
}
return conSet and p-conSet
end
图6是一个策略集,通过这个实例说明规则冗余判定实施过程。策略集PS采用first-applicable策略合并算法,它包含3条策略元素P1、P2和P3。P1包含规则R1、R2和R3,采用permit-override规则合并算法;P2包含规则R4和R5,采用first-applicable规则合并算法;P3包含规则R6和R7,并采用deny-override规则合并算法。对这个系统进行策略内规则冗余判定和策略间规则冗余判定。策略P1中 State R 2 < State R 3 , 又因为R3的effect类型为permit且P1采用允许优先合并算法,所以可推出规则R2冗余。需要注意的是,虽然R1和R3之间也存在关系 State R 2 < State R 3 , 但因为正向permit权限不会沿资源属性路径向下层资源传播,所以规则R3针对访问请求(admin-root/doc,write)并不能给出明确的判定结果。同理可推出策略P2中规则R5冗余。策略P3中R6和R7存在关系 State R 7 < State R 6 , 并且R6的effect类型为deny,可以沿资源属性路径向下层传播,其针对访问请求(project-root/code,write)给出判定结果deny,所以可推出R7是冗余规则。完成策略内规则冗余分析后,需要进一步对策略间规则冗余进行分析。对于已经在策略内部被判定冗余的策略不再进行策略间的规则比较,例如比较策略P1和P2内的规则,只需要分别对(R1,R4)和(R3,R4)进行比较。可以看出因为 State R 6 < State R 4 且策略集PS采用首次适用策略合并算法,所以推出R6是冗余规则。下表是该策略集的冗余判定结果

Claims (6)

1、一种XACML策略规则检测方法,用于分析规则冲突,其步骤包括:
1)构建XACML策略规则分析的形式化模型,根据XACML描述属性的结构和特征,定义规则状态及规则状态满足,规则状态表示为
Figure C2008101194040002C1
其中:
subi、resi、aci和eni分别代表Rule中一个主体、资源、动作和环境属性分量,每个分量包括使断言合取式
Figure C2008101194040002C2
为真的一组属性值,其中断言matchj是作用在属性值上的布尔函数,
Figure C2008101194040002C3
分别表示各种属性分量的并集,Decision表示Rule的effect类型;规则状态满足,若规则Rulei声明主体SA在环境状态为EA时,可以对资源RA进行访问动作AA,则属性状态向量(SA,RA,AA,EA)满足规则状态Statei,表示为Statei|=(SA,RA,AA,EA)effect
2)制定XACML中的权限继承和权限蕴含规则,所述权限继承规则为正向权限和负向权限都可以沿主体属性层次路径向下层主体属性传播;所述权限蕴含规则为正向访问动作不能沿资源属性层次路径向下蕴含,负向访问动作可以向下层资源属性蕴含;
3)定义XACML中规则状态的关系,分为状态覆盖、状态相交或是状态无关,规则目标元素中定义的各种属性类型和属性取值范围包含在另一规则状态中,规则状态为覆盖;规则目标元素某个属性分量或属性分量组合的取值范围存在交集,规则状态为相交;两条规则间的各种属性分量集合以及具有相同属性名称的属性分量的取值范围完全不同,规则状态为无关;
4)通过描述属性层次操作关联类型,分析属性层次引起的规则间冲突类型,类型包括:
(1)继承自上层主体属性的正向权限和自身负向权限对下层资源属性的蕴含冲突;
(2)继承自上层主体属性的负向权限对下层资源属性的蕴含与自身正向权限冲突;
(3)自身负向权限对下层资源属性的蕴含和自身正向权限冲突;
(4)相同资源属性节点下,主体自身负向权限和继承自上层主体属性的正向权限冲突;
(5)相同资源属性节点下,主体自身正向权限和继承自上层主体属性的负向权限冲突;
5)建立基于资源语义树的策略索引结构,具体是为系统提供完整的资源语义树,并且语义树的每个节点都建立一个策略标识符列表,语义树中的节点可以转换为策略中属性值标识,其对应列表中存放涉及该资源属性的所有策略标识符,标识符条目指向实际的访问控制策略;
6)运行基于属性层次操作关联的冲突检测算法,算法输入包括需检测的主体属性策略和其引用继承的上层主体属性的权限策略列表,检测步骤4)中分析的规则间冲突类型,输出是由若干冲突规则对组成的集合;
7)运行基于状态相关的其他类型冲突检测算法,算法输入包括要检测的资源属性节点,检测步骤3)中的规则状态相交产生的规则冲突情况,输出是冲突规则对集合和冲突威胁规则对集合。
2、如权利要求1所述的方法,其特征在于,所述步骤4)之后还包括进行规则冗余检测的步骤,具体为:
a)建立策略集,包含若干策略,每条策略包含若干规则;
b)根据冗余分析定理,进行策略内部规则冗余判断,标记冗余规则;
c)根据冗余分析定理,进行策略之间的规则冗余判断,标记冗余规则,已被标记的规则不再和其他策略中的规则进行冗余判断。
3、如权利要求1所述的方法,其特征在于,所述步骤5)中语义树中的节点可以转换为策略中资源属性值标识,其对应列表中存放涉及该资源属性的所有策略标识符,标识符条目指向实际的访问控制策略。
4、如权利要求1所述的方法,其特征在于,所述步骤6)检测时根据规则类型分别进行比较:
针对permit类型规则,不仅要分析自身资源属性节点对应的继承策略中deny类型规则,还要检测资源上层节点对应的继承策略,发现继承策略中的deny类型规则沿资源层次蕴含到下层资源所可能引发的冲突;
针对deny类型规则,不仅要分析自身资源属性节点对应的继承策略中permit类型规则,还要检测资源下层节点对应的继承策略,发现自身策略中deny类型规则沿资源层次蕴含到下层资源所可能引发的冲突。
5、如权利要求1所述的方法,其特征在于,所述步骤7)冲突威胁规则对是用户实际访问时拥有的主体属性可能同时满足两个规则从而引起访问权限冲突。
6、如权利要求2所述的方法,其特征在于,进行规则冗余检测时根据XACML标准中的允许优先合并算法、否定优先合并算法和首先适用合并算法,策略内部和策略之间分别采用相应的规则冗余分析定理进行冗余判断。
CN200810119404A 2008-08-29 2008-08-29 一种xacml策略规则检测方法 Expired - Fee Related CN100592315C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810119404A CN100592315C (zh) 2008-08-29 2008-08-29 一种xacml策略规则检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810119404A CN100592315C (zh) 2008-08-29 2008-08-29 一种xacml策略规则检测方法

Publications (2)

Publication Number Publication Date
CN101339591A CN101339591A (zh) 2009-01-07
CN100592315C true CN100592315C (zh) 2010-02-24

Family

ID=40213657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810119404A Expired - Fee Related CN100592315C (zh) 2008-08-29 2008-08-29 一种xacml策略规则检测方法

Country Status (1)

Country Link
CN (1) CN100592315C (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140249875A1 (en) * 2011-12-21 2014-09-04 International Business Machines Corporation Detecting cases with conflicting rules
CN102708420B (zh) * 2012-04-12 2015-01-14 北京合力思腾科技股份有限公司 一种多策略-多规则检测方案的优化方法
CN102902760B (zh) * 2012-09-25 2014-01-29 中国人民解放军国防科学技术大学 一种检测需求冲突关系的方法
CN102932328B (zh) * 2012-09-26 2016-01-13 上海交通大学 一种基于二进制序列集合的访问控制策略合成方法
CN103198361B (zh) * 2013-03-09 2016-04-13 西安电子科技大学 基于多种优化机制的xacml策略评估引擎系统
CN104426695B (zh) * 2013-08-28 2018-09-04 北京神州泰岳软件股份有限公司 一种异构类型设备账号管理方法及系统
CN103530415A (zh) * 2013-10-29 2014-01-22 谭永 一种兼容关键词搜索的自然语言搜索方法及系统
CN103577746B (zh) * 2013-11-08 2016-05-04 国家电网公司 一种基于xml配置的信息系统间授权差异检测方法
CN103645987B (zh) * 2013-12-20 2016-01-20 南京大学 基于代码生成和符号执行的访问控制策略测试自动生成方法
CN103905468B (zh) * 2014-04-23 2017-03-01 西安电子科技大学 网络访问控制系统中xacml框架扩展系统及方法
CN104104615B (zh) 2014-07-21 2017-07-07 华为技术有限公司 策略冲突解决方法以及装置
CN104680031B (zh) * 2015-03-18 2019-12-24 联想(北京)有限公司 一种联动规则生成方法和装置
CN104836807B (zh) * 2015-05-11 2018-12-18 中国电力科学研究院 一种xacml安全策略的评估优化方法
CN105429965A (zh) * 2015-11-04 2016-03-23 上海电机学院 协商信任规则的冲突消解方法
CN106161654A (zh) * 2016-08-30 2016-11-23 孟玲 一种云教育系统
CN106778303B (zh) * 2016-12-07 2020-03-17 腾讯科技(深圳)有限公司 授权策略优化方法及授权策略优化装置
US10547715B2 (en) * 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
CN107547549B (zh) * 2017-09-06 2021-01-05 哈尔滨工程大学 一种访问控制策略优化方法
CN108764726B (zh) * 2018-05-29 2021-09-21 创新先进技术有限公司 根据规则对请求进行决策的方法及装置
CN110650023A (zh) * 2018-06-26 2020-01-03 中国移动通信有限公司研究院 策略规则处理方法及装置、功能网元及存储介质
CN109698819B (zh) * 2018-11-19 2020-07-24 中国科学院信息工程研究所 一种网络中的威胁处置管理方法及系统
CN110445793B (zh) * 2019-08-13 2021-04-06 四川长虹电器股份有限公司 一种拥有节点线程级别无冗余计算的分析引擎的分析方法
CN113128200B (zh) * 2019-12-31 2023-07-21 北京百度网讯科技有限公司 用于处理信息的方法和装置
CN111309592B (zh) * 2020-01-14 2023-09-19 杭州未名信科科技有限公司 一种权限检查方法、装置、存储介质及终端
CN111783043B (zh) * 2020-07-06 2022-09-13 河南大学 一种基于属性探索的多部门协同交互式rbac角色构建方法
CN112039867A (zh) * 2020-08-26 2020-12-04 西安电子科技大学 基于abac属性补全的安全策略冲突检测与消除方法
CN112131434B (zh) * 2020-09-24 2023-02-07 西安电子科技大学 基于匹配树的可扩展访问控制标记语言策略搜索方法
CN113590742B (zh) * 2021-06-17 2023-12-26 北京中软国际信息技术有限公司 一种云平台访问控制方法
CN114268649B (zh) * 2021-12-21 2022-09-13 河南大学 一种面向物联网的rbac权限修改方法
CN114003963B (zh) * 2021-12-30 2022-05-06 天津联想协同科技有限公司 一种企业网盘下文件授权的方法、系统、网盘及存储介质
CN114900367B (zh) * 2022-05-25 2024-05-03 东南大学 一种基于优先级动态调整的共享策略验证与冲突检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1394036A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 基于策略的网络管理系统
CN1550989A (zh) * 2003-05-07 2004-12-01 有计划的计算机问题诊断和解决及其自动报告和更新
CN1556613A (zh) * 2003-12-30 2004-12-22 上海交通大学 可信任主动式策略联动方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1394036A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 基于策略的网络管理系统
CN1550989A (zh) * 2003-05-07 2004-12-01 有计划的计算机问题诊断和解决及其自动报告和更新
CN1556613A (zh) * 2003-12-30 2004-12-22 上海交通大学 可信任主动式策略联动方法

Also Published As

Publication number Publication date
CN101339591A (zh) 2009-01-07

Similar Documents

Publication Publication Date Title
CN100592315C (zh) 一种xacml策略规则检测方法
Lakkaraju et al. " How do I fool you?" Manipulating User Trust via Misleading Black Box Explanations
Lin et al. EXAM: a comprehensive environment for the analysis of access control policies
Clark et al. Locating Supreme Court opinions in doctrine space
Ni et al. Conditional privacy-aware role based access control
CN102387145B (zh) 协同环境中访问控制策略冲突检测系统及方法
Colantonio et al. A new role mining framework to elicit business roles and to mitigate enterprise risk
Lin et al. Policy decomposition for collaborative access control
Greitzer et al. Design and implementation of a comprehensive insider threat ontology
Ma et al. Risk analysis in access control systems
Mohamed et al. A systematic literature review for authorization and access control: definitions, strategies and models
Harley et al. Information Integrity: Are We There Yet?
Collinson et al. Layered graph logic as an assertion language for access control policy models
De Capitani di Vimercati et al. Access control policies and languages in open environments
Shafiq et al. A framework for verification and optimal reconfiguration of event-driven role based access control policies
Sellami et al. A FCA framework for inference control in data integration systems
Wang et al. Provable guarantees on the robustness of decision rules to causal interventions
Vaidya et al. A framework for policy similarity evaluation and migration based on change detection
Byun et al. Systematic control and management of data integrity
Bellomarini et al. Blockchains as Knowledge Graphs-Blockchains for Knowledge Graphs (Vision Paper).
Alharbi et al. Evaluating the Impacts of Security-Durability Characteristic: Data Science Perspective.
Thomborson A framework for system security
Zhang Relation based access control
Van Staden et al. On compound purposes and compound reasons for enabling privacy
Badar et al. Using classification for role-based access control management

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100224

Termination date: 20170829