浙江大学学报(工学版), 2020, 54(11): 2149-2157 doi: 10.3785/j.issn.1008-973X.2020.11.010

计算机与控制工程

基于日志的富语义ABAC策略挖掘

毋文超,, 任志宇,, 杜学绘

Log-based rich-semantic ABAC policy mining

WU Wen-chao,, REN Zhi-yu,, DU Xue-hui

通讯作者: 任志宇,女,副教授,博士. orcid.org/0000-0002-5495-8711. E-mail: ren_ktzy@163.com

收稿日期: 2019-11-23  

Received: 2019-11-23  

作者简介 About authors

毋文超(1995—),男,硕士生,从事访问控制研究.orcid.org/0000-0002-4731-1223.E-mail:3130104330@zju.edu.cn , E-mail:3130104330@zju.edu.cn

摘要

为了解决大规模环境下的细粒度访问控制问题,挖掘出易于人工阅读、契合主体行为模式、精确完备的基于属性的访问控制(ABAC)策略,从而为安全管理员进行策略构建、维护和优化提供有力支撑,提出基于日志的富语义ABAC策略挖掘方法. 该方法基于频繁模式挖掘算法,从访问日志和属性数据中挖掘契合主体行为模式的ABAC策略. 对策略进行正确性和语义质量分析获得富语义ABAC策略集. 通过交叉验证方法对策略集的精确性和完备性进行验证,算法在公开数据集上的F1得分为0.8375,在手写数据集上的F1得分为0.9394. 在手写数据集上的验证表明,算法可以在较小训练集上得到比现有算法更高质量的策略集,所得授权规则在易读性方面有所提升.

关键词: 基于属性的访问控制(ABAC) ; 策略挖掘 ; 访问日志 ; 频繁模式挖掘 ; 富语义策略

Abstract

A log-based rich-semantic attribute-based access control (ABAC) policy mining method was proposed, to deal with fine-grained access control in large-scale information system, and to mine out readable, accurate and complete ABAC policy set, which is consistent with subject behavior profiles, so as to provide strong support for security administrator on constructing, maintaining and optimizing ABAC policy set. ABAC policies consistent with subject behavior are found out from access log and attribute data by frequent pattern mining in the proposed method. The rich-semantic ABAC policy set is obtained by correctness and semantic quality analysis. The accuracy and the completeness of the method were verified using cross-validation technique. The F1-score on public dataset was 0.8375, and that on handmade dataset was 0.9394. Validation on handmade dataset indicates that the method can mine policy set with higher quality than existing ones on small train set. The improvement of semantic quality of authorization rules is also proved on the handmade dataset.

Keywords: attribute-based access control (ABAC) ; policy mining ; access log ; frequent pattern mining ; rich-semantic policy

