电力物联网场景下基于零信任的分布式数据库细粒度访问控制

2021-06-04 06:55余若晨
信息安全研究 2021年6期
关键词:访问控制子集粒度

黄 杰 余若晨 毛 冬

1(东南大学网络空间安全学院 南京 211189) 2(网络通信与安全紫金山实验室 南京 211189) 3(江苏省计算机网络技术重点实验室 南京 211189) 4(国家电网浙江省电力有限公司信息通信分公司 杭州 310020)

随着泛在物联技术在电力系统物联管理平台中的应用,电力系统中电力生产、传输、消费等环节中的能量流、信息流、业务流将在传统电网物联架构中得到进一步整合[1],现有电力物联体系需要进行改进.未来电力物联体系结构中,云端分布式物联数据库向上承载了为电力基础设施、电力行业各机构及相关主管部门、用户以及供应商提供服务的电力物联应用,向下需要汇聚、集成、存储电力物联网感知层设备数据、边缘设备信息、电力用户信息、电力基础设施监测数据,称为电力物联网核心基础设施和重要资产.由于物联网数据中心建立于开放网络环境中,系统内部的用户、网络环境、数据流、应用流较为复杂,极易受到来自不同网络位置的恶意攻击,造成关键隐私数据泄露、服务异常终止等不良后果[2],因此,物联网数据中心需要应对日益增加的网络安全威胁.

零信任架构(zero trust architecture, ZTA)最早由John Kindervag提出,建立在传统网络边界信任体系逐渐失效的背景下,提倡打破单一网络边界的概念,对用户、设备和应用进行全面、动态访问控制.而美国国家标准与技术研究院(NIST)对零信任原则、架构中的逻辑组件、架构的部署场景进行了标准化描述[3].谷歌于2017年完成了零信任安全防护Beyond Corp项目,在分布式用户业务访问场景中应用零信任原则保护数据隐私,防止企业内渗透攻击.国际云安全联盟(CSA)在零信任的基础上提出软件定义边界网络安全模型,并于2019年发布软件定义边界标准规范1.0.工信部于2019年9月在《关于促进网络安全产业发展的指导意见》中将“零信任安全”列入网络安全亟需重点突破的关键技术.

根据零信任原则,系统的内部网络和外部网络所有实体被认为不可信,任何主体对系统内资源客体的任意一次连接或访问都需要通过动态的、基于实时属性的认证和授权.但传统安全防护系统的访问控制难以满足“内网一切实体不可信”的假定,因此需要对架构内资源建立持续的、细粒度的访问控制模型,以此实现对资源访问的最小化授权.

泛在电力物联网数据中心提供数据存储服务时,多数存储业务请求来自于企业或相关机构的内网用户或内部服务器,这些内部应用或服务器的安全防御策略难以统一,一些基础软硬件设施较为陈旧[4],因此传统边界防御政策难以抵御来自内部用户的越权、非法访问等,也无法控制网络安全攻击造成的负面影响在企业内网中扩散.NIST提出的零信任基本原则适用于上述场景,数据中心中部署零信任架构,能够有效提高数据中心对系统内恶意节点横向移动以及网络渗透攻击的防御能力.

1 电力物联网DDB的零信任防护架构

1.1 电力物联网分布式数据中心安全风险分析

本文讨论的物联网分布式数据库(distributed database, DDB)处于泛在电力物联网体系结构的数据层,基于电力能源网全业务数据,对应用层应用提供数据存储、数据读写与备份、数据分析、数据融合、数据发掘等服务[5].

如图1所示,数据来源包括物联网中汇聚层和应用层.汇聚层的数据主要是能源网中感知层终端设备(传感器、智能配变电终端、设备状态监测传感器、设备环境感知器)在发电、输电、变电、配电、用电中产生的能源数据,此类数据需要通过接入层、网络层、汇聚层,经过标准化后接入平台并上传至云端的分布式数据库.消费数据的上层应用包括电力内部企业中运行的能源基础设施监测、计量、配电、变电系统;在用户侧运行的电力消费计费、楼宇能量管理系统;电力主管部门应用;电力合作部门.

