基于角色和属性的零信任访问控制模型研究

2024-03-12 09:18许盛伟刘昌赫刘家兴
信息安全研究 2024年3期
关键词:数组访问控制信任

许盛伟 田 宇 邓 烨 刘昌赫 刘家兴

1(北京电子科技学院信息安全研究所 北京 100070)

2(北京电子科技学院网络空间安全系 北京 100070)

3(北京电子科技学院密码科学与技术系 北京 100070)

随着信息网络技术的高速发展,传统的基于划分安全区域,在网络边界处部署譬如防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)等安全设备的边界安全理念在面对越来越繁杂的网络基础设施时难以设置边界,同时在面对越来越多来自网络内部的攻击时无能为力.而贯彻“永不信任、始终验证”原则的零信任[1-2]模型是解决上述问题的有效手段之一.零信任模型使访问行为得到更细粒度的控制会持续地对访问主体进行身份验证和动态授权,实现对客体资源的细粒度安全访问控制.

2010年,Forrester的分析师Kindervag[3]首次提出了“零信任”这一术语,建议对所有的访问请求进行安全控制.之后,谷歌公司在BeyondCorp项目中开始尝试使用零信任安全模型取代传统的基于网络边界的网络安全模型[4].目前在零信任架构下的访问控制模型研究发展得较为迅速,但仍存在信任值评估算法不准确、对资源属性的遍历效率不高、无法做到既保证细粒度又保证查询效率等问题.针对以上问题,本文提出一种基于角色和属性的零信任访问控制模型,主要有3个方面的贡献:

1) 创新性地提出一种资源决策树模型,提高了模型细粒度和查找效率;

2) 提出一种新的信任度量体系,基于逻辑回归与调和平均数模型对信任值的计算进行优化,依据最小权限原则结合惩罚机制与奖励机制,对访问主体进行持续性的综合信任评估,实现安全、高效、合理的动态访问控制;

3) 优化零信任架构下的访问控制流程.

1 方案设计

1.1 模型架构

零信任访问控制模型主要由资源服务器、权限服务器、信任服务器、决策服务器以及安全网关组成,如图1所示.与传统VPN先连接、后认证的接入方式不同,模型采取先认证、后接入的连接方式,有效减少了模型的暴露面.

图1 零信任访问控制模型架构

信任服务器是动态信任评估体系的“核心”,当访问主体进行访问时,信任服务器会根据其属性对其计算信任值,并根据访问主体的信任值为其分配一个角色.资源服务器通过计算资源值量化每项资源的重要性,使用资源哈希值对资源进行标识,同时将资源划分最小单位.权限服务器计算权限值,维护角色链表,生成资源决策树.决策服务器通过访问主体申请产生的资源值、权限值计算决策值,通过访问主体角色(信任值)与决策值的对应关系判断访问主体的申请是否通过.

1.2 资源决策树模型

资源决策树由资源决策点组成,资源决策点包含资源哈希值、权限集合、决策区间以及连接其他资源决策点的左、右指针.当访问主体接入模型后模型会为其分配1个角色,每个角色连接至1个资源决策树的根节点,资源决策树在数据结构上是一个二叉树,如图2所示.

图2 资源决策树

资源决策树的左子树连接同一资源不同权限的资源决策点,右子树则连接包含不同资源的资源决策点.1个角色所能连接的二叉树中所有节点的决策值相似.本文模型相较于目前主流的链表式模型在计算复杂度上有所改进.当遍历同一角色不同资源决策点时,本文模型的计算复杂度为O(lbn),若采用链式模型,其计算复杂度为O(n).同时,决策树模型在细粒度的控制上更加精细.可以实现权限更细粒度的控制,1个角色对1个资源的权限集之间不存在包含和被包含的关系.

2 算 法

2.1 信任值

信任值由信任服务器计算产生,信任值的大小反映了模型对访问主体的信任程度.访问主体接入模型时信任服务器会通过读取身份信息、日志等数据对访问主体进行综合判断.信任值由3个部分组成,即历史信任值、实时信任值、惩罚与奖励,计算过程如图3所示.

图3 信任值计算过程

访问主体本次申请访问是否通过主要由实时信任值TN、历史信任值TB所计算出的F(TN,TB)决定.u,v为实时信任值TN、历史信任值TB的权重.函数F如式(1)所示:

F(TN,TB)=uTN+vTB.

(1)

若模型判断F(TN,TB)高于访问主体申请产生的决策值,则通过访问主体申请.在访问主体的访问过程中模型信任服务器通过安全网关的流量对访问主体进行审计,直到访问主体结束访问.模型边访问边审计,通过访问主体流量、身份信息计算惩罚与奖励值TRD,如访问主体在访问过程中存在违规行为,安全网关将立刻切断访问主体与资源之间的连接.访问主体访问结束后将F(TN,TB)与TRD的综合计算值存入历史信任行为数组.信任服务器为每个访问主体维护1个历史信任行为数组t[n][m],t[n][1]即数组第1列记录访问主体历史申请访问后模型所计算的信任值.t[n][2]即数组第2列记录访问主体单次历史行为参数,存在惩罚记录记为1,无惩罚记录记为0.γ,δ为F(TN,TB)、惩罚与奖励值TRD的权重.式(2)为历史信任值的计算方法:

t[i][1]=G(F(TN,TB),TRD)=
γF(TN,TB)+δTRD, 0

(2)

访问主体第1次接入模型时,信任服务器对访问主体历史信任行为数组赋初始值,访问主体信任值不设下限,设置上限,提升信任值达到一定程度可申请提高信任值上限,信任值上限的提高需经过严格审核.

2.1.1 历史信任值

通常情况下,越早的访问记录对当前访问评估的参考性就越弱[5].因此,信任值产生的时间越早在整个历史信任值计算中所占的权重应越低.此外,为节省信任服务器的资源,每个访问主体的历史信任行为数组规定行、列为一定值n,m.式(3)为历史信任值衰减系数的计算方法:

(3)

A(s)为历史信任行为数组衰减系数,即访问主体历史信任值的衰减系数,其中s为当前数组元素下标,p为数组最后元素下标.λ为历史信任值调整系数.访问主体的历史信任值由历史信任行为数组中的访问主体历史信任值元素与对应衰减系数积的和得到.式(4)为历史信任值的计算方法:

(4)

当历史信任数组被填满时,即访问主体访问次数达到信任值数组行数n的大小,由于越早的访问记录效力越低,数组将最靠前的x个元素进行加权平均,将均值存入数组首位,其余元素位置均向前移动x-1,作为访问主体历史信任凭证,如图4所示:

图4 历史信任行为数组

2.1.2 实时信任值

访问主体接入模型时,信任服务器通过读取访问主体日志、访问行为等信息得到属于访问主体的属性表,其中包含访问主体的各类信息.在计算访问主体信任值时,首先预处理访问主体属性表中的数据,将属性表中的标称属性值进行数值化.由于访问主体属性表中各属性的取值范围不同,取值较大的特征将会降低取值较小特征在计算过程中所起的作用.因此需要对数据进行归一化处理.将特征的取值转化为0~1区间内的值.f表示访问主体属性集中的基本元素——单个属性的值,fmin和fmax分别为属性的最小值和最大值.式(5)为属性值标准化计算方法:

(5)

对访问主体属性数据预处理后得到身份属性值fi,身份属性值组成集合F={f1,f2,…,fn},首先将身份属性集合分为l个类,l≤n,F≥F1∪F2∪…∪Fl,F1∩F2∩…∩Fl=∅,F1={f1,f2,…,fi},…,Fl={fj,fj+1,…,fn},1≤i

(6)

其中fk为集合Fi内第k个属性值,ak为fk这一指标相对应的权重.

求出l个信任分量z1,z2,…,zl后,对其求加权调和平均数.其中bi为集合Fi的权重.访问主体实时信任值的计算方法如式(7)所示:

(7)

2.1.3 惩罚与奖励机制

通过对访问主体访问行为进行审计,审计结果以惩罚值、奖励值的形式反映到信任值上.惩罚与奖励值TRD由惩罚值TD、奖励值TR这2部分组成.TRD的计算方法如式(8)所示:

(8)

惩罚值的计算由惩罚值基数g1、惩罚因子f1这2部分组成,TD=f1g1.模型对访问主体的违规行为进行分级,等级越高代表申请行为的危害越大,所得惩罚值基数越大.式(9)为根据访问主体的违规等级给出的惩罚值基数g1的计算方法:

(9)

其中R为非法操作等级总数,r为当前操作对应的非法等级.

式(10)为根据访问主体历史访问记录的惩罚因子f1的计算方法:

(10)

其中k1(t[n][m])为行为数组中最大的连续违规次数,τ为违规次数系数.

奖励值的计算由奖励值基数g2、奖励因子f2这2部分组成,TR=f2g2.式(11)为奖励值基数g2的计算方法,ξ为基础奖励系数:

(11)

式(12)给出奖励因子f2的计算方法:

(12)

其中k2(t[n][m])为行为数组中近期连续不违规的次数,d为预设连续不违规次数.

2.2 资源值

资源值N由资源服务器计算产生,它描述了资源在模型中的重要程度和敏感程度.资源值的大小反映了资源的价值,资源的价值难以量化,因其不仅取决于客观属性因素,也需采纳行业专家的意见,计算可采用基于一致矩阵的模糊层次分析法[6],通过层次分解模型和基于模糊数构建的各个证据间重要性的判断矩阵进行计算[7].

(13)

通过模糊一致性矩阵可以得到属性类中各属性的权重.通过对α个β阶矩阵中的r值进行计算,可获得属性的权重矩阵W=(ωij)α×β,计算方法如式(14)所示:

(14)

在权重矩阵W、属性矩阵E中属性值与其权重一一对应,以此计算相应的资源值N.

2.3 权限值