PDF (804KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

毋文超, 任志宇, 杜学绘. 基于日志的富语义ABAC策略挖掘. 浙江大学学报(工学版)[J], 2020, 54(11): 2149-2157 doi:10.3785/j.issn.1008-973X.2020.11.010

WU Wen-chao, REN Zhi-yu, DU Xue-hui. Log-based rich-semantic ABAC policy mining. Journal of Zhejiang University(Engineering Science)[J], 2020, 54(11): 2149-2157 doi:10.3785/j.issn.1008-973X.2020.11.010

在信息化系统中,访问控制根据预先定义好的访问控制策略,限定主体可以对资源执行何种操作[1],是保证主体能够对客体进行授权访问、保护客体免于遭受未授权访问的关键技术之一[2]. 随着云计算、大数据技术的发展,信息化系统中的实体数量呈现爆炸式增长,传统的面向封闭环境的访问控制模型如自主访问控制(discretionary access control,DAC)、强制访问控制(mandatory access control,MAC)、基于角色的访问控制(role-based access control,RBAC)等难以直接适用于新型计算环境. 基于属性的访问控制(attribute-based access control,ABAC)使用主体和客体的属性作为权限基本判决依据,可以实现多对多的访问控制,能够较好地将策略管理和权限判定分离,具有更高的灵活性,可以更好地支持大规模信息化系统的细粒度访问控制,环境属性的引入使得ABAC支持动态的访问控制[2-4]. 相较于RBAC,ABAC无须预先进行复杂的角色设计,可以有效避免RBAC中的角色爆炸(role explosion)问题[5]. 但是,由于ABAC的灵活性,在主客体数量、主客体属性数量较多的情况下,人工制定ABAC策略的难度较大,导致实际应用ABAC较困难[4]. 因此,研究自动化的ABAC策略集构建技术,对ABAC模型的推广应用意义巨大.

已有的构建ABAC策略集的方法主要分为自顶向下和自底向上2种[4]. 自顶向下方法的基本思想是结合安全需求,将业务拆解成一个个独立的功能单元,从功能单元细化到具体的访问,然后再从这些访问构造策略,通常的方法是召集专家人工分析,或利用自然语言处理技术从安全需求说明文档中分析得到ABAC策略集;自底向上的方法也被称为策略挖掘,基本思路是结合主客体属性数据,从主体权限关系中挖掘ABAC策略. 主体权限关系有2个来源,一是旧有的访问控制系统,二是访问日志. 相比较而言,旧有的访问控制系统中蕴含更完整的主体权限关系,更容易从中获得与原系统等价的策略集,但它仅仅蕴含纯粹的主体权限关系,反映的主体行为信息较为简单,一般只能从中挖掘静态策略,较难通过数据中的主体行为对策略进行优化;日志中蕴含的主体权限关系不完整,但记录了系统中主体的访问行为,蕴含着主体的行为模式[6],从中可以发现契合主体行为模式的策略,改进原有策略的错误配置[7-8].

基于日志的策略挖掘方法不仅能够构建策略集,还支持策略集的维护、审计和优化. 在将策略集用于策略构建、维护、审计、优化之前,须提高其易阅读性,挖掘得到富语义ABAC策略,使得安全管理员能准确理解其涵义,将其与具体业务关联起来.

因此本研究针对富语义ABAC策略挖掘问题,提出策略语义质量度量标准,并基于频繁模式挖掘算法和语义质量度量标准,实现基于日志的富语义ABAC策略挖掘(log-based rich-semantic ABAC policy mining,LRSAPM)算法,从访问日志和属性数据中挖掘富语义策略,使得所得策略集易于被安全管理员理解,为策略构建、维护和优化提供有力支撑.

1. 相关工作

作为应用ABAC的首要难题,ABAC策略集的构建备受研究者关注. 自顶向下方法从顶层安全需求出发,通过分解业务为独立的功能、对应到访问从而构造策略,通常须召集权威专家团队进行分析,费时费力且难以保证策略集的完备性. 为了自动化该过程,降低人力依赖,Narouei等[9]提出自顶向下的ABAC策略工程框架,利用深度递归神经网络从受限的自然语言文档中自动化地构建ABAC策略集,但这种方法需要有足够的、可靠的安全需求说明文档,制定这些文档同样须耗费大量人力.

自底向上的方法从已有的权限分配关系或访问日志中蕴含的主体权限关系出发,通过合并访问或发现访问之间的共同点,生成高质量的策略,构造高质量的策略集. Xu等[10-12]提出从已有权限分配关系中挖掘ABAC策略的方法,利用这类方法更容易挖掘出与原访问控制系统等价的ABAC策略集,但难以发现原有权限分配关系的错误,难以对策略进行优化. 相比较而言,虽然访问日志中蕴含的主体权限关系不完整,但是其中蕴含着主体的行为特征,更容易从中挖掘出符合业务流程和安全需求的策略.

Xu等[13]提出基于访问日志和属性数据的ABAC策略挖掘方法,该方法将访问日志转换成用户权限关系,运用贪心算法,在用户权限关系包含的<用户、动作、资源>元组集合中进行迭代,选择一条元组作为种子,根据其属性组合构建规则;删去属性约束、或以用户资源属性之间的约束替换对应2个属性的约束对策略进行泛化,直至其无法覆盖更多元组;选择未被覆盖的元组进入下一次迭代,直至覆盖用户权限关系中的所有元组;通过合并和简化操作对策略进行优化. 在日志包含足够用户权限关系的情况下,通过该方法可以得到与原有系统的授权管理系统等价的策略集. 该方法对于稀疏日志表现不佳;该方法仅仅利用了日志中蕴含的主体权限关系,未对日志信息充分利用;所定义的授权规则支持主体属性与客体属性之间的约束,具备更强的表达力,但所得策略易读性不高.

Mocanu等[14]提出基于神经网络的ABAC策略挖掘方法,将属性数据代入访问日志,转换为二进制向量,作为受限波兹曼机的输入来训练模型,计算所有日志条目在所得模型中的重构误差,取最大值作为阈值;生成所有可能的规则组合,计算其在所得模型中的重构误差,将重构误差小于阈值的规则添加到候选规则. 通过该方法可以发现数据的隐式分布,该方法抗噪声能力较强,但缺乏对规则集的进一步分析与优化,规则集整体质量较差.

Cotrini等[15]提出基于APRIORI算法的ABAC策略挖掘方法,将属性数据代入访问日志,挖掘具有频繁共现属性表达式的组合作为候选规则,提出T可靠度来评价规则,对规则进行筛选合并,使得规则在具备较强泛化能力的同时,保持较低的过度授权的风险,得到具有较高正确率、较好泛化性能的规则集. 但是,该算法支持的规则表达较为简单,只有单个属性的约束,不支持主客体属性之间的约束,因此实际挖掘的规则表达能力较差,该算法仅仅根据T可靠度和规则长度进行策略筛选,未考虑策略的易读性.

为了挖掘同时支持允许和禁止的访问控制策略,Iyer等[16]提出启发式方法,每次从日志中挑选被允许概率最高的属性值约束或属性对约束,作为策略的一个表达式;重复上述过程,直至策略只覆盖允许项,或剩余的拒绝项能被一条拒绝策略覆盖;然后进入下一次迭代,重新选取属性构造策略;最后对拒绝策略进行泛化与合并,得到较高质量的策略集. 该方法仍未能有效利用日志中蕴含的行为信息,且挖掘出来的策略易读性差.

为了挖掘支持环境属性的策略,Das等[17]提出基于基尼不纯度的策略挖掘方法,利用构建决策树的方法进行策略构建,该方法仍然没有充分利用日志的信息,未考虑策略的易读性.

针对以上方法对日志信息利用不够、所得策略表达力不强、不易于人工阅读等问题,本研究提出策略语义质量度量标准,并以此为指导,实现基于频繁模式挖掘技术的ABAC策略挖掘算法,从访问日志中挖掘强表达力、契合主体行为模式、易于人工阅读的ABAC策略.

2. ABAC策略挖掘问题描述

2.1. ABAC策略语言

作为首次提出ABAC策略挖掘算法的团队,Xu等[13]提出表达力较强的ABAC策略语言描述,在定义策略时,不光支持单个主体属性、单个客体属性的约束,也支持主体属性和客体属性之间的约束[13]. 但是,其支持的约束较为复杂,在应用挖掘算法后会产生过多同义的候选项,分散研究要点,因此本研究对约束的表达式进行了简化.

定义1 ABAC策略. ABAC策略 $\varPi $由主体集合 $ S$、客体集合 $ O$、主体属性集合 $ {\rm{SA}}$、客体属性集合 $ {\rm{OA}}$、属性分配关系 $ {\rm{AAR}}$、动作集合 $ {\rm{ACT}}$和授权规则集合 $ {\rm{Rules}}$组成,即

$\varPi = < S,{\rm{ }}O{\rm{, SA, OA, AAR, ACT, Rules}} > .$

对于 $\forall s \in S,{\rm{sa}} \in {\rm{SA,}}$ ${\rm{AAR}}\left( {s{\rm{, sa}}} \right)$表示主体 $s$${\rm{sa}}$属性的值; $\forall o \in O,{\rm{oa}} \in {\rm{OA,}}$ ${\rm{AAR}}\left( {o,{\rm{oa}}} \right)$表示客体 $o$${\rm{oa}}$属性的值. 方便起见,引入“ $.$”操作符表示该关系,如对于 $\forall s \in S,{\rm{sa}} \in {\rm{SA}},$ $s.{\rm{sa}}$表示主体 $s$${\rm{sa}}$属性的值.

${\rm{Rules}}$是授权规则的集合,授权规则(通常也被称为策略)基于主体和客体的属性来制定,具体描述如下:

授权规则 ${\rm{rule}}$由主体属性约束 ${\rm{sae}}$、客体属性约束 ${\rm{oae}}$、主客体属性约束 ${\rm{cons}}$、动作集合 ${\rm{acts}}$${\rm{acts}} \subseteq {\rm{{\rm A}C{\rm T}}}$)和判决结果d$d \in \left\{ {{\rm{permit,deny}}} \right\}$)组成,形如