图1 电力物联网分布式数据库网络环境

数据层数据中心的网络连接包括:汇聚层通过接入网接入、数据层内部数据分析、数据中台的数据访问请求接入、企业应用层通过业务网进行数据流和控制流接入.零信任架构假定接入网和业务网可信,对接入的资源访问请求进行控制,因此,系统需要动态、实时、多维度地获取资源访问请求相关的信息[6],以实现细粒度资源访问控制.

在业务统一数据中心部署零信任安全防护架构需要对数据中心内部安全风险较大的资源,即重要资产进行评估[2],因此应对数据中心网络安全风险的途径包括数据层数据的安全管理以及应用层与数据层数据中心之间的安全交互;数据层数据中心需要根据感知层产生的边缘数据标签进行分类,严格控制内网用户、应用、服务对敏感数据的访问权限,遵循最小权限原则[7].

在现行电力物联体系中数据中心为一组分布式数据库服务器集群.数据库服务器集群包括若干计算能力与存储容量不同的存储节点,通过基于Paxos,Raft等一致性协议完成数据同步,各节点均能接收、处理用户发出的数据读写请求并给出反馈,以此提高整个数据库集群的并发请求处理能力.服务器中运行的数据库系统为NoSQL数据库,相较于传统SQL关系型数据库,具备更好的水平扩展和迁移能力,原生具备承载大数据分析和数据挖掘应用的能力.数据节点之间通过远程进程调用(remote procedure call, RPC)进行实时数据同步,传统分布式数据库系统中通过预设密钥分发完成节点间互信和认证[8],在零信任思想下存在集群内部渗透攻击的风险.

1.2 零信任模型部署

将零信任架构应用于分布式数据中心的动机是利用ZTA组件作为数据资源的前置边界,以实现有效的资源访问控制[3].图2所示为基于以上思路的零信任组件部署方式.

策略执行点(policy enforcement points, PEP)作为资源访问主客体之间的媒介组件存在,在本文场景中,访问主体(用户、应用)与PEP建立一个C/S(client/server)连接,PEP通过代理网关的形式收集访问主体的数据资源访问请求,并交付给策略管理器(policy administer, PA)进行处理.

PA根据策略引擎(policy engine, PE)中的策略判决结果来决定是否允许访问主体的资源连接请求.PA首先接收PEP处发生的访问请求,将其转发至PE,收到策略判决通过消息后为访问主体生成身份认证令牌,授权其对数据资源的访问行为.

PE以数据访问请求信息作为初始输入,并根据初始输入,在组件连接的周边信息源中获取信任判决输入信息、网络安全态势感知情报等,结合访问控制策略库进行动态评估与访问控制策略判决,最终输出授权或拒绝访问请求的决定,交付给PA.

图2 零信任架构组件的部署方式

图2中的零信任组件部署方式,将PEP作为资源访问代理,数据资源只能通过PEP处的代理网关对外交互,能够有效屏蔽内部数据资源,同时ZTA组件能够与内部数据资源松耦合,不影响系统功能.

1.3 电力物联网DDB零信任架构设计

图3所示为ZTA在分布式数据库中的基本部署方式,遵循NIST对ZTA架构逻辑组件的描述,将任意一个分布式数据库服务器的网关与代理网关相连,代理网关运行在独立的安全服务器上.

图3 分布式数据库ZTA安全防护方案设计

根据1.1节对电力物联网场景的描述,数据访问主体包括企业应用或服务、感知层数据输入与分布式存储集群中其他对等节点.任意一个访问主体在发出数据资源访问请求时,需提供全局唯一的用户标识、服务标识或设备标识.

图4 基于ZTA的细粒度访问控制模型

访问请求以业务流或数据流的形式到达策略执行点PEP,PEP进程首先基于请求主体发出的数字证书或者基于设备指纹库进行身份认证,数字证书和密钥签发由PKI完成.通过认证后,将资源访问请求进行归一化描述,然后转发至PA,并最终到达PE所在的判决平面.

