引入内生安全的零信任模型

2022-08-18 03:51郭军利许明洋原浩宇曾俊杰张建辉
郑州大学学报(理学版) 2022年6期
关键词:内生异构组件

郭军利, 许明洋, 原浩宇, 曾俊杰, 张建辉

(1.郑州大学 中原网络安全研究院 河南 郑州 450002; 2.郑州大学 网络空间安全学院 河南 郑州 450002; 3.国家数字交换系统工程技术中心 河南 郑州 450002)

0 引言

零信任网络安全被引入安全领域来解决虚拟专用网络存在的问题。针对基于传统理论构建起来的安全边界,零信任理论[1]认为不应该相信内部网络的实时安全性,认为在企业内部网络中身份的信任需要被重新判定,提出舍弃基于位置的安全评估策略,要求“从来不信任,一直要验证”,需要实时根据“信任评分”来进行信任评估,从而进行访问控制授权。目前已有多种不同实现方法的零信任实施方案。与已具体落地方案相比,引入内生安全理念的零信任模型更具有广义鲁棒性,能够增益原有零信任模型的安全普适性和内生健壮性。

1 零信任介绍

1.1 零信任的概念

区别于传统网络边界安全架构,零信任安全模型要求每次授权操作前都要进行身份认证,从而微分控制用户权限,达到控制内部网络的效果。边界安全模型的根本缺陷是缺乏全局性防护和安全策略,零信任安全模型针对这一问题,要求无论是何种身份的用户,每次进行操作前都要进行身份权责验证,从而获取此次请求所需要的权限。“以身份为基础、以资源为核心、持续信任评估、动态访问控制”是零信任安全模型所具有的特点。如图1所示,零信任安全模型架构[2]的核心组件包括网络代理、策略执行组件(PEP)、策略引擎、信任引擎、数据存储系统[3]。

图1 零信任基本框架Figure 1 Zero trust basic framework

1.2 零信任实施方案存在的问题

目前已经有很多零信任安全架构的实施方案,主要基于两种思路,一种是按照策略执行组件、策略引擎、信任引擎、数据存储系统等架构进行零信任安全模型构建,如远程办公系统安全模型[4]就是基于策略引擎进行一系列安全组件构建的方法。还有一种思路是基于软件定义边界(software defined perimeter,SDP)的组件SDP客户端、SDP网关、SDP控制器进行构建[5-6]。这两种思路都是对控制中心构建零信任安全模型,虽然能够起到集成控制、限制授权的作用,但是缺少了内生安全的考虑。如恶意攻击人员利用高级可持续威胁(advanced persistent threat,APT)攻击,定向持续地对SDP控制器或者策略引擎发起访问授权请求,就可能暴露出控制中心本身存在的问题,或者利用系统软硬件本身存在的漏洞、后门,从而导致系统被恶意攻破,造成零信任安全访问体系的破坏。因此,将网络内生安全引入零信任安全架构,能够很好地增益零信任架构的广义鲁棒性,从而达到安全模型的健壮性目标,提升安全等级。

2 内生安全体系

基于网络空间中的未知漏洞和预留后门所带来的危害,以及软硬件设计过程中可能存在的缺陷问题,需要考虑在不可信的开放式供应链条件下,构造一个安全可信的网络安全环境。网络空间拟态防御的内生安全理念[7],就是在执行体功能等价的前提下,以提供运行环境的动态性、随机性、多样性和系统性为目的,将动态异构冗余运用在网络架构、关键设备、协议体系等方面,从而实现在不可控的“有毒带菌”的运行环境中,搭建出自主可控、安全可信的信息系统。目前已有多种实施方案,将内生安全体系结构运用在基础设施方面,例如拟态构造路由器、拟态构造Web服务器等,增益了原有系统的内生安全。