${\rm{rule}}\;{\rm{:: = }}\;{\rm{ < sae,oae,cons,acts,}}d{\rm{ > }}.$

${\rm{sae}}$为规则中主体属性约束,由单个主体属性的约束合取而成,可以为空,形如

${\rm{sae}}\;:: = \;\left. {\left( {\left( {{\rm{sa}}\;{\rm{op}}\,\;v} \right)\; \wedge \;{\rm{sae}}} \right)\;} \right|\;{\rm{null}}.$

式中: ${\rm{sa}} \in {\rm{SA}}$为主体属性, $v$为属性值, ${\rm{op}}$为两者须满足的关系, $ \wedge $为合取关系.

${\rm{oae}}$为规则中客体属性约束,由单个客体属性的约束合取而成,可以为空,形如

${\rm{oae}}\;:: = \;\left. {\left( {\left( {{\rm{oa}}\;{\rm{op}}\,\;v} \right)\; \wedge \;{\rm{oae}}} \right)\;} \right|\;{\rm{null}}.$

式中: ${\rm{oa}} \in {\rm{OA}}$为客体属性.

${\rm{cons}}$为规则中主客体属性之间须满足的约束,由成对主客体属性的约束合取而成,形如

${\rm{cons}}\;:: = \;\left. {\left( {\left( {{\rm{sa}}\;{\rm{op}}\,\;{\rm{oa}}} \right)\; \wedge \;{\rm{cons}}} \right)\;} \right|\;{\rm{null}}.$

式(5)对文献[13]的策略语言进行了简化, ${\rm{op}}$仅支持相等、包含、被包含、子集、超集、集合交叉关系.

以大学场景为例,学生的试卷,只有相应科目的老师或助教可以批阅,写成规则即为

在访问控制系统中,基本权限以 $ < s,a,o > $(其中 $s \in S,a \in {\rm{ACT}},o \in O$)三元组的形式表示,称为主体权限元组,主体权限元组的集合被称为主体权限关系. ABAC策略指定了主体权限关系 ${\rm{SP}}\,{\rm{ = }}\;S \times{\rm{ ACT}} \times O$中,哪些主体权限元组应该被允许,哪些应该被禁止,2种元组的集合分别记为 ${\rm{S}}{{\rm{P}}_{\rm{P}}}$${\rm{S}}{{\rm{P}}_{\rm{D}}}$${\rm{S}}{{\rm{P}}_{\rm{P}}} \cup \,{\rm{S}}{{\rm{P}}_{\rm{D}}}\,{\rm{ = }}\,{\rm{SP}}$.

2.2. 基于日志的ABAC策略挖掘问题

访问日志条目形如 $ < t,s,o,a,r > $,其中 $t$为访问时间, $s \in S$为主体, $o \in O$为客体, $a \in {\rm{ACT}}$为主体对客体的操作, $r \in \left\{ {{\rm{permit,deny}}} \right\}$代表访问是否被允许,访问日志集 $L$为访问日志条目的集合. 基于日志的ABAC策略挖掘问题的定义如下.