判决平面中的组件包括网络安全情报库(来自外部源),用户、应用、服务数据库,数据访问日志,电力基础设施/设备信息库,策略数据库,信任评估引擎等.PE基于访问客体和判决平面组件进行策略判决,并向PA反馈是否允许访问.PE将访问判决结果写入数据资源访问日志,用于后续基于上下文的动态信任评估.

PEP在收到PA授权后,将解析后的数据库访问请求发送至数据平面,获取数据内容后转发至访问主体,以此完成数据访问流程.

2 基于零信任的细粒度访问控制

2.1 细粒度资源访问控制模型概述

基于属性的访问控制模型[9]利用不同的属性权威将接收的原始访问请求定义为基于属性的访问请求,以此描述访问请求的主体、资源、动作和环境.零信任架构中对数据资源的访问控制模型建立在策略引擎和策略执行点的协同工作基础上,即策略执行点通过访问代理获取访问请求中的相关静态属性,策略引擎基于本地信息源进行部分属性的动态信任判决,汇聚为访问请求与策略集进行比对,以决定访问允许或拒绝.

图4描述的访问控制策略模型基于零信任访问控制组件.访问主体以部署在数据资源前端的ZTA控制组件作为访问媒介,因此需要向PEP处的代理提供主体属性集合.PE在获取到PEP经由PA发送的主体属性与动作属性后,在数据库中获取对应数据资源属性集合与环境属性集合,生成1条访问属性元组(access attribute tuple, AAT)后,在本地的策略库进行访问策略的评估.

2.2 ZTA的资源访问策略形式化描述

1) 主体属性集合.主体属性Subjects={s_kAttr1,s_kAttr2,…,s_kAttrm,s_uAttr1,s_uAttr2,…,s_uAttrn}.Subjects集合规范描述了当前访问主体的状态.属性被标记为s_kAttr,表示策略库在本地存储了该属性的取值范围(domain),常见的包括用户/组数据、服务数据库、设备信息等等;类似网络位置、访问全局时间戳等则被标记为s_uAttr.

2)动作属性集合.Acts={update,delete, create, retrieve},描述了对数据资源动作.

3)环境属性集合.Environments={E_value1,E_value2,…,E_valuen}.环境属性集合包括对当前ZTA组件后系统的网络环境安全的信任评估结果,多个E_value表示基于不同因素的评估,例如外部安全威胁情报评估、日志审计评估、分布式数据库集群健壮性评估.

4)资源属性集合.Resources={R_Attr1,R_Attr2,…,R_Attrm,SecurityLevel}.本文中数据资源属性为某行数据所在的服务器、数据库、数据表等访问控制粒度,以及该行数据在零信任部署时的指定安全级别.

5)访问属性元组的描述形式由一组动作、主体、环境属性子集以及资源属性头组合而成.如表1所示,一个属性子集由访问请求抽象获得,并基于原始访问请求对相应的属性子集进行实例化(在策略引擎中对属性变量进行赋值),最后与资源属性集合R_A连接.因此AAT的形式化描述为AAT:R_A←{sub,act,env}.

表1 访问属性元组的形式化描述

6)访问策略(policy)由资源属性集合进行主要标识,并为某一资源属性集合的多条策略维护全局唯一、自增的序列号.其形式化描述为Policy:R_A(ID)←D(ψ){sub,act,env}.其中,ψ表示对单个属性的限制,D(ψ)为属性子集的限制集合.访问策略通过对给定AAT施加限制集进行访问控制.

7)访问策略的评估.访问策略评估被形式化描述为Policy→{deny,permission}.AAT通过资源属性集合在访问策略库中定位对应资源的策略集合,并通过动作、环境、主体的优先级将属性子集与策略集合按限制集依次进行关系匹配[10].访问策略的匹配需要当前AAT的属性落在D(ψ)的每一个对应限制域中.若当前策略子集遍历完成后,AAT未能实现与某条访问策略的匹配,PE向PA返回授权拒绝(deny),反之则返回授权通过(permission).

2.3 ZTA的信任计算方法