权限值S由权限服务器计算生成,它表示权限的重要程度,即在权限被滥用时对模型可能造成的危害程度.使用层次分析法来确定不同类型权限之间的相对重要程度,进而计算出每个权限的权重.首先将所有权限列出,将其分为数个大类,大类之后在各个大类中划分小类.使用计算资源值相同的算法进行计算,最终获得权限值S={S1,S2,…}.

访问主体进行非法访问时,模型会记录违规访问主体本次所申请的权限,若模型存在大量违规申请某项权限的记录,且数量达到一定阈值后,权限服务器将会更新这一权限的权限值.Vio为一段时间访问主体访问并申请Sx权限的违规次数,Nor为这段时间访问主体访问总量.新Sx值的计算方法如式(15)所示:

(15)

2.4 决策值

决策值是由决策服务器计算生成的,用以综合评估对特定资源的权限申请的安全性.通过资源值、权限值计算得到决策值P.σ,φ分别代表资源值、决策值系数,由于资源值、权限值同时增加会造成用户权限爆炸的问题,设定θ为爆炸系数.式(16)为决策值的计算方法:

P=(σN×φS)θ.

(16)

3 实验与分析

3.1 模型分析

对比传统的资源决策链式模型[9],假设资源决策点的数量为n,角色数量为m,链式模型对访问主体进行查找的时间复杂度为O(m+n);本文资源决策树模型下对访问主体进行查找的时间复杂度仅为O(m+lbn).此外,在文献[7]中不同角色的资源决策点的权限集合存在包含关系,导致访问主体在受到资源决策点授权时可能获得不必要的权限,违背了最小特权原则.

对比结合属性的RBAC模型[10-11],本文模型引入了资源值、权限值的量化计算,将资源划分为更小的单位,保证了资源授权访问的细粒度.在传统的信任值计算[5,7]中,单一属性值的极端情况往往对整体信任值的影响有限,导致访问控制模型对某些违规情况的检测不够敏感.对比其他通过计算信任值进行访问控制的模型,本文在计算信任值算法上作出改进,通过引入调和平均数的逻辑回归算法加强了单一信任属性对整体信任值数值的影响.

3.2 信任值计算

应用场景采取CIC-IDS-2017[12]数据集包含的属性,其中涵盖了多种网络攻击特征,其中包括源IP地址、源端口号、流持续时间等属性,将这些属性划分为基本网络属性、流量统计特征、计算机网络层次特征等大类,并将每一大类赋予相应的权重.

1) 实时信任值指标数量测试.

属性的个数会对访问主体实时信任值的计算产生影响,通常获取访问主体的信息越多对其信任值的计算也越准确,但有限的资源只允许通过有限的属性数量进行计算,因此需要量化属性个数与实时信任值关系.不同属性由于权重的不同导致信任增长速率的贡献不同,测试数据取属性值范围中间值.测试数据如图5所示,随着属性数量的增多,信任值的增长趋于平缓,最终趋于定值.

图5 实时信任值指标数量测试结果

2) 奖惩机制测试.

在信任值计算的实验中设置了Alice,Bob,Carol,Dave这4个用户,实时信任值设定为1,历史信任值数组大小为5,历史信任值数组x值为3.其中Alice为谨慎的合法用户,Bob为好奇的合法用户,Carol为谨慎的非法用户,Dave为好奇的非法用户.他们的访问记录为:NoteAlice={0,0,0,0,0,0,0},NoteBob={0,1,0,0,1,0,1},NoteCarol={0,1,1,0,0,3,2},NoteDave={1,2,3,4,5,5,5},集合中的数字代表访问主体每次的违规等级,实验结果如图6所示,算法较为敏感地反映了访问主体的各种行为,对于偶尔轻微的违规行为,模型记录在案并不进行严厉惩罚;对于明显的违规行为模型则会作出果断严厉的处罚,从而禁止访问主体的访问行为.

图6 奖惩机制测试结果

3) 历史信任值数组x值测试.

采用Carol的访问记录进行测试,历史信任值数组大小设置为5,测试结果如图7所示.根据结果可以得出,信任值数组x值增大到一定值时对信任值的影响趋于稳定,x值越小信任值对访问主体行为越敏感.

图7 历史信任值数组x值测试结果

4 结 语

本文给出一种基于角色和属性的零信任访问控制模型.设计了一种全新的身份管理树状模型,提高了对资源决策点检索速度,同时增加了资源划分的细粒度,在资源决策树的基础上,通过引入信任值、资源值、权限值的计算来精确访问控制能力,通过引入调和平均数强化了单一属性极端情况下对访问主体信任值的影响,通过资源值、权限值的计算保证了模型的最小权限原则,最终提高整个模型的安全性.

猜你喜欢
数组访问控制信任
JAVA稀疏矩阵算法
JAVA玩转数学之二维数组排序
表示信任
Excel数组公式在林业多条件求和中的应用
嘤嘤嘤,人与人的信任在哪里……
ONVIF的全新主张:一致性及最访问控制的Profile A
从生到死有多远
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现