定义2 基于日志的ABAC策略挖掘. 给定访问日志集 $ L$,主体集合 $ S$、客体集合 $ O$、主体属性集合 $ {\rm{SA}}$、客体属性集合 $ {\rm{OA}}$、属性分配关系 $ {\rm{AAR}}$,挖掘得到授权规则集合 $ {\rm{Rules}}$,得到访问控制策略

$\varPi = \, < S,{\rm{ }}O{\rm{, SA, OA, AAR, ACT, Rules}} > .$

3. 基于日志的富语义ABAC策略挖掘算法

LRSAPM算法基于频繁模式挖掘,如图1所示,在对数据进行预处理后,采用FPGrowth算法从访问日志和属性数据中挖掘ABAC授权规则候选集;基于 $T$可靠度筛选剔除准确率较低、过度授权风险较高的规则;基于语义质量度量对规则集去冗余,保留语义质量较高的规则形成最后的规则集. 具体流程如图1所示.

图 1

图 1   LRSAPM算法流程图

Fig.1   Flow chart of LRSAPM algorithm


候选规则挖掘由频繁模式挖掘算法完成,频繁模式挖掘算法近年来常被应用于发现访问日志中被允许访问的主客体属性存在的模式[7, 8, 15],常用算法有Apriori[18-19]和FPGrowth[20],相比于经典算法Aprior,FPGrowth仅须扫描2次而不是多次原始数据,在处理大规模数据时效率更高,因此本研究采用FPGrowth算法来挖掘候选规则.

在得到候选规则之后,须进行2步操作:1)依据规则准确度质量度量标准进行候选规则筛选,剔除掉准确度低、过度授权的规则;2)根据规则语义质量度量标准进行规则去冗余,将冗余规则进行化简合并得到最终的规则集.

3.1. 规则准确度质量度量标准

在考虑规则准确度质量时,主要分2个方面,一是规则的准确率,二是规则过度授权风险. Cotrini等[15]基于置信度提出 $T$可靠度来描述规则的准确度度量,以筛选出候选规则集中准确率高、过度授权风险较低的规则. 为了定义过度授权,Cotrini定义了规则的改进来定义过度授权[15].

定义3 规则的改进. 对于规则 $r$,形如 $r \wedge r'$的规则称为规则 $r$的改进,其中r'表示为规则r添加了额外的约束.

定义4 规则的置信度. 表达式如下:

${\rm{Conf}}\left( r \right)={\left| \,{{\left[\!\left[ r \right]\!\right]}_{A}} \right|}/{\left| \,{{\left[\!\left[ r \right]\!\right]}_{U\times P}} \right|}.$

式中: $A$为被允许的主体权限关系集合, $U$为用户集合, $P$为权限集合, ${{\left[\!\left[ r \right]\!\right]}_{X}}$$X \subseteq U \times P$中满足条件 $r$的主体权限元组集合.

定义5 过度授权. 如果某条规则存在一条置信度较低的改进,那么这条规则就是过度授权的.

定义6 规则的$T$可靠度. 表达式如下:

${{\rm{Rel}} _T}\left( r \right) = \mathop {\min }\limits_{r' \in {{{F}}_T}\left( r \right)} \;{\rm{Conf}} \left( {r \wedge r'} \right).$

式中: ${{{F}}_{T}}\left( r \right)=\left\{ r':\left| {{\left[\!\left[ r\wedge r' \right]\!\right]}_{U\times P}} \right|\geqslant T \right\}$T为候选规则须满足的最小频次.

为了在挖掘时保留主体访问行为特征,对定义6进行修改,在进行置信度计算时,直接在日志中进行计算,而不是在主体权限关系中计算,记访问日志集 $X \subseteq L$中满足条件 $r$的访问集合为 ${{\left[\!\left[ r \right]\!\right]}_{X}^L}$. 在访问日志集 ${{L}}$中,被允许的访问集合记为 ${L_{\rm{A}}}$,被禁止的主体权限元组列表记为 ${L_{\rm{D}}}$,从而修改 $T$可靠度的定义如下.

定义7 基于日志的规则的T可靠度. 表达式如下:

${\rm{Re}}{{\rm{l}}_T}(r) = \mathop {\min }\limits_{r' \in {{{F}} _T}\left( r \right)} {\rm{Conf}} \left( {r \wedge r'} \right).$

其中,

${{F}_{T}}\left( r \right)=\left\{ r':\left| \left[\!\left[ r\wedge r' \right]\!\right]_{L}^{L} \right|\geqslant T \right\},$

${\rm{Conf}}\left( r \right)={\left| \,\left[\!\left[ r \right]\!\right]_{{{L}_{{\rm{A}}}}}^{L} \right|}\left/{{\left| \,\left[\!\left[ r \right]\!\right]_{L}^{L} \right|}}\right..$

在进行频繁模式挖掘时,能够给予频繁的访问更大的权重,从而保证所得策略尽可能地覆盖常用访问.

3.2. 规则语义质量度量标准