内生安全架构中的动态异构冗余(dynamic heterogeneous redundancy,DHR)架构[8]通过系统输入代理和多模裁决表决器组成的“拟态括号”,可以有效地将模型内、外结构分隔开,其括号两边在逻辑和空间上是独立存在的,因此能够保持系统内生的独立性。

使用具有相异构造的异构冗余执行体作为执行体集,能够有效避免单个软件设计存在的缺陷和硬件组成的漏洞、后门问题,同时由于引入的随机策略调度为安全体系引入了动态随机的防御效果增益,从而增加了攻击链的不确定性,有效避免了APT攻击的持续性危害。通过多模表决器进行输出判定,使得多模块裁决判定机制中的单次逃逸难度极大增加,降低了持续逃逸的可能。

内生安全体系具有动态性、随机性、异构性和多样性等特点,能够有效增加攻击者贯穿安全防护界面的难度,容忍在“有毒带菌”的环境下完成安全防护策略的搭建,获得安全内生增益,使系统具有更高的可靠性和鲁棒性。

3 基于内生安全的零信任模型

内生安全理念具有增益原系统广义鲁棒性和灵活可变性的特点[9],通过移动攻击空间(MAS)、DHR以及输入指配与多模裁决机制,对系统进行内部改造,从而达到安全防御目标。对于目前已实施的零信任方案来说,还缺乏内生安全的考虑,一旦内部策略引擎被攻破或者策略数据库泄露,零信任安全架构就会失去作用。零信任网络中身份信息数据库或策略引擎中的未知漏洞、后门一旦被攻击者成功利用,则无安全可言[10]。所以将内生安全引入零信任架构中,通过策略引擎多样化和在信任评估数据库中加入内生安全模块,从而使零信任系统获得内生安全的独特效果增益,规避内部漏洞带来的风险。

3.1 零信任模型的内生安全改造

基于拟态防御DHR架构和内生安全体系,可以对零信任安全架构进行拟态化构造改进,使零信任安全架构获取系统架构内生机理支撑的主动防御属性,规避外部攻击和内部漏洞带来的风险。零信任中心内生安全架构如图2所示。

图2 基于内生安全改造的零信任模型Figure 2 Zero-trust model based on endogenous security transformation

3.1.1运行机理 由不同的标准化的软硬件模块组合出的多种功能等价的异构策略执行组件,作为底层信息流处理关口的第一层,服务于上层调度层。拟态组件运维层控制异构组件调度层来进行异构组件的选取,其中调度策略的选择由运维层的拟态调度器模块决定,根据用户身份信息和系统情况选择适合的调度策略。由运维层的输入指配模块接收授权请求,将其复制n份分别与选择好的策略引擎进行交互,完成授权的认定,输出指配模块将各个输出进行集合,然后一起传入多模策略裁决器模块进行一致性裁决,从而获得此次服务的授权决策。在单策略引擎的信任评估模式中,存在评分度量单一以及信任累积等问题,通过采用不同策略和不同语言编写组成的策略引擎组进行选择服务,可以有效地避免此类问题。对于异构执行体的执行情况,由运维层的负反馈控制模块控制,根据多模裁决器提供的组件反馈信息,依据系统当前情况对异构组件进行替换和下线,重新选择新的组件替换下线组件,同时对已下线组件进行数据清洗和置信度清洗,定期进行执行体集合的轮换,保持系统的动态性。具体流程如图3所示。

图3 系统流程图Figure 3 System flow chart

3.1.2异构策略执行组件层 策略执行组件用于和策略引擎交互并完成授权决策,将授权决策结果强制执行,在逻辑上处于零信任安全中心的授权信息流第一道关口,实际应用中选择代理服务器充当策略执行组件的角色,负责拦截发往服务器的客户端请求,调用策略引擎进行授权决策。

构成方面,操作系统可以选择Windows、CentOS、Ubuntu、Debian等完成组件系统的选择和搭建。在处理器方面,包括Intel、AMD、IBM和Cyrix等不同的处理器作为异构策略执行组件的底端组件进行构建。编译器方面可以选择GCC、Clang、Microsoft Visual C++、Eclipse、Netbean、Pycharm等,在编译生成程序的时候进行多样性编译器的选择,可以产生动态性的效果。

