一种基于置信度与异构度的执行体调度方法
文献发布时间:2023-06-19 18:29:06
技术领域
本发明涉及一种基于置信度与异构度的执行体调度方法,属于拟态防御技术领域。
背景技术
拟态防御技术的核心是动态异构冗余架构,该架构具有三个特性,即动态性、异构性、冗余性。动态性是指当系统遭受到网络攻击时,调度模块会根据预设好的安全策略对执行体进行调度,避免攻击者对系统内部防御架构进行渗透;异构性是指功能等价的不同执行体会有所差异,例如底层硬件不同、操作系统不同、采用协议不同或程序语言不同等;冗余性是指有多个执行体同时在线运行,并且执行体池中还有很多备用的冗余执行体。
拟态防御技术主要通过执行体调度模块,实现系统对外特征的动态性和不确定性。调度器根据预设好的安全策略,将处于运行状态的异常执行体下线清洗,并从执行体池中选择合适的备用执行体上线运行,从而改变系统当前的运行状态,使攻击失效。因此,执行体调度策略在拟态防御技术中具有非常重要的地位,如何设计良好的执行体调度策略,在满足执行体异构性的同时,兼顾对执行体可靠性的考虑,是一个值得讨论的问题。
发明内容
针对上述执行体调度策略问题,本发明提出了一种基于置信度与异构度的执行体调度方法。通过执行体内部构件的已知漏洞信息,初始化执行体的置信度和异构度;当出现执行体输出不一致的情况时,首先使用预设好的测试样例对执行体进行测试,然后结合测试结果以及执行体的置信度与异构度,有针对性地对执行体进行调度,以实现系统对外特征保持动态性和不确定性,最后对执行体的置信度与异构度进行调整。
为达到上述发明创造目的,本发明采用如下技术方案:
一种基于置信度与异构度的执行体调度方法,所述方法包括以下步骤:
步骤一:首先基于执行体内部构件的已知漏洞信息,计算所有构件的置信度,实现对构件的可靠性度量;然后基于构件置信度,计算执行体的初始置信度,细化执行体置信度的评价粒度;最后根据构件的类型以及漏洞信息计算执行体之间的异构度;
步骤二:当出现执行体输出不一致的情况时,首先使用预设好的测试样例对执行体进行实时测试,若有执行体出现错误,则根据测试结果采取第一调度方案,否则根据执行体的置信度与异构度,采取第二调度方案;
步骤三:根据执行体的输出以及测试结果,对执行体的置信度与异构度进行动态调整。
进一步的,所述步骤一中构件置信度的计算以及执行体初始置信度的设置方法如下:
(1.1)假设一个执行体由L层构件组成,其中第l层共有M种不同的构件,记为C={c
(1.2)假设集合C中所有的构件共含有H种不同类型的漏洞,记为Vul={vul
(1.3)采用通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)量化漏洞的威胁程度,量化分值区间为[0,10],分值越高,漏洞的威胁程度越高,定义“第l层所有漏洞的威胁总值”为:
定义“构件c
(1.4)定义构件c
其中τ∈[0,10]为调节因子,τ越小,不同执行体之间的初始置信度差异越大;τ越大,不同执行体之间的初始置信度差异越小;
(1.5)对构件的原始置信度进行归一化,作为构件的初始置信度:
(1.6)假设执行体X={x
其中α
进一步的,所述步骤一中执行体初始异构度的设置方法如下:
(1.7)若两个构件属于不同类型(例如,Windows与Linux),那么它们之间的异构度直接令为1;若两个构件类型相同(例如,Win7与Win10),那么根据它们之间的漏洞信息计算异构度,具体如下:
(1.8)假设构件c
(1.9)假设执行体X={x
其中α
进一步的,所述步骤二中的执行体调度方法如下:
(2.1)使用已知正确答案的测试样例,对在线运行的执行体进行测试;
(2.2)若某个执行体出现错误,那么可以确定该执行体已经遭到攻击,跳转到(2.3),采取第一调度方案;否则目前不能确定是否有执行体遭到攻击,跳转到(2.7),采取第二调度方案;
执行体第一调度方案如下:
(2.3)记“出现错误的执行体”集合为E;
(2.4)记“集合E中执行体的输出”集合为F;
(2.5)对于集合E之外的执行体,若它的输出属于集合F,则将该执行体添加到集合E中;
(2.6)下线清洗集合E中的所有执行体,同时根据置信度与异构度,从执行体池中选取备用执行体上线运行,具体选取方法见(2.11);
执行体第二调度方案如下:
(2.7)按照执行体给出的答案划分集合,计算每个集合内两两执行体之间的异构度评价指标:
Het(X,Y),s.t.X,Y∈S
其中K为集合个数,也就是执行体给出的答案的种类数;
(2.8)计算每个集合的得分,公式如下:
该公式的含义是,以执行体的置信度为基准,如果它与集合中其他执行体的异构度超过0.5,那么上调它对得分的贡献,否则下调它对得分的贡献;
(2.9)保留得分最高的执行体集合,将其余执行体全部下线清洗,同时根据置信度与异构度,从执行体池中选取备用执行体上线运行,具体选取方法见(2.10);
备用执行体选取方法如下:
(2.10)假设执行体池中有N个备用执行体{X
(2.11)对矩阵Matrix
记为Min_Het=[δ
(2.12)定义异构度阈值ε,若备用执行体X
(2.13)计算集合T={X
(2.14)计算集合T={X
Score(X
其中β
(2.15)首先将得分最高的执行体添加到集合G中,然后将集合T中其余的候选执行体,按照得分从大到小排序;
(2.16)按序遍历集合T每一个执行体,若执行体X
(2.17)当集合G中的执行体个数满足要求,或遍历完集合T的执行体时,将集合G中的执行体上线运行,调度完成。
进一步的,所述步骤三中执行体置信度与异构度的调整方案如下:
假设原本线上运行的执行体有K个,下线清洗K-M个,保留M个;
对于执行体第一调度方案,置信度与异构度的调整方案如下:
(3.1)计算置信度上调比例:
其中upMax为上调比例上限;
(3.2)M个保留的执行体的置信度更新为:
Conf(X)=min(confMax,(1+upRatio)·Conf(X))
其中confMax为置信度上限;
(3.3)计算置信度下调比例:
其中downMax为下调比例上限;
(3.4)K-M个下线清洗的执行体的置信度更新为:
Conf(X)=max(confMin,(1-downRatio)·Conf(X))
其中confMin为置信度下限,当达到下限时,弃用该执行体;
(3.5)对于K-M个下线清洗的执行体,按照输出类别将它们划分到不同的集合{S
(3.6)每个集合内执行体之间的异构度更新为:
(3.7)对于M个保留的执行体,维持它们的异构度不变:
对于执行体第二调度方案,置信度与异构度的调整方案如下:
(3.8)在第二调度方案情况下,由于无法确定当前是否有执行体遭到了攻击,同时也不能确定对于系统输入,正确的输出是什么,因此不更新执行体的置信度,只更新异构度;
(3.9)按照输出类别将所有执行体划分到不同集合{S
(3.10)每个集合内执行体之间的异构度更新为:
相对于现有技术,本发明所述的一种基于置信度与异构度的执行体调度方法具有以下优势:
(1)利用执行体内部构件的已知漏洞信息,计算构件的置信度以及构件之间的异构度,实现了对构件的可靠性度量,并在此基础上依据各层构件的重要程度,动态初始化执行体的置信度和异构度,初始化方式更加合理;
(2)当出现执行体输出不一致的情况时,首先利用预设好的测试样例对执行体进行实时测试,然后结合测试结果以及执行体的置信度与异构度,有针对性地对执行体进行调度,更好地实现系统对外特征保持动态性和不确定性;
(3)根据执行体的输出以及测试结果,对执行体的置信度与异构度进行动态调整,以适应不断变化的网络环境,从而提高系统的整体防御能力。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于置信度与异构度的执行体调度方法的流程图;
图2为本发明实施例公开的一种基于置信度与异构度的执行体调度方法的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出了一种基于置信度与异构度的执行体调度方法。通过执行体内部构件的已知漏洞信息,初始化执行体的置信度和异构度;当出现执行体输出不一致的情况时,首先使用预设好的测试样例对执行体进行测试;若有某个执行体给出了错误答案,那么可以确定该执行体已经遭到攻击,依据测试结果,采取第一调度方案;否则不能确定是否有执行体遭到攻击,依据执行体的置信度与异构度,采取第二调度方案,以实现系统对外特征保持动态性和不确定性;调度完成之后对执行体的置信度与异构度进行调整。
参见图1,本发明实施例公开的一种基于置信度与异构度的执行体调度方法流程图,该方法包括:
步骤S101,计算构件置信度:
在本实施例中,一个执行体由L层构件组成,其中第l层共有M种不同的构件,记为C={c
集合C中(即第l层)所有的构件共含有H种不同类型的漏洞,记为Vul={vul
采用通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)量化漏洞的威胁程度,量化分值区间为[0,10],分值越高,漏洞的威胁程度越高;
定义“第l层所有漏洞的威胁总值”为:
定义“构件c
定义构件c
thr(c
τ∈[0,10]为调节因子,τ越小,不同执行体之间的初始置信度差异越大;τ越大,不同执行体之间的初始置信度差异越小;
对构件的原始置信度进行归一化,作为构件的初始置信度:
步骤S102,计算构件异构度:
在本实施例中,若两个构件属于不同类型(例如,Windows与Linux),则直接令它们的异构度为1;若两个构件类型相同(例如,Win7与Win10),则根据它们之间的漏洞信息计算异构度,具体如下:
假设构件c
当构件c
步骤S103,计算执行体初始置信度与异构度:
在本实施例中,执行体X={x
定义执行体X的初始置信度为:
定义执行体X与Y的初始异构度为:
其中α
步骤S104,使用测试样例对执行体进行测试:
在本实施例中,一共有5个执行体{X
从样例库中随机抽取出T个测试样例,依次输入到在线运行的执行体中进行测试;
若某个执行体出现错误,那么可以确定该执行体已经遭到攻击,跳转到步骤S105,采取第一调度方案;否则目前不能确定是否有执行体遭到攻击,跳转到步骤S106,采取第二调度方案。
步骤S105,执行体第一调度方案如下:
在本实施例中,执行体X
对于系统输入,集合E={X
对于集合E之外的执行体,若它的输出属于集合F,则将该执行体添加到集合E中;在本实施例中,由于执行体X
下线清洗集合E中的所有执行体,同时根据置信度与异构度,从执行体池中选取备用执行体上线运行,具体选取方法见步骤S107。
步骤S106,执行体第二调度方案如下:
按照执行体的输出划分集合,S
计算每个集合的得分,公式如下:
该公式的含义是,以执行体的置信度为基准,如果它与集合中其他执行体的异构度超过0.5,那么上调它对得分的贡献,否则下调它对得分的贡献;
其中集合S
在本实施例中,集合S
步骤S107,备用执行体选取方法如下:
在本实施例中,执行体池中有5个备用执行体{R
对矩阵Matrix
记为Min_Het=[δ
定义异构度阈值ε,若备用执行体X
在本实施例中,集合T={R
计算集合T={R
Score(R
其中β
首先将得分最高的执行体添加到集合G中,然后将集合T中其余的候选执行体,按照得分从大到小排序;
按序遍历集合T每一个执行体,若执行体X
当集合G中的执行体个数满足要求,或者遍历完集合T的执行体时,将集合G中的执行体上线运行,调度完成。
步骤S108,执行体置信度与异构度的调整方案如下:
在本实施例中,线上运行的执行体有5个{X
对于执行体第一调度方案,置信度与异构度的调整方案如下:
计算置信度上调比例:
其中upMax为上调比例上限;
被保留的执行体的置信度更新为:
Conf(X
其中confMax为置信度上限;
计算置信度下调比例:
其中downMax为下调比例上限;
被下线清洗的执行体的置信度更新为:
Conf(X
其中confMin为置信度下限,当达到下限时,弃用该执行体;
对于下线清洗的执行体,按照输出将它们划分到不同的集合S
每个集合内执行体之间的异构度更新为:
对于保留的执行体,维持它们的异构度不变;
对于执行体第二调度方案,置信度与异构度的调整方案如下:
在第二调度方案情况下,由于无法确定当前是否有执行体遭到了攻击,同时也不能确定对于系统输入,正确的输出是什么,因此不更新执行体的置信度,只更新异构度;
按照输出将所有执行体划分到不同集合S
每个集合内执行体之间的异构度更新为:
以上所述仅为本发明的实施例而已,并不用以限制本发明,凡在本发明的理念之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种基于异构无线传输调度的物理层安全优化方法
- 基于可信度的异构执行体动态调度装置及其调度方法
- 基于可信度的异构执行体动态调度装置及其调度方法