日志记录着主体的访问行为,基于日志挖掘的ABAC策略,可以为管理员进行策略制定、维护、审计和优化提供参考,前提是这些规则容易被管理员理解,但目前已有的方法挖掘得到的授权规则都仅考虑规则的准确性,所挖规则都以简短为先,省略了较多有用信息,不易于人工阅读理解.比如在大学场景中,所教课程是教师独有的属性,学生没有,但是两者都有类型这个属性(教师的类型为教师,学生的类型为学生),在已有的方法中,为了降低策略复杂度,在规则使用所教课程构建属性约束时,会删去类型这个属性,在人工阅读时须知道“所教课程是教师独有的属性”这个先验知识,否则就会产生困惑. 因此,本研究针对规则的易阅读性展开研究,提出规则语义质量度量标准,以获得易于人工理解、能够高效地用于策略创建、维护、审计和优化的规则集.

规则由属性约束组成,因此规则的语义信息由各属性约束的语义信息综合而成. 属性的语义质量分为2个方面,一是属性能够描述的实体数量,二是属性值的分布. 一般来说,属性能够描述的实体越多,选用该属性制定策略时就能区别出更多的实体,更具有普适性. 如在上述大学场景中,类型相比所教课程覆盖更多的实体,因此将该属性引入授权规则可以帮助管理员更快确定实体的一般性质. 属性值的分布也影响属性的语义,如属性只有一个值,对于管理员理解策略帮助就较小.

信息熵在信息学中被用来衡量变量所具有的信息量,引入信息熵来度量属性的语义质量. 为了统一属性两方面的语义质量,将不具备某属性的实体的属性值标记为UNK,给出定义8.

定义8 属性语义质量度量. 表达式如下:

${\rm{QolAttr}} \left( a \right) = \sum\limits_{v \in {\rm{AF}}(a) \cup \{ {\rm{UNK}}\} } { - {{p}} \left( v \right){{\log }_2}\;{{p}} \left( v \right)} .$

式中: $a \in {\rm{SA}} \cup {\rm{OA}}$为实体属性; ${\rm{AF}}\left( a \right)$为属性 $a$的值域,通过统计 ${\rm{AAR}}$中的实体属性值获得; ${{p}} \left( v \right)$为属性值 $v$在日志集 $L$中出现的概率.

属性约束的语义信息也分为2个方面,一方面是所使用属性的语义信息,一方面是约束的语义信息. 主客体属性之间的约束的语义信息比单个属性的约束的语义信息丰富,虽然单个属性能够帮助管理员对实体进行精准定位,但属性之间的关系可以反映主客体之间存在的关系,帮助管理员理解主客体权限关系,因此在计算授权规则的语义质量时应给予更高的权重.

定义9 授权规则语义质量度量. 表达式如下:

$\begin{split} & {\rm{QolRule}} \left( r \right) = {w_1}\displaystyle\sum\limits_{a \in {\rm{Attrs}} \left( {{\rm{sae}}} \right)} {{\rm{QolAttr}} \left( a \right)} + \\ &\;\;\;\;\;\;\;\;\;\;\;\;\; {w_2}\displaystyle\sum\limits_{a \in {\rm{Attrs}} \left( {{\rm{oae}}} \right)} {{\rm{QolAttr}} \left( a \right)} + {w_3}\displaystyle\sum\limits_{a \in {\rm{Attrs}} \left( {{\rm{cons}}} \right)} {{\rm{QolAttr}} \left( a \right)} . \\ \end{split} $

式中:w1w2w3为权重,Attrs (·) 为用到的属性.

4. LRSAPM算法实现

4.1. 候选规则挖掘

候选规则挖掘算法如下所示.

算法1 候选规则挖掘

输入:L,AAR,ACT,T

输出:candi_rules