分布式数据库系统作为一个可动态水平拓展的分布式系统,在开放网络环境下需要处理来自不同主体的访问请求,因此在主体、动作、环境属性集中加入基于对动态信任评估的量化属性能提高资源访问控制的有效性[11].

1) 主体静态属性信任.ZTA收集访问主体的身份信息、主体的网络位置、主体的设备类型、主体的网络接入方式[12]等静态信息,根据企业配置进行量化、加权求和之后获取主体静态属性信任值,表示对当前访问主体所处状态的信任度[13].

2) 主体上下文属性信任.ZTA获取主体到当前数据资源的交互历史,作为行为证据进行信任计算.上下文特征行为包括:平均网络延时、用户失败访问请求计数、用户违规数据库访问指令输入统计、用户服务异常终止历史、用户IP丢包率、用户连接建立成功率、用户IP响应时间等等,进行加权计算后得到上下文属性信任值.上下文属性信任计算综合近期信任与信任更新的思想[14-15],能够表征对主体一段时间内的状态的信任度.

3) 动作属性信任.该信任值表征对某一资源是否存在异常动作.以动作属性集{update,delete,insert}为例,以某一资源的动作日志作为数据源,利用统计学习方法或自相关性分析,将针对当前资源的系列动作进行二分类,判定是否为异常动作,并量化为信任值,用于策略评估.

4) 环境属性信任.结合CVE,ATT&CK等外围网络安全情报信息库,评估电力物联网内应用、设备、操作系统是否存在漏洞,并维护物联网内设备的安全评级信息库进行对环境属性的信任计算.一个可行的例子是根据网络安全攻击高发时段对单日时段进行切分,取得当前访问请求发生时间的环境属性信任度.

3 ZTA访问控制性能优化

3.1 多粒度访问控制策略匹配效率优化

3.1.1 多级控制粒度

一个典型的资源属性全集形式R_A={集群ID,服务器ID, 数据库名,表名,主键,安全级别}.对资源属性全集进行实例化,对数据的访问控制粒度将细化到关系型数据库中由主键标识的元组.海量数据场景中,ZTA网关响应一条数据访问请求在细粒度访问控制下需要承受从请求解析到动态信任评估、数据库查询、策略生成、策略匹配、授权等串行程序带来的延时,这将会严重影响数据库系统整体的服务质量,难以满足现实要求.引入不同资源控制粒度的方式是允许访问控制策略围绕一条资源属性子集描述[16].

表2给出了3种控制粒度的资源属性子集的示例,通过提高控制粒度降低策略集的复杂度,一方面能够减少对部分非敏感资源进行不必要的安全防护带来的系统资源开销,另一方面能够实现资源访问控制精准化.

表2 多级粒度的资源属性集合形式化描述

3.1.2 树状多粒度访问控制策略集

由于在多粒度的资源访问控制模型下可将访问策略集合组织为树状结构,如图5所示,树中节点处搭载从属于当前资源的访问策略子集.由上而下访问控制粒度逐级变细,1对父子节点中的资源变量在数据库逻辑上也具备直接的从属关系.

图5 多粒度访问控制策略的树状组织与匹配方式

对树状策略集从根节点开始匹配,在某一节点处若当前AAT和当前节点内的策略集中某条对应,且满足限制域,则视为匹配成功;若没有匹配成功,则在树中寻找下一个粒度的资源节点,直至匹配成功,或寻址到最细资源粒度(叶子节点)且匹配失败.

3.1.3 多粒度访问控制策略优化验证

本节讨论树状访问控制策略集与有聚类的线性策略集在访问控制策略匹配速度上的性能差异.有聚类的线性策略集中,归属于同一条资源访问子集的策略顺序存储,可认为2种策略集组织方式在给定资源访问子集下进行策略匹配的时间相等,匹配开销的差异取决于对资源属性子集的定位.易知在线性组织下,资源属性子集的定位时间复杂度为O(n).

1条随机资源属性子集在树状访问控制策略集中进行匹配的时间开销推导如下:

1) 1次未命中匹配表示资源属性子集迭代到当前资源粒度节点时无法匹配.