3.1.3异构组件调度层 通过和上一层的拟态组件运维层进行交互,根据拟态调度模块所产生的调度需求和策略,进行异构策略执行组件的选取,将选择组件从待调度队列调整到服务集队列,然后等待输入支配模块的输入请求。

在进行异构策略执行组件的选取时,要考虑根据不同的请求情况实施不同的调度策略。可以通过选择相异距离最大的组件来构成相异性服务系统[11],也可以选择相异距离近似的组件构成相异性系统[12]。基于不同的零信任调度场景,应该合理选择不同的、适配的调度方案[12-13]。本文采用基于异构度的执行体调度算法(executable body scheduling based on heterogeneity,EBSH),将异构执行组件的各相似程度考虑在内,从而综合制定每次轮换的调度集合。

3.1.4拟态组件运维层 运维层是零信任安全中心内生安全架构中的关键层。拟态组件运维层包括输入/输出指配模块、拟态调度器模块、多模裁决器模块以及负反馈控制模块。通过与下层异构组件层的交互获取反馈信息,结合多样化策略引擎模块以及信任评估数据库层所提供的历史信息,产生一致性输出至多模裁决器,进行共模判决输出。

1) 输入/输出指配模块 当授权请求发起后,根据用户个人的历史信誉度评判表进行评估。根据拟态调度器模块传入的信誉度选择异构策略执行组件的余度数n,然后输入指配分发器将请求复制n份,分别发送给待响应的异构组件服务集队列,输出指配收集器将各个异构组件的输出进行集合,将其发送给多模裁决器作为进行裁决时的信息依据。

2) 拟态调度器模块 实现异构策略执行组件的调度,根据当前请求的情况,决定实施何种调度方案。在请求用户切换的时候,进行策略调度方法的更换,选择所需要服务的执行体集,制定下线执行体的置信度清洗策略,根据接收到的负反馈控制模块的返回信息,及时调整个体执行体的替换和下线。

3) 多模裁决器模块 接收来自异构组件调度层所选择的服务集队列产生的响应结果,采用基于零信任组件安全系数的判决原则来进行一致性判决。若通过判决,则根据风险与信任评估模块产生的信任评分,评判此次请求主体的置信程度和潜在行为风险,从而选择相应评估权重的策略引擎进行授权服务。

4) 负反馈控制模块 接收异构组件调度层和执行组件异构层的反馈信息,进行执行体的更换、清洗和下线工作。控制调度器模块,在没有发现异常组件时,定期进行执行体集合轮换,增加系统的长期安全性。

3.1.5多样化策略引擎层 策略引擎接收来自策略执行组件的请求,根据预先制定好的策略对比,决定此次请求是否被允许,之后将授权结果返回给策略执行组件,并强制执行授权服务结果。在零信任内生安全架构中,由多模裁决器模块根据信任评估模块的历史信任度信息,确保在评定了用户信任等级之后选择权重适合的策略引擎,执行本次请求的授权相关服务,同时保证最小授权原则,即维持请求用户只拥有完成此次服务所必需的最小权限集合。多样化的策略引擎系统,主要是由策略引擎的三种不同构造机制所决定的。

1) 对于相同类型的请求授权行为制定不同的评分权重机制。

2) 对于不同类型的请求授权行为制定不同的评分权重机制。

3) 建立策略引擎的语法不同。

3.1.6风险与信任评估层 风险与信任评估是对特定的网络请求或活动进行风险分析的系统组件,其主要功能是对非量化的行为或特征进行量化分析,得到确定的信任评估数值,策略引擎基于这个信任评估数值进行授权决策。