1 permited_L=get_permited_log (L

2 ACT=get_acts(permited_L

3 attr_exps=calc_attr_exps(AAR,ACT)

4 input_X=to_bool_matrix(L,AAR,attr_exps)

5 freq_itemsets=FPGrowth(input_XT

6 candi_rules=to_rules(freq_itemsets,attr_exps)

7 return candi_rules

该算法以访问日志集 $L$、属性分配关系 ${\rm{AAR}}$、动作集合 ${\rm{ACT}}$、候选规则的最小支持度 $T$为输入,输出挖掘到的候选规则. 第1行调用get_permited_log函数从日志集中筛选出被允许的访问. 第3行调用calc_attr_exps函数,从 ${\rm{AAR}}$中计算出所有属性的值域,选出具有相似值域的主客体属性作为可能存在约束的主客体属性对,然后生成所有可能的单个主体属性约束、单个客体属性约束、单个主体属性与单个客体属性之间的约束、动作约束存入attr_exps变量. 第4行调用to_bool_matrix函数,计算被允许日志中的每一条访问是否满足attr_exps中的表达式,保存为布尔值矩阵. 第5、6行调用FPgrowth算法挖掘频繁项集,得到频繁出现的属性表达式的下标,找到attr_exps中的对应属性表达式,得到候选规则集.

4.2. 候选规则筛选

候选规则筛选算法如下所示.

算法2 候选规则筛选

输入:candi_rules,K

输出:filtered_rules

1 candi_rules=sort_by_length(candi_rules)

2 filtered_rules=[]

3 while len(candi_rules)>0:

4  rule=candi_rules.pop()

5  if calc_conf(rule) $\geqslant $K

6   filtered_rules.append(rule)

7  else:

8   del_refined(rule,candi_rules)

9 return filtered_rules

该算法以候选规则集candi_rules和最小 $T$可靠度 $K$为输入,输出筛选后的规则集filtered_rules.为了加速筛选过程,对候选规则按长度进行排序(第1行),每次弹出最长的候选规则(不会被其他规则改进),如果 $T$可靠度高于 $K$,保存到filtered_rules,否则在candi_rules中搜索它所改进的规则并删除,直至candi_rules为空(第3~8行).

4.3. 候选规则化简

候选规则化简算法如下所示.

算法3 候选规则化简

输入:filtered_rules

输出:rules

1 bad_rules=[]

2 for rule1,rule2 in filtered_rules×filtered_rules:

3  if rule1 equals rule2:

4   continue

5  if better_than(rule1,rule2):

6   bad_rules.append(rule2)

7 filtered_rules.delete(bad_rules)

8 rules=get_minimum(filtered_rules)

该算法以筛选后的规则集filtered_rules为输入,输出最终的规则集rules.将filtered_rules中的规则两两比较,并删去质量较差的规则,better_than函数用于比较2个规则的质量,对于覆盖相同主体权限关系的规则,根据式(6)、(7)计算语义质量,保留语义质量较高的;对于权限关系有真包含关系的,保留覆盖较大权限关系的规则. 最后通过get_minimum函数获取与经过第2~7行筛选过的filtered_rules等价的最小规则集. 该函数从规则集中选择覆盖主体权限关系最多的规则加入新规则集,在原规则集覆盖的主体权限关系集中删去对应主体权限关系,循环往复,直至原规则集中所有的主体权限关系都转移到新规则集下.

5. 实验验证

5.1. 实验环境与数据集

实验环境如下:Intel Core i7-8750H CPU,16 GB内存,Ubuntu 18.04操作系统;基于Python3.7进行开发,开发平台为PyCharm,实现了基于日志的富语义ABAC策略挖掘算法;修改了Cotrini等[15]提出的Rhapsody算法以运行本研究的测试样例.

实验数据集分为公开数据集和人工数据集. 公开数据集是来自Kaggle平台上的“Amazon.com-Employee Access Challenge”竞赛的训练集,简称AmazonEmployee.人工数据集是在Xu等[13]的手写策略基础上修改而来的,主要修改了主客体属性之间的约束,修改前、后的主体权限关系是等价的,Xu等[13]定义了较为复杂的属性约束,但主客体属性定义较为简单,因此很多约束在他们提供的主客体集合上是等价的,在使用频繁模式挖掘时会无意义地扩大计算难度.

表1所示为数据集的基本信息,AmazonEmployee数据集中的主客体数量较多,但日志条目较少,日志集较稀疏,且客体属性只有一个;HealthCare数据集主客体属性数量较多,日志条目相比于主客体数量而言较多.

表 1   AmazonEmployee和HealthCare的数据集信息

Tab.1  Dataset information about AmazonEmployee and HealthCare

数据集信息 日志条目数量 主体数量 主体属性数量 客体数量 客体属性数量
Amazon-Employee 32769 4244 8 7519 1
HealthCare 2724 21 6 18 7

新窗口打开| 下载CSV


5.2. 实验方法与结果

采用交叉验证的方法与文献[15]中的Rhapsody算法在真阳性率(true positive rate,TPR)、假阳性率(false positive rate,FPR)、精确率(precision)、召回率(recall)和F1得分方面进行对比.

挖掘到的策略集在数据集上的预测结果可以分为4类:1)真阳性项:应该被允许,所得策略允许;2)假阳性项:应该被禁止,所得策略允许;3)真阴性项:应该被禁止,所得策略禁止;4)假阴性项:应该被允许,所得策略禁止.

TPR、FPR、Precision、Recall和F1-socre的表达式如下:

${\rm{TPR}} = {{{\rm{TP}}}}/\left( {{{{\rm{TP + FN}}}}} \right),$

${\rm{FPR = }}{{{\rm{FP}}}}/\left( {{{{\rm{FP + TN}}}}} \right),$

${\rm{Precision}} = {{{\rm{TP}}}}/\left( {{{{\rm{TP + FP}}}}} \right),$

${\rm{Recall}} = {{{\rm{TP}}}}/\left( {{{{\rm{TP + FN}}}}} \right),$

${\rm{F1 {\text{-}} score}} = \frac{{2{\rm{Precision}} \times {\rm{Recall}}}}{{{\rm{Precision}} + {\rm{Recall}}}}.$

式中:策略集在数据集上的真阳性项、假阳性项、真阴性项、假阴性项数目分别为 $ {\rm{TP}}$$ {\rm{FP}}$$ {\rm{TN}}$$ {\rm{FN}}$.

首先,须选择算法的计算 $T$可靠度的参数 $T$$T$可靠度的阈值 $K$. $T$越小,得到的规则数越多,计算 $T$可靠度时的计算量越大,越易发生过拟合; $T$越大,所得规则数越少,计算量越小,但可能获取不到足够的规则. $K$越大,所得规则可能会允许越少的应该禁止的请求,也可能会拒绝越多的应该允许的请求.

图23所示分别为LRSAPM算法和Rhapsody算法在HealthCare数据集上关于 $T$$K$的F1得分的折线图. 可以看出,当 $T$=10、 $K$=0.9时,2种算法均具有最高的F1得分,因此在后续的实验中,HealthCare数据集上 $T$=10, $K$=0.9.