2) 假设某一粒度下对应的子资源数量为R,比如1个Cluster下有R个Server等,考虑由N个随机资源属性子集构造的树状访问控制策略集中1个未命中查找所需的平均节点数量.

3) 所有N个属性子集与1个随机的需要匹配的子集的前t个资源粒度至少有1个粒度不匹配的概率为(1-R-t)N,则一次匹配操作至少需要比较t个粒度的概率为1-(1-R-t)N.

4)匹配的平均成本为

1-(1-R-1)N+1-(1-R-2)N+…+

1-(1-R-t)N+….

5)进行指数近似,匹配的平均成本的近似函数为

1-(1-e-N/R1)+1-(1-e-N/R2)+…+

(1-e-N/Rt)+….

当Rt≪N时,相对应的约logRN项的值接近于1,当Rt≫N时,所对应的所有项的值均接近0,当Rt≈N时,对应项总和约为logRN,即树状策略集下平均资源子集定位时间复杂度约为O(logRN),能够改善平均策略匹配效率.

采取仿真实验验证树状策略匹配方式的优化.实验用CPU为Intel i7-7700HQ,模拟生成策略集,树内单节点平均子节点树设为25,树最大高度(策略最大长度)为30,策略集规模设置为2万条到24万条,模拟策略集在排序后线性搜索匹配与在树状策略集中匹配2种情况.如图6所示,在多粒度访问控制策略下,进行线性扫描的时间开销随策略集规模的增长呈指数趋势,树状策略集方法进行策略匹配的速度具备显著优化,匹配用时在测试数据集规模下能减少97%以上,但该方法为离线匹配方法,在构建策略集与更新策略时需要考虑预处理开销.

图6 多粒度线性策略匹配与树状策略匹配开销对比

3.2 访问权限的扩展

第2节中访问控制基于零信任思想,不信任一切访问主体,对每一次资源访问请求进行评估授权.在实际ZTA部署中,可通过扩展单次访问控制判决后授予的权限来保证系统业务响应能力.

一种权限扩展的方式是信任企业内物理安全主体,并以身份认证的方式提高单次授权的有效期.比如在分布式数据库集群中,对等存储节点间的数据一致性通信可以在访问授权通过后返回一个基于非对称加密的具备生命期的身份令牌,在令牌生命周期内同一主体能够利用身份令牌绕过ZTA直接访问本地数据资源[16].

另一种权限拓展的方式是扩充访问判决评估的结果集.可基于动态信任评估的时效性与信任衰落曲线,在当前结果集{permission,deny}的基础上增加授权有效时间戳,在时间戳失效之前,ZTA在策略执行点处能够直接基于评估结果缓存来决定允许数据访问或直接拒绝访问[17].

4 结束语

本文针对电力物联网场景中数据层的数据安全问题,提出了一种基于零信任的细粒度访问控制模型并进行形式化描述.基于该模型能够开发对应的服务化组件,保护数据层任意一个网络资源实体,实现细粒度的资源访问控制.在此基础上,介绍了基于ZTA的访问控制组件在电力物联网中一种可行部署方式.根据ZTA思想,在资源访问控制模型中引入了动态评估方法,讨论如何进行动态的、上下文的访问主客体间信任评估方式,并将评估结果用于访问控制策略模型.在引入多种资源访问控制粒度后,提出了树状访问控制策略集的组织与匹配方法,通过理论推导与仿真实验验证该方法对访问控制判决效率的优化.最后根据权限扩充的方法,提出现实场景中细粒度访问控制模型的效率优化方式.

猜你喜欢
访问控制子集粒度
拓扑空间中紧致子集的性质研究
粉末粒度对纯Re坯显微组织与力学性能的影响
关于奇数阶二元子集的分离序列
完全二部图K6,n(6≤n≤38)的点可区别E-全染色
ONVIF的全新主张:一致性及最访问控制的Profile A
基于粒度矩阵的程度多粒度粗糙集粒度约简
动态自适应访问控制模型
双粒度混合烧结矿颗粒填充床压降实验
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现