基于区间决策图的威胁处置策略快速匹配
2021-06-04张玲翠李凤华房梁郭云川李子孚
张玲翠,李凤华,房梁,郭云川,李子孚
(1.中国科学院信息工程研究所,北京 100195;2.中国科学院大学网络空间安全学院,北京 100049)
1 引言
随着互联网、移动互联网、物联网等复杂网络的大规模应用,安全威胁的发生日趋频繁,产生的后果日益严重。国家互联网应急中心发布的《2020 年上半年我国互联网网络安全监测数据分析报告》显示,2020 年上半年,捕获计算机恶意程序样本数量约1 815 万个,日均传播次数达483 万余次,涉及计算机恶意程序家族约1.1 万余个,我国境内感染计算机恶意程序的主机数量约304 万台,境内工业控制系统的网络资产持续遭受来自境外的扫描嗅探,日均超过2 万次。
面对如此严重的安全威胁,学术界和工业界提出了涵盖潜在风险点识别、威胁风险评估、威胁处置策略生成与匹配、处置效果评估等在内的一整套威胁闭环响应解决方案。从静态动态的角度来看,当前威胁处置策略匹配包括2 类:静态匹配和动态匹配[1]。静态匹配指为每类报警预先分配固定的威胁处置策略或措施,当报警发生时,查找与之相匹配的策略或措施。虽然静态匹配简单直接,但依赖于专家知识,不具备动态性和适应性。为此研究者提出了动态匹配,该方式不仅考虑报警类型,而且响应措施依赖于系统状态和当前环境等因素,从而提升了动态性和灵活程度。在这2 种匹配中均可引入攻击损失和响应代价,以提升威胁处置效益。
现有静动态匹配方案要求当前威胁报警中的要素与响应策略库或措施库精确匹配,只有精确匹配时才能选择出响应策略或措施。虽然成本敏感匹配模式中的效果和成本属于模糊匹配,但在其他要素中属于精确匹配。然而在实践中精准快速地匹配策略库或措施库是非常困难的,其原因如下。
1) 威胁响应决策条件的模糊性。在响应策略库中,需要定义当何种威胁发生时采取何种措施,然而威胁复杂性导致很难准确地选择响应措施。如威胁响应策略中规定“在给定时间段内某网段的某类报警达到10 次,则应该阻断该网段的A 类流量”。若攻击者触发9 次报警之后停止攻击,则该攻击者行为不会被阻断。在实践中,若攻击者触发9 次报警,则应以极大的可能性阻断该类行为,这种威胁响应决策条件的模糊性导致难以有效地选取威胁处置措施。
2) 策略库或措施库规模大。复杂网络等环境中存在大量设备、海量数据、各种类型的威胁,相应地,策略库或措施库规模将非常庞大。例如,骨干网交换、大型数据中心、云存储服务、大规模社交网络后台等网络边界的防火墙、安全网关/设备策略中,响应规则可达10 万条。庞大的策略库或措施库将消耗过多的策略匹配时间。
针对上述问题,本文提出了带模糊算子的区间决策图构造算法,设计了面向威胁处置的策略动态匹配算法,具体贡献如下。
1) 对威胁处置策略进行归一化描述,形成威胁处置策略。其中,威胁处置策略模板包括策略匹配条件、策略动作、策略有效性等;策略匹配动作包括处置命令类型、处置命令、处置区域、约束信息等,可为策略动态匹配提供基础。
2) 将威胁类型、严重程度、置信度、攻击频度、传播方式等策略匹配条件进行排序,提出了面向单策略的带模糊算子的区间决策图构造算法;针对威胁处置策略库中存在大量处置策略的现状,设计了模糊区间决策图合并算法;为了快速地选取策略,设计了基于模糊区间决策图的策略动态匹配算法。由于采用基于模糊区间决策图的策略动态匹配算法,因此能有效减少因缺乏精准威胁处置策略导致的不准确性的情况。
3) 采用邻接链表存储模糊区间决策图实现了基于区间决策图的威胁处置策略动态匹配。在实验中生成350 组不同策略库规模的决策图。实验表明,所生成的决策图的顶点数和边数远小于原始策略数,从而大幅降低了匹配次数,提升了匹配效率。
2 相关工作
根据给定的安全事件,如何选择有效的威胁响应策略来缓解事件是一个亟待解决的问题[2]。近年来,对威胁策略匹配研究集中在2 个方面:静态匹配[3-5]和动态匹配[6-18]。其中,静态匹配旨在根据安全事件特征自动化搜索策略,自动化程度和高效性是该类方法的研究重点;动态匹配会根据安全事件上下文动态选择给定情况下的最优策略,如何找到最优策略是该类方法的研究重点。下面,本文将详细介绍威胁策略匹配的现有研究。
静态匹配方面,Somayaji 等[3]实现了对系统调用级别的安全事件特征的自动化响应策略匹配。Toth 等[4]通过评估策略可能对网络和服务产生的负面影响来自动化选择响应措施。在自动化匹配的基础上,Marouf 等[5]提出了一种基于聚类的策略重排序算法,采用该算法可实现高效的策略静态匹配。但静态匹配方法并未考虑不同运行环境下,相同的安全事件的严重程度差异,难以灵活地响应安全事件。因此,动态策略匹配方法被提出。
动态匹配方法包括基于多因素的匹配[6-12]和基于博弈的匹配[13-18]。其中,基于多因素的匹配方面,Shameli-Sendi 等[6]提出了一种考虑安全事件上下文的动态威胁响应策略匹配方法,该方法根据系统的服务依赖图和攻防树,计算并权衡了系统的安全收益、用户和服务的安全影响、安全部署成本,实现了随攻击环境改变的威胁动态响应。Guo 等[7]提出了一种细粒度的策略匹配方法,通过考虑攻击损害、部署成本、对服务质量的负面影响和安全效益,采用三维遗传算法,动态选择威胁响应策略,此外,该方法还考虑了策略匹配的时序。Li 等[8]研究了多步攻击的策略匹配方法,该方法将该问题建模为全局优化问题,并评估安全效益、部署成本以及对服务质量的负面影响等指标,最后采用贪心算法实现了最优策略匹配。但是上述方法只考虑了效用,并未考虑攻击者与防御者的交互行为。
为量化攻防双方行为对匹配结果的影响,基于博弈的策略匹配方法被研究。其中,Luo 等[13]研究了多级攻击策略的匹配方法,该方法将攻击者与管理员之间的交互建模为非合作零和多阶段博弈,其中攻击者为领导者,管理员为追随者,通过将两者的交替操作建模为博弈树,实现考虑攻击上下文的策略匹配。Zonouz 等[14]采用了斯坦伯格随机博弈模型实现了策略的推理和匹配,该方法考虑到实际环境中统计指标可能存在的不准确性,提出了基于模糊逻辑计算威胁的各指标值,并根据预先定义的模糊规则集推理可能的行为,最后根据推理结果选择针对当前和未来的行为的最优威胁响应策略。
3 威胁处置策略归一化描述
威胁处置策略模板是对威胁处置策略的模式进行归一化描述,威胁处置策略模板包括策略模板ID、策略匹配条件、策略匹配动作、策略有效性,如图1 所示。威胁处置策略匹配条件是指触发/选择威胁处置策略执行的前提条件(即威胁特征)。策略匹配动作是指满足威胁处置策略匹配条件时所触发的需要执行威胁处置操作。策略有效性是针对某威胁,预先评估的策略处置效果。
图1 威胁处置策略模板构成示意
威胁处置策略模板库是所有威胁处置策略模板的集合。接收到报警信息后,可根据报警信息和受威胁对象的安全保障目标,从处置策略模板库中按需选取目标处置策略模板;依据报警信息等,生成威胁处置策略,为多级、多域、多类、多台对象的差异化联动响应和威胁处置的统一管理提供基础,提高了处置效率和处置效果。
3.1 策略匹配条件
在威胁处置策略匹配时,需要匹配威胁告警中的威胁特征与策略模板库中的威胁特征。威胁特征是对威胁的描述,包括威胁类型、严重程度、置信度、攻击频度、传播方式等。其中,威胁类型THREAT_TYPE 表示预定义的威胁事件类型,如THREAT_TYPE={DDoS,Unauthorized Access,Traffic Anomaly,FTP Trojan,…,SQL Injection},其中,DDoS、Unauthorized Access、Traffic Anomaly、FTP Trojan、SQL Injection 分别表示分布式拒绝服务攻击、非法访问、流量异常、FTP 木马、SQL 注入攻击等。严重程度表示威胁造成危害的程度,可用severity={s|1≤s≤10,s∈N+}表示,其数值越大表示严重程度越高。置信度表示威胁报警的可信程度,可用confidence={c|1≤c≤10,c∈N+}表示,其数值越大,表示可信度越高。攻击频度表示每分钟上报的原始安全事件个数,attackFreq={af |1 ≤ af ≤10000,af∈N+},其数值越大,表示攻击频率越高。传播方式包括攻击实体利用的恶意软件、利用的攻击工具、经由的网络类型等。
安全保障效果指该条处置策略模板实例化为处置策略并被执行后,可以满足的安全保障目标,一个处置策略模板可以实现多种安全保障效果。需注意的是,这里的安全保障效果并非百分之百满足,可以是一定程度上满足。
3.2 策略匹配动作
策略匹配动作包括处置命令类型、处置命令、处置区域、约束信息。
处置命令类型包括命令集、命令、指令和动作等。其中,命令集中包含了多种类型的命令,命令包含了多种类型的指令,指令包含了多种类型的动作。处置命令根据处置命令类型的不同而不同。
处置区域为执行处置策略的对象所在范围或空间的限定,能以逻辑方式标注,也能以物理方式标注。例如,以特定IP 段地址标识、以唯一编号标识或以经纬度标识。
约束信息为将处置策略模板具体化成某一处置策略后对该处置策略的约束条件,包括生成时间、分发时间、执行时间、有效期、持续时间、安全等级和知悉范围等。
3.3 策略有效性
有效性为处置策略应对相应特征威胁时,达到安全保障效果的程度,可以用[0,10]的离散整数值表示,也可以用百分比、小数表示,还可以通过采用该条处置策略应对威胁时成功的比例表示。
4 威胁处置策略模糊区间决策图
4.1 威胁处置策略的模糊区间决策图表示
采用如下形式的多元函数表示威胁处置策略
其中,Di可以表示威胁类型、严重程度、置信度、攻击频度、传播方式等带隶属度的策略条件,威胁类型、传播方式为离散型变量,严重程度、置信度、攻击频度为连续型变量;POLICIES 表示所有威胁处置策略的集合。为了便于描述,用X表示D1×D2× …×Dn,故式(1)可描述为f(X) →POLICIES 。
威胁处置策略的选择变量可用数据区间及其隶属函数表示,对于连续型变量,数据区间是定义域内由起始值和终止值构成的一段范围,可以为开区间、闭区间或半开半闭区间,例如,严重程度数据区间可以是[1,5]或(5,8];对于离散型变量,数据区间是定义域内一个或多个值组成的集合,例如,威胁类型的数据区间可以是{DDoS,非授权访问},数据区间形式化表示为I⊆Di,该数据区间是隶属度值大于0 的区域。隶属函数表示在数据区间及其边界的隶属度分布,记为隶属度表示该威胁下选择某策略的可能性,例如,严重程度在区间[1,5]时,选择威胁处置策略1、策略2、策略3的可能性分别为0.3、0.4、0.6。
区间划分为定义域内互不相交的区间集合,形式 化 表 示 为P={I|I⊂Di,∀Ii,Ij∈P,i≠j,Ii∩Ij=∅}。例如,severity⊂{[1,5],(5,8]},严重程度变量包括2 个互不相交的区间。
给定一个区间划分P,变量xi∈P代表∃I∈P,s.t.xi∈I。定义布尔函数为
当xi∈P时,式(1)与xi独立,即对于区间划分P中的任何xi,会得到相同的威胁处置策略,如式(3)所示。
因此,偏函数表示为
例如,函数f关于变量 severity 在区间P={[ 1,8]}独立。
因此,偏函数可表示为
给定一个域Di,如果区间集合P(Di)={P1,P2,…,Pdi}满足则称域Di被区间集合覆盖;如果区间集合P(Di)中没有共同区间,则说明其不相交,即∀i,j∈[1,di],i≠j,Pi∩Pj=∅。
根据香农分解,函数f可被分解为对于任意变量xi在不相交覆盖的区间集合P(Di)上的偏函数。
因此,可以将函数f形式化为具有如下性质的决策图,如图2 所示。
图2 威胁处置策略的模糊区间决策图
1) 图G是一个有根、有向无环图,其顶点集包括2 类节点:内部节点和叶子节点。内部节点表示威胁处置策略匹配条件,叶子节点表示策略匹配动作(用策略ID 标识)。
4.2 带模糊算子的区间决策图构造
威胁处置策略模糊区间决策图(FIDD,fuzzy interval decision diagram)定义如下。
1) FIDD中的节点m用四元组(index,val,pval,C)表示,其中,index 表示节点的序号;val 表示该节点的威胁特征值,当节点为决策图的内部节点时,威胁特征值可以是威胁类型、严重程度、置信度、攻击频度等,具体取值为该节点连接其下级节点边的区间划分的集合即当节点为叶子节点时,val 为空;pval 表示该节点所能选择策略的ID 集合;C表示四元组(c,p,μ,λ)的集合,c表示节点m的下级节点,μ表示隶属度函数,λ表示隶属度阈值,p表示节点m到其下级节点c的隶属度函数大于0的区间划分,用于从模糊区间中确定清晰集。
2) FIDD 中的边用(p,μ,λ)表示。从根节点开始,如果节点xi的隶属度大于阈值λ,则选择(p,μ,λ)这条边。
威胁处置策略构造算法。从策略匹配条件和策略匹配动作等策略元素生成一条策略的决策图的算法,如算法1 所示,算法的核心思想是将威胁类型、严重程度、置信度、攻击频度、传播方式等策略匹配条件按照节点序号由小到大排序,作为FIDD 的内部节点,将策略匹配动作作为FIDD 的叶子节点,整体存储为单链表结构。
算法 1威胁处置策略模糊区间决策图policyBuild (e1,e2,…,ek,ac)
威胁处置策略合并算法如算法2 所示,其核心思想是采用深度优先搜索思想,对已有的和待合并的2 个威胁处置策略决策图进行递归合并,得到新的威胁处置策略决策图,在节点两两合并过程中,分以下3 种情况处理。
算法2威胁处置策略合并算法policy Merge(m1,m2)
输入2个决策图根节点m1和m2
输出m1∨m2
1) 均为叶子节点(步骤11)~步骤16))。合并2 个叶子节点(即表示威胁处置策略动作的节点)代表的策略集合作为最终的叶子节点。
2) 均为内部节点且节点序号相等(步骤17)~步骤37))∧*模糊算子(4.3 节具体介绍)的计算结果进行区间合并和递归计算。此种情况是2 个节点所选择的策略集合不同,则根据+*算子对2 个节点的隶属度函数、隶属度阈值进行记录和递归运算。
3) 均为内部节点且节点序号不等(步骤38)~步骤48))。将序号低的节点的下级节点与序号高的节点进行递归调用运算。
为降低算法复杂度,引入计算表存储结构,确保任一节点对至多一次计算(步骤1)~步骤3)、步骤51))。为避免重复生成的顶点不被多次添加到决策图中,在合并过程中同步应用化简规则进行化简(步骤49)~步骤52))。
如算法3 所示,通过依次调用威胁处置策略构造算法(算法1)和威胁处置策略合并算法(算法2),以渐进式方式生成全局的威胁处置策略决策图。
算法3威胁处置策略的模糊区间决策图生成算法FIDDGeneration(E)
输入策略集合E,E={E1,E2,…,En},E={e1,e2,…,ek,ac}
输出多类型区间决策图t=m1∨m2∨ …∨mk
图3 为威胁处置策略模板库中待合并的2 个策略,P1决策图表示威胁类型为DDoS 攻击、严重程度为[1,5]、置信度为[1,5]、攻击频率为[1,1 000]的情况下选择策略1,决策图中的边还记录了对应的策略匹配条件的隶属度函数,P2的决策图同理。P1和P2通过递归调用策略合并算法,逐节点自底向上进行合并,生成的模糊区间决策图如图4 所示,其中,威胁类型和严重程度节点在2 个策略中的区间值相同,所以各自合并为一个节点;置信度节点在进行合并时,首先对[1,5]和[3,10]进行无覆盖的区间划分,划分的结果为3 个区间{[1,3],[3,5],[5,10]},然后在每个区间下,依然递归调用策略合并函数,对攻击频率节点进行区间划分,在区间划分后应用模糊算子对该区间下的隶属度函数进行合并,最终得到如图4 所示的决策图,叶子节点的策略匹配动作包括仅执行策略1、仅执行策略2、执行策略1 和策略2 这3 种情况。
图3 合并前的威胁处置策略P1 和P2
图4 合并后的威胁处置策略
4.3 面向威胁处置的模糊算子设计
4.2 节给出了带模糊算子的区间决策图构造,本节将讨论如何设置适用于威胁处置的模糊算子。
威胁处置策略决策图中的边代表模糊区间或模糊集合,如图5 和图6 所示。图5 中表示在攻击频率区间[0,100]选择策略1进行威胁处置的隶属度为1,在区间(100,105]中随着攻击频度增加,选择策略1 的隶属度减少,呈直角梯形分布。类似地,图6 给出了选择策略2 的隶属度。
当合并2 个决策图中时,需要处理合并后所选取策略的隶属度,如果这2 个决策图最终选择的策略相同,则采用MAX 算子,记为 ∧*算子,即当模糊区间存在交叠时将该区间的最大隶属度作为最终隶属度,即 ∧*(a,b)=max(a,b)。采用该隶属函数原因是将最可靠的策略作为最终处置策略。图7 给出了图5 和图6 所代表的模糊分布在选择相同策略时,经过 ∧*算子运算后,得到模糊区间的模糊分布。
图5 攻击频率模糊区间P1 的模糊分布
图6 攻击频率模糊区间P2 的模糊分布
图7 攻击频率模糊区间合并后的模糊分布P1∧*P2
如果这2 个决策图最终选择的策略不同,采用MERGE 算子,记为 +*算子,即当模糊区间存在交叠时将该区间的多个隶属度函数分段记录,即+*(a,b)=∪(a,b)。采用该隶属度函数的原因是可同时选择出多条策略。图8 给出了图5 和图6 所代表的模糊分布在选择不同策略时,经过 +*算子运算后,得到的模糊区间的模糊分布,灰色粗实线表示相交区间的模糊分布。
图8 攻击频率模糊区间合并后的模糊分布P1+*P2
4.4 基于模糊区间决策图的策略动态匹配
在收到新报警后,将报警中的威胁类型、严重程度、置信度、攻击频度、传播方式等威胁特征,在威胁处置策略模糊区间决策图中自顶向下进行匹配,具体地,如算法4 所示,将报警中的各威胁特征从模糊区间决策图的根节点开始,在具有相同序号的节点处进行匹配(步骤4)),若报警中威胁特征的隶属度值大于模糊区间决策图中的阈值,则选择该下层节点继续匹配(步骤6)~步骤7)),直到匹配至叶子节点,得到策略动作(步骤1)~步骤3))。需要注意的是,在上述过程中,一条报警信息在匹配到模糊区间决策图的叶子节点时,由于区间的模糊性,可得到多个策略动作,此时需要根据匹配路径中选择出的各策略的隶属度阈值进行综合排序,得到最终的策略执行顺序。例如,依照策略的隶属度大小,首先执行隶属度最大的威胁处置策略,若该威胁处置策略的效果低于预定值,再选取隶属度次之的威胁处置策略;重复执行,直到达到预定的威胁处置效果或所选的威胁处置策略执行完毕。
算法4基于模糊区间决策图的策略动态匹配算法match(m,t)
输入决策图根节点t,威胁报警根节点m
输出威胁处置策略列表
算法4 将报警信息中的威胁特征在决策图中进行深度优先搜索和匹配,其时间复杂度为其中,为决策图的顶点数,为决策图的边数。对比策略匹配时常用的顺序匹配算法,即报警信息与策略库中的策略匹配条件进行逐条比较,其时间复杂度为O(nm),其中,n为策略库中的策略数,m为每个策略匹配条件中的威胁特征数量。
使用模糊区间决策图构建策略库,相同区间划分的威胁特征进行了合并,使生成的决策图的顶点数和边数远小于原始策略的数量,减少了策略条件匹配时的求交操作次数,降低了策略匹配的时间复杂度。
5 实验
使用C语言实现了模糊区间决策图的构造算法和基于模糊区间决策图的策略匹配算法,实验平台为超云服务器(R7410 G11),CPU 型号为Intel(R)Xeon(R)Gold 6234 CPU@3.30 GHz,内存大小为96 GB,操作系统为CentOS7,内核版本为3.10.0-1062.el7.x86_64,GCC 版本为4.8.5,采用邻接链表存储模糊区间决策图。
为模拟不同策略库规模对于策略匹配的时间影响,本文设置了50 组威胁类型、严重程度、置信度、攻击频度的可选值,以及根据策略库规模与策略动作的数量关系划分了7 组(非常高(VH)、高(H)、偏高(MH)、中等(M)、偏低(ML)、低(L)、很低(VL))策略相似度,其中,非常高表示多个策略匹配条件选择相同的策略动作,很低表示每个策略匹配条件唯一地选择了一个策略动作,共计生成了350 组不同策略库规模的决策图。
为验证基于模糊区间决策图的策略模糊匹配的高效性,本文选择传统的顺序匹配方案,在匹配时间和内存消耗这2 个方面进行比较,共设置8 组实验,其中,7 组是不同策略相似度的基于区间决策图的匹配方案,一组是顺序匹配方案。仅设置一组顺序匹配方案的原因在于原始的策略中,每个策略匹配条件仅会选择一个策略动作,策略是否相似对于顺序匹配的时间和内存消耗是没有影响的。
基于区间决策图的匹配方案与顺序匹配方案的运算时间的部分结果如表1 所示,随策略数量的变化趋势如图9 所示。从图9 可以看出,7 组基于区间决策图的匹配方案明显低于顺序匹配方案,这验证了基于模糊区间决策图进行策略匹配的有效性和效率。基于决策图的匹配方案中策略相似度越高,匹配时间越短。
表1 基于区间决策图的匹配方案与顺序匹配方案的运算时间的部分结果
图9 策略匹配时间随策略数量的变化趋势
基于区间决策图的匹配方案与顺序匹配方案的内存消耗的部分结果如表2 所示,随策略数量的变化趋势如图10 所示。从图10 可以看出,当策略相似度很低时,基于区间决策图的匹配方案的内存消耗略低于顺序匹配方案,基于区间决策图的其他6 组实验的内存消耗远低于顺序匹配方案,其原因是决策图高效的合并策略匹配条件和策略动作,减少了相同策略元素的重复存储,使占用的内存空间远低于扁平存储结构的顺序匹配方案。
表2 基于区间决策图的匹配方案与顺序匹配方案的内存消耗的部分结果
图10 策略匹配的内存消耗随策略数量的变化趋势
策略匹配时间随决策图顶点数和边数的变化趋势如图11 所示。图11 验证了基于模糊区间决策的策略匹配算法的时间复杂度为对于稀疏图,最小边数为对于稠密图,最大边数为结合表1 可看出,本文的模糊区间决策图为稀疏图。
图11 决策图顶点数、边数与策略匹配时间的变化趋势
通过不同策略库规模下生成决策图,并进行策略匹配的实验可知,采用模糊区间决策图组织策略库,形成了对威胁特征状态空间的隐式表示,使生成的决策图的顶点数和边数远小于原始策略数,减少了策略条件匹配次数,较顺序比较各策略条件的威胁特征,具有数据级优势。
6 结束语
如何快速准确地选取威胁处置策略是确保网络安全中的一项重要挑战,针对该问题,本文提出了基于区间决策图的威胁处置策略快速匹配方法。首先设计了威胁处置策略归一化描述方法,定义了模糊化的威胁处置策略;依据威胁类型、严重程度、置信度、攻击频度、传播方式,设计了单威胁策略的模糊构造算法;针对多条模糊处置策略,设计了模糊区间决策图合并算法和策略快速匹配算法,实验表明了所提方法的有效性。
虽然所提方法能有效地选取威胁处置策略,但其准确度依赖于隶属度函数;在实际应用中不同威胁特征下采用威胁处置策略的隶属度不同,未来需要依据历史处理策略的有效性,采用机器学习等方法准确地获取不同威胁特征下威胁处置策略隶属度。