图 2

图 2   参数T对2种算法F1得分的影响

Fig.2   Influence of parameter T on F1-score of two algorithms


图 3

图 3   参数 $K$对2种算法F1得分的影响

Fig.3   Influence of parameter $K$ on F1-score of two algorithms


图4~7所示为2种算法在HealthCare数据集上的TPR/Recall、FPR、Precision和F1-score随训练集所占比例增大的变化情况. 图中,tr为训练集比例. 可以看出,在HealthCare数据集上,随着训练集的增大,2种算法整体趋势均逐渐变好,但Rhapsody算法在FPR和Precision这2个指标上呈现出较大的波动. 相对而言,LRSAPM算法具有更高的TPR/Recall、Precision、F1-score和更低的FPR,且各项指标随着训练集增大具有更规律的变化趋势,即使在训练集较小的情况下,LRSAPM算法也能取得较好的结果. LRSAPM算法在各项指标上具有显著的优势,主要是由于LRSAPM算法在支持Rhapsody算法定义的约束之外,额外支持主客体属性之间的约束,表达能力更强,更加贴合实际的访问控制需求.

图 4

图 4   训练集比例对2种算法TPR/Recall的影响

Fig.4   Influence of train set ratio on TPR/Recall of two algorithms


图 5

图 5   训练集比例对2种算法FPR的影响

Fig.5   Influence of train set ratio on FPR of two algorithms


图 6

图 6   训练集比例对2种算法Precision的影响

Fig.6   Influence of train set ratio on Precision of two algorithms


图 7

图 7   训练集比例对2种算法F1得分的影响

Fig.7   Influence of train set ratio on F1-score of two algorithms


AmazonEmployee数据集数据量较大,文献[15]在其上进行实验时仅挖掘单个客体的访问控制策略,本实验为验证算法对于较大规模稀疏日志的实际支持度,直接挖掘整个数据集. 当取较小的 $T$时,算法的运行时间较长,Rhapsody算法缺少优化,甚至会直接导致宕机. 因此,本实验仅在该数据集上进行了概念性的验证,在同参数下对2种算法进行对比,取值为 $T$=50, $K$=0.9.

采用80%训练集、20%验证集,3次拆分数据集并运行挖掘算法,各指标分别取平均值,如表2所示. 在AmazonEmployee数据集上参数 $T$=50, $K$=0.9;在Healthcare数据集上参数 $T$=10, $K$=0.9. 可以看出,在AmazonEmployee数据集上,LRSAPM算法在TPR、精确率、召回率和F1得分上都比Rhapsody表现好,但具有较高的FPR,即有较多被错误允许的项,说明算法在稀疏日志上的挖掘得到的策略存在较多错误允许的情况;在手写数据集上,LRSAPM算法在以上参数上均优于Rhapsody.

表 2   2种算法在2个数据集上的F1得分对比

Tab.2  Comparison of F1-score of two algorithms on two datatsets

数据集 算法 TPR/Recall FPR Precision F1-score
Amazon-Employee LRSAPM 0.9522 0.6200 0.7475 0.8375
Rhapsody 0.9906 0.0018 0.0114 0.0226
Health-Care LPSAPM 1 0 0.8858 0.9394
Rhapsody 0.9092 0.0186 0.6892 0.7833

新窗口打开| 下载CSV


5.3. 策略语义质量分析

为了验证所挖掘策略在语义质量的提升,将挖掘Healthcare数据集得到的策略与原策略进行对比. Rhapsody由于支持的授权规则较简单,所得的授权规则数量较多,且不便于阅读. LRSAPM算法获得的结果基本与原数据集的手写授权规则一一对应,在语义质量上相比原规则更高,比如原规则集中的规则

$\begin{split} & {\rm{rule\;(;\; type \;in\; }}\left\{ {{\rm{HR}}} \right\}{\rm{; }}\left\{ {{\rm{append}}} \right\}{\rm{;}} \\ & \quad \quad {\rm{teams\; contain\; streating\;Team)}} . \\ \end{split} $

由于只有医生具有teams属性,原规则省略了position属性的限定,造成阅读不便. 本研究得到的对应规则为

$\begin{split} & {\rm{rule\;(position = doctor; type = HR; }}\left\{ {{\rm{append}}} \right\}{\rm{;}} \\ & \quad \quad {\rm{teams\; contain\; streating\;Team)}} .\\ \end{split} $

Rhapsody由于不支持主客体属性之间的约束,所得规则数量较多,可读性差,而且可能无法覆盖该规则覆盖的所有访问. 相比较而言,LRSAPM算法挖掘到的规则集语义质量比Rhapsody更高,接近人工制定的规则集,且在易读性上有提升.

6. 结 语

提出基于日志的富语义ABAC策略挖掘算法,从访问日志和属性数据中挖掘高准确度质量、高语义质量的ABAC策略. 实验证明所提算法相对于已有算法,在TPR、Precision、Accuracy和F1-score等标准上有较大的提升,而且可以更好地支持小训练集;挖掘得到的授权规则与人工制定的规则较为接近,且具备更丰富的语义信息,更易被安全管理员理解,更容易应用于实际的访问控制策略制定与维护.