风险与信任评估的参考信息主要来源于用户历史数据、设备操作数据、访问行为数据等,通过访问历史信息数据库进行综合评估,得出信任评估参数。在零信任模型内生安全架构中,对于查询数据库的用户请求,采用指令集随机化技术,通过给不同信任度的用户分配不同的随机化字段,来实现SQL注入判定,对系统数据库起到安全保护。对于风险评估和信任评估来说,除了根据历史数据制定静态的信任评估规则,还要结合机器学习技术及大数据分析等来实现信任的动态评分机制,将静态分析和动态评估结合起来[14],能够起到更好的效果。信任评分所依赖的因素往往具有一定的模糊性,但正是这种模糊性起到了重要作用。在这种机制下,授权策略的制定不仅基于确定的策略,还基于不断变化的情况度量,引入了动态性的考虑,为系统防御未知的威胁提供了一种方法。

4 模型安全性分析

4.1 安全性分析

4.1.1前提假设 对引入内生安全的零信任模型的异构组成、系统安全、内生增益进行分析,提出以下前提和假设。

前提1从执行体构成硬件来看,在设计时按照功能等价原则设计和制作n种不同的硬部件组成,并且在n个异构执行体上运行功能等价但结构或算法完全不同的软件版本。

前提2功能等价的异构执行体,在设计时会存在软硬件设计或者制作工艺导致的随机故障和后门,这些漏洞后门具有随机性。

前提3对于输入队列中的异构组件组成元素,各功能空间存在交集,在正常情况下具有预期可靠性的输出,交集之外的“暗功能”输出具有不确定性,这种不确定性是内生的。

前提4系统的输入与输出是一一对应的,若攻击成功,必然导致相应执行体输出异常。

前提5多模裁决器模块执行一致性或k/n裁决,系统在每个动态变化周期结束后及时对各下线执行体进行调度和清洗。

假设1使用同一个请求授权输入序列,能够得到相对应的决策输出序列。

假设2当n个执行体的输出完全相同时,任一执行体的输出都是可信的。当n个执行体的输出不完全相同时,输出相同的大多数执行体是可信的。当n个执行体的输出各不相同的时候,说明没有可信的输出执行体。

假设3攻击者对系统进行攻击时,攻击链必须依赖目标系统的静态性、确定性和相似性,并且攻击事件是相互独立的,在每个动态调度变化周期内针对同一漏洞或后门发起攻击。

假设4为便于分析,不考虑输入代理和表决器受攻击的情况,对于“拟态括号”受攻击的情形不进行分析假设。

4.1.2相关定义 对基于内生安全的零信任模型进行建模分析,从系统的执行体被攻破概率、攻破执行体所需要的信息、系统失效概率、异构体安全系数以及安全增益入手,对系统的安全性进行分析,在此基础上,定义1~5。

定义1攻破系统所需要的信息 攻击者在攻击系统时,在攻击链扫描、探测和漏洞挖掘。在基于内生安全的零信任安全模型中,攻击者所要收集的系统信息Infos为

Infos=∑(Ai+Aj+…+Ak),

其中:{A1,A2,…,An}表示攻破执行体所需要的信息;k表示多模裁决中输出一致的个数。在DHR模型中,引入了功能等价的异构执行体的方法,所以对攻击者而言,攻击系统所要掌握的信息呈线性增长。对于不同的异构体,其构造和运行的软件相异性很大,因此需要将所有服务集中的异构体信息全部收集,这样才能综合获得系统的整体信息。

定义2异构体的安全系数 基于内生安全的零信任模型系统中的异构执行体,其硬件由于在设计和制作过程中会存在随机漏洞,而基于该系统运行的软件,也不可避免存在恶意后门等问题。对于异构体的安全性使用安全系数这一指标进行衡量,