算法对于稀疏日志和低频访问的处理能力有待进一步提高;提出的策略语义质量标准对属性集质量要求较高. 下一步将研究大规模环境下属性集的预处理技术,研究属性集的去冗余、属性值的优化;研究策略的可视化技术,为安全管理员更加直观地展示策略与主客体的综合关系、策略与权限的对应关系,为ABAC策略集的维护提供进一步支撑.

参考文献

SANDHU R S, SAMARATI P

Access control: principle and practice

[J]. IEEE Communications Magazine, 1994, 32 (9): 40- 48

DOI:10.1109/35.312842      [本文引用: 1]

王小明, 付红, 张立臣

基于属性的访问控制研究进展

[J]. 电子学报, 2010, (7): 33

[本文引用: 2]

WANG Xiao-ming, FU Hong, ZHANG Li-chen

Research progress on attribute-based access control

[J]. Acta Electronica Sinica, 2010, (7): 33

[本文引用: 2]

房梁, 殷丽华, 郭云川, 等

基于属性的访问控制关键技术研究综述

[J]. 计算机学报, 2017, 40 (7): 1680- 1698

DOI:10.11897/SP.J.1016.2017.01680     

FANG Liang, YIN Li-hua, GUO Yun-chuan, et al

A survey of key technologies in attribute-based access control scheme

[J]. Chinese Journal of Computers, 2017, 40 (7): 1680- 1698

DOI:10.11897/SP.J.1016.2017.01680     

DAS S, MITRA B, ATLURI V, et al. Policy engineering in RBAC and ABAC [M]// From database to cyber security. Cham: Springer, 2018: 24-54.

[本文引用: 3]

HU V, FERRAIOLO D, KUHN R, et al. Guide to attribute based access control (ABAC) definition and considerations [R/OL]. (2019-02-15). https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=914795.

[本文引用: 1]

JIN Z, CUI Y, YAN Z. Survey of intrusion detection methods based on data mining algorithms [C]// Proceedings of the 2019 International Conference on Big Data Engineering. New York: ACM, 2019: 98-106.

[本文引用: 1]

BAUER L, GARRISS S, REITER M K

Detecting and resolving policy misconfigurations in access-control systems

[J]. ACM Transactions on Information and System Security, 2011, 14 (1): 2

[本文引用: 2]

BAUER L, LIANG Y, REITER M K, et al. Discovering access-control misconfigurations: new approaches and evaluation methodologies [C]// Proceedings of the Second ACM Conference on Data and Application Security and Privacy. San Antonio: ACM, 2012: 95-104.

[本文引用: 2]

NAROUEI M, KHANPOUR H, TAKABI H, et al. Towards a top-down policy engineering framework for attribute-based access control [C]// Proceedings of the 22nd ACM on Symposium on Access Control Models and Technologies. Indianapolis: ACM, 2017: 103-114.

[本文引用: 1]

XU Z, STOLLER S D

Mining attribute-based access control policies

[J]. IEEE Transactions on Dependable and Secure Computing, 2014, 12 (5): 533- 545

[本文引用: 1]

TALUKDAR T, BATRA G, VAIDYA J, et al. Efficient bottom-up mining of attribute based access control policies [C]// 2017 IEEE 3rd International Conference on Collaboration and Internet Computing. San Jose: IEEE, 2017: 339-348.

KARIMI L, JOSHI J. An unsupervised learning based approach for mining attribute based access control policies [C]// 2018 IEEE International Conference on Big Data. Seattle: IEEE, 2018: 1427-1436.

[本文引用: 1]

XU Z, STOLLER S D. Mining attribute-based access control policies from logs [C]// IFIP Annual Conference on Data and Applications Security and Privacy. Heidelberg: Springer, 2014: 276-291.

[本文引用: 6]

MOCANU D, TURKMEN F, LIOTTA A. Towards ABAC policy mining from logs with deep learning [C]// Proceedings of the 18th International Multiconference. Ljubljana: Intelligent Systems, 2015.

[本文引用: 1]

COTRINI C, WEGHORN T, BASIN D. Mining ABAC rules from sparse logs [C]// 2018 IEEE European Symposium on Security and Privacy. London: IEEE, 2018: 31-46.

[本文引用: 7]

IYER P, MASOUMZADEH A. Mining positive and negative attribute-based access control policy rules [C]// Proceedings of the 23nd ACM on Symposium on Access Control Models and Technologies. Indianapolis: ACM, 2018: 161-172.

[本文引用: 1]

DAS S, SURAL S, VAIDYA J, et al. Using gini impurity to mine attribute-based access control policies with environment attributes [C]// Proceedings of the 23nd ACM on Symposium on Access Control Models and Technologies. Indianapolis: ACM, 2018: 213-215.

[本文引用: 1]

AGRAWAL R, SRIKANT R. Fast algorithms for mining association rules [C]// Proceedings of the 20th International Conference on Very Large Data Bases. San Francisco: ACM, 1994, 1215: 487-499.

[本文引用: 1]

AGRAWAL R, IMIELINSKI T, SWAMI A. Mining association rules between sets of items in large databases [C]// Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data. Washington: ACM, 1993: 207-216.

[本文引用: 1]

HAN J, PEI J, YIN Y. Mining frequent patterns without candidate generation [C]// Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data. Dallas: ACM, 2000: 1-12.

[本文引用: 1]

/