其中:Δsecurityi表示编号为i的异构执行体;αi表示编号为i的异构执行体中的各组件漏洞向量;n表示系统调度服务的执行体个数。其中漏洞向量由各模块的漏洞情况组成,通过通用漏洞披露(common vulnerabilities & exposures,CVE)中的各漏洞信息,来制定漏洞向量。通用漏洞评分系统将各漏洞评分范围限制在0.0到10.0之间,数值越大代表漏洞越严重。通过计算不同模块之间的相关系数,来作为评判安全系数的参数。

定义3执行体被攻破的概率 当攻击者收集到系统的足够信息之后,就会对执行体发起攻击,破坏异构执行体,在基于内生安全的零信任安全模型中,每一个异构策略执行组件都存在被攻破的概率风险,其单点被攻破的概率可表示为

式中:Pheteti表示编号为i的异构策略执行组件被攻破的概率;m表示系统总异构体数量。使用失效率为λ的指数分布来描述系统失效率。随着攻击时间t的增加,当攻击者对系统收集足够的信息,系统被攻击者攻破的概率趋近1。同时考虑到每个异构策略执行组件间的相异性,引入安全系数来表达相异性,从而更好地描述系统被攻破的概率。

定义4系统失效的概率 对于采用了DHR架构的内生安全系统整体而言,系统被攻破是指攻击者破坏当前请求授权的策略异构执行体,导致在多模裁决时,产生超过指定个数错误的异构执行体提交授权请求,从而欺骗过判决器,导致系统被攻破。基于定义3中的单个执行体被攻破的概率,可以得出DHR系统被攻破的概率(Psystem),

定义5内生安全增益 引入内生安全的零信任安全架构,将DHR作为系统基本架构,使用多异构策略执行组件来组成每次授权请求的服务集,并且结合多模响应裁决的方法,使恶意攻击者对系统的攻击变得更加困难。未引入DHR的系统仅单个服务体被攻破就会造成系统的损害。而引入多模异构使系统具有动态性、随机性和难以探测的特点,为系统引入了内生安全增益,

其中:θsecurity表示引入DHR后的安全增益。

4.2 动态性分析

在内生安全体系里,通过实现异构体选择的动态调度和异构体输出的动态裁决,以及定期更新、清洗服务集中的上线异构体执行组件,为整个系统带来了动态性的内生增益。通过适用不同的比较判决策略、改变系统软件的安全性配置、在调度策略中引入异构度、执行体服务集轮换和清洗,引入信任度的动态策略,实现系统的动态控制。从攻击链来看[15],由于系统长期处于一种不断变化的状态,增加了攻击链的不确定性,同时引入动态裁决机制,增加了多模裁决逃逸的难度,通过定时调度和清洗的策略,阻隔某后门异构体的漏洞。

4.2.1异构体调度 基于内生安全的零信任架构模型中,通过底层组件的异构化组成,构建功能等价且异构的策略执行组件,实现了零信任架构模型中空间维度上的异构性。通过异构性组件使得系统对攻击的反馈信息处于一种变化的状态,扰乱了攻击者的判断,由此起到了防护系统的作用。通过异构策略执行组件的动态调度,实现零信任安全模型时间维度上的动态性,同时动态性也在空间维度上增大了系统的异构化程度,增加系统独特的内生安全增益。

算法1基于异构度的执行体调度算法

FSList={}

SList={}

HisList={}

for each PEP heteriin system

if heteriin HisList

FSList.add(heteri)

else

SList.add(heteri)

end if

end for

Heterogeneitylist HList={}

if(HList.isempty())

HList.add(corr(αi,αj))

HList.sort()

Serveval=HList.count()

when Request for Authority is true

for(i=1;i≤heterval;i++)

heter={}.add(FSList(HList(Serveval-i)))

SList.add(heter(i))

end for

if Authorization is true

HisList=SList

SList.clear()

end if

FSList作为待调度队列,存储系统中当前可以调度的异构策略执行体组件编号。SList作为调度优先(服务集)队列,记录当前对授权请求的服务集合。HisList记录当前时间片之前进行过异构体上线的异构体编号,方便进行轮换和清洗。基于异构度的执行体调度算法,采用HList存储各异构体之间的异构度。算法执行时,首先判断各PEP异构组件是否被调度过,如果被调度过,将其放入待调度队列,等待清洗之后再进行服务,未调度过的异构组件被设定为服务组件。然后计算各异构执行组件的相关系数,将其存入异构度列表HList中,并将其排序。当系统接收到网络代理发送来的授权请求时,从当前异构度列表中取出相异程度最大的PEP执行组件作为此次服务集,授权请求处理完毕后,完成清洗和下线工作。

4.2.2动态裁决 在基于内生安全的零信任架构中,不存在完全同构的组件情况,所以在部分同构的情况下,裁决算法的选择就十分重要。考虑到异构策略执行组件之间的相异程度,通过比较判别安全系数来制定当前请求服务的裁决算法。

算法2基于安全系数的动态裁决算法

for(i=1;i≤n;i++)

if Se-signal<1

if(Consensus-Voting(num,n))

then return true

else return false

end if

else if Se-signal≥1

if(Primary-Voting(num,n/2+1))

then return true

else return false

end if

end if

如果异构体的安全系数Se-signal低于限定值,则考虑此次请求为存在隐式风险的行为,使用一致性表决算法Consensus-Voting,需要异构体表决全体通过,才判定此次请求通过。如果高于限定值,采用大数裁决算法Primary-Voting进行判决,当系统中有超过半数的异构体执行通过的时候,则处理此次请求状态为正常。

4.2.3轮换清洗与下线 根据系统的动态调度周期,以及系统受损程度进行服务异构体的轮换和下线,并对可疑执行体进行数据清洗,保证系统的内部安全性。在内生安全体系中,通过判断当前执行体的可信度,来动态调整对异构体的处理方法,根据多模裁决器模块提交的异常信息进行反馈调整,引入改进后的零信任安全模型中的负反馈控制模块信息,定期对执行体进行轮换和下线。

算法3基于置信度的执行体轮换算法

when Servetime>Rotationtime

for each heter in SList

if heter.trustval < 1

heter.state=SUSPECT

offline(heter)

if heter.trustval < 0.1

heter.state=FORBIDDEN

offline(heter)

clear(heter)

else if heter.trustval ≥ 1

if Servetime < Maxservetime

continue working

else

offline(heter)

replace(heter)

end if

对于执行体的轮换和下线,首先判断是否到达轮换时间Rotationtime,若当前时间片内Servetime有服务执行体需要轮换,则判断当前执行体的置信度是否小于0.1,若结果为真,将当前异构执行体的状态heter.state设置为不可用并下线清洗,表示此执行体存在风险,可能已经被后门侵入。若执行体的置信度heter.trustval在0.1~1,则将其状态设置为不可信并下线清洗。当执行体的置信度大于1,但其服务时间Servetime并未到达最大服务时间Maxservetime,则继续作为服务集活动,否则便对其进行基本的轮换清洗工作。

5 总结

本文从安全防护措施入手,分析了零信任模型架构和内生安全的机理,引入基于内生安全的零信任架构模型。针对系统模型,从安全性和动态性等方面进行了建模分析,表明传统的零信任系统经过内生安全改造之后,具有动态性、随机性、异构性和多样性特点,获得了内生安全增益,增强了系统的防御性能和安全等级。下一步的研究工作将集中在如何将模型更好地应用于实际场景,同时保持较小的开销。

猜你喜欢
内生异构组件
ETC拓展应用场景下的多源异构交易系统
无人机智能巡检在光伏电站组件诊断中的应用
试论同课异构之“同”与“异”
植物内生菌在植物病害中的生物防治
新型碎边剪刀盘组件
内生微生物和其在作物管理中的潜在应用
U盾外壳组件注塑模具设计
“党建+”激活乡村发展内生动力
吴健:多元异构的数字敦煌
授人以渔 激活脱贫内生动力