CN112733155B - 一种基于外部环境模型学习的软件强制安全防护方法 - Google Patents
一种基于外部环境模型学习的软件强制安全防护方法 Download PDFInfo
- Publication number
- CN112733155B CN112733155B CN202110120886.3A CN202110120886A CN112733155B CN 112733155 B CN112733155 B CN 112733155B CN 202110120886 A CN202110120886 A CN 202110120886A CN 112733155 B CN112733155 B CN 112733155B
- Authority
- CN
- China
- Prior art keywords
- model
- external environment
- model learning
- computer system
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000003993 interaction Effects 0.000 claims abstract description 16
- 230000007474 system interaction Effects 0.000 claims description 18
- 230000006399 behavior Effects 0.000 claims description 11
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 claims description 11
- 230000009191 jumping Effects 0.000 claims description 9
- 230000007704 transition Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于外部环境模型学习的软件强制安全防护方法,包括:针对外部计算机系统,获取外部计算机系统的历史运行日志并匹配MAT框架中成员查询的软件运行序列的执行结果,根据预设的第一模型学习算法对执行结果计算得到Mealy机模型,结合预设的规约对Mealy机模型分析得到违背规约的程序路径,根据违背规约的程序路径生成强制器;针对外部环境,获取内部系统的日志,提取其中外部环境和内部系统的交互事件序列作为观测序列,根据预设的第二模型学习算法对观测序列计算得到概率模型,通过概率模型生成监控器。本发明将学习过程与日志相结合,极大的提升了学习效率。
Description
技术领域
本发明涉及计算机系统领域,尤其涉及一种基于外部环境模型学习的软件强制安全防护方法。
背景技术
随着软件系统规模越来越大,逻辑越来越复杂,软件系统所处的环境越来越多变,与软件系统交互的对象越来越多元,加之软件开发人员在开发之初很难考虑周全,那么自然就会暴露出越来越多的软件安全问题。面对这些安全问题,现阶段采取的主要手段是根据经验来被动的弥补软件安全隐患。需要强力的漏洞挖掘工具和方法来尽早发现漏洞并修复,但实际上由于软件空间规模巨大,难以确保所有的漏洞都能被发现并修复,而且随着软件的发展演化,可能还会出现新的问题。
如果软件系统运行在一个不受外部恶意攻击,软件系统使用人员也能够严格的按照操作手册来使用软件的话,那么即使软件在设计上存在重大缺陷,这个缺陷也不会触发,这个软件系统也可以平稳的运行。但事实并不是这样,软件系统所处的环境非常多变,与软件系统交互的可能是正常的使用者,可能是恶意的攻击者,也有可能是另一个外部软件系统。我们无法确保一个软件系统是绝对无故障的,但是可以确保是相对无故障的,即保证软件系统是在满足一定安全性质的环境下运行的,异常或恶意的操作输入会被阻隔在这个环境之外,通过这种强制的手段,使得软件系统接收到的操作都是安全的。
通过对与软件系统交互的外部系统或环境进行建模,在软件系统和外部环境之间自动生成一个强制器,这个强制器根据外部环境的模型实时的监控软件系统的运行,具体来说是负责监控软件系统的操作输入,当其监测到外部输入会导致软件系统发生故障时,强制器则拒绝这个外部输入,即不会将这个不安全的操作输入传递给要防护的软件系统,从而保证要防护的系统的安全。
现阶段对黑盒系统进行模型学习采用的算法基本都是L*算法,尽管之后产生了众多对L*算法优化的学习算法,Angluin证明了可以使用所谓的成员查询和等价查询来学习有限自动机,提出了L*模型学习算法。尽管此后提出了更快的算法,但当今使用的最高效的学习算法都遵循了Angluin的“最低限度的教师(MAT)”方法。在MAT框架中,模型学习的过程可以看作一场游戏。在这个游戏中,学习者必须通过向教师提问来推断未知状态图的行为。教师知道状态图,以Mealy机为例,状态图是Mealy机M,要学习的黑盒系统称为SUL(SystemUnder Learning)。最初,学习者只知道M的输入集合和输出集合。学习者的任务是通过两种查询来学习M。一种是称为membership query(MQ)成员查询,即学习者给出输入序列,教师给出SUL的输出序列。第二种称为equivalence query(EQ)等价查询,即学习者询问目前构造的模型是否和SUL等价,如果等价,教师回答是,否则教师要返回给学习者一个反例,即一个输入序列,在该输入序列下,学习者构造的模型的输出和SUL的输出不同,然后学习者根据这个反例调整模型。最后在应用解决实际案例的时候都会面临一个问题,学习过程属于主动学习过程,其中的成员查询操作需要通过执行被学习的系统来获得对应输入的输出,而这个过程由于软件执行需要耗费时间,整个学习过程需要大量的成员查询操作,使得学习过程需要耗费大量的时间。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于外部环境模型学习的软件强制安全防护方法,将学习过程与日志相结合,极大的提升了学习效率。
为解决上述技术问题,本发明提出的技术方案为:
一种基于外部环境模型学习的软件强制安全防护方法,模型学习阶段包括以下步骤:
S1)判断与内部系统交互的对象类型,若为行为确定的外部计算机系统,跳转步骤S2),若为行为不确定的外部环境,跳转步骤S3),所述内部系统为要进行安全防护的系统;
S2)获取外部计算机系统的历史运行日志,在历史运行日志中查找MAT框架中成员查询的软件运行序列的执行结果,根据预设的第一模型学习算法将所述执行结果作为输入序列进行模型学习得到Mealy机模型,结合预设的规约对所述Mealy机模型分析得到违背规约的程序路径,根据违背规约的程序路径在内部系统和外部计算机系统之间生成强制器,结束并退出;
S3)获取内部系统的日志,提取日志中外部环境和内部系统的交互事件序列作为隐马尔科夫模型的观测序列,根据预设的第二模型学习算法和观测序列进行模型学习得到概率模型,通过概率模型在内部系统和外部环境之间生成监控器,结束并退出。
进一步的,步骤S2)具体包括:
S21)设置MAT框架中成员查询的软件运行序列,获取外部计算机系统的历史运行日志,在历史运行日志中匹配成员查询的软件运行序列,若存在匹配结果则获取软件运行序列的执行结果,若不存在匹配结果则按照软件运行序列执行外部计算机系统获得执行结果;
S22)将执行结果作为输入序列返回给配置有第一模型学习算法的模型学习工具进行模型学习得到Mealy机模型;
S23)将Mealy机模型和预设的规约输入模型检验工具得到模型检验结果以及违背规约的程序路径;
S24)根据违背规约的程序路径得到被违背的规约,在内部系统和外部环境之间生成强制器,将被违背的规约部署到强制器上。
进一步的,步骤S24)之后还包括运行时阶段的执行步骤,包括:
A1)强制器等待外部计算机系统交互,若收到外部计算机系统交互,进入下一步;
A2)若强制器发现外部计算机系统交互为不安全交互,执行强制行为,拒绝不安全交互。
进一步的,步骤A2)具体包括:
A21)强制器判断外部计算机系统交互是否违背了部署的规约,是则生成警报并进入下一步,否则将外部计算机系统交互传递给内部系统;
A22)人工判断是否为误报,是则将外部计算机系统交互传递给内部系统,将外部计算机系统交互作为MAT框架中等价查询的反例,将反例返回给配置有第一模型学习算法的模型学习工具并返回步骤S22),否则强制器禁止将外部计算机系统交互传递给内部系统,同时将禁止执行的信息反馈给外部计算机系统。
进一步的,步骤S2)中所述第一模型学习算法为L*算法及其变种算法。
进一步的,步骤S3)具体包括:
S31)获取内部系统的日志,提取日志中的事件序列作为观测序列;
S32)输入观测序列,选取隐马尔科夫模型参数初始值,根据第二模型学习算法对观测序列计算得到当前隐马尔科夫模型的隐马尔科夫模型参数;
S33)获取内部系统运行过程中产生的新数据的所有数据块,获取数据块中的观测序列,返回步骤S32)直到所有数据块遍历完毕;
S34)将当前隐马尔科夫模型作为概率模型,通过概率模型在内部系统和外部环境之间生成监控器。
进一步的,步骤S34)之后还包括运行时阶段的执行步骤,包括:
B1)监控器等待外部环境的操作输入,若收到外部环境的操作输入,进入下一步;
B2)监控器预测内部系统受攻击的概率是否超过阈值,是则进入下一步,否则允许外部环境的操作输入;
B3)监控器发出警报进行提醒。
进一步的,步骤B3)中还包括人工判断的步骤,具体包括:人工判断警报是否为误报,是则允许外部环境的操作输入并跳转步骤S31)将积累的新的日志加入新一轮的模型学习中,否则拒绝外部环境的操作输入。
进一步的,步骤S3)中所述第二模型学习算法为Baum-Welch算法。
与现有技术相比,本发明的优点在于:
1.本发明考虑到外部计算机系统的历史运行日志中就包含有程序的执行操作序列和运行结果等信息,即为成员查询所需要的信息,因此对于成员查询的一个软件运行序列,首先在日志中查找该序列,并将该序列的执行结果作为输入序列,这种在首先在日志中进行成员查询的学习方式,可以省去软件系统实际执行所耗费的时间,极大的提升了学习效率;
2.本发明针对与内部系统交互的是行为不确定的外部环境,选取外部环境的攻击进度作为模型的隐状态,即正常状态,开始攻击状态、攻击实施状态和攻击完成状态,提取内部系统的日志有效信息作为隐马尔科夫模型的观测序列,学习出外部环境的概率模型,从而完善了安全防护。
附图说明
图1为本发明实施例的框架示意图。
图2为本发明实施例中针对外部计算机系统的方法流程图。
图3为本发明实施例中针对外部环境的方法流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
当与要进行安全防护的系统交互的是一个行为确定的外部计算机系统时,Angluin提出的L*算法可以通过对一个黑盒系统进行问询而学习出其Mealy机。对于一个外部计算机系统,我们可以学习出其Mealy机模型,通过分析模型可以找到引发程序故障的操作或状态。因此我们尝试将Mealy机部署到强制器上,来对这个外部计算机系统进行监控,使得到达要进行安全防护的系统中的输入都是安全的。
当与要进行安全防护的系统交互的是行为不确定的外部环境时,外部环境包括环境或人,我们考率采用一个概率模型,通过学习出外部环境的隐马尔科夫模型,用来预测内部系统是否处于被攻击或即将发生故障的状态,利用强制器来拒绝这个外部环境的输入,从而保证程序的安全。
在下文,将要进行安全防护的系统称为内部系统。
如图1所示,本发明包括两个阶段:(1)模型学习阶段,在对软件系统进行防护之前,先对累积的大量历史运行日志进行有效信息提取,再对其进行学习,学习出不同外部环境对应的模型,再通过模型自动生成监控器或强制器。(2)运行时阶段,在这个阶段,监控器或强制器实时监控并收集软件系统的运行,保证到达软件系统的交互过程都是安全的,并且要根据软件系统产生的新运行信息进行模型更新,增强模型的准确性。
基于上述思路,本实施例提出一种基于外部环境模型学习的软件强制安全防护方法,模型学习阶段包括以下步骤:
S1)判断与内部系统交互的对象类型,若为行为确定的外部计算机系统,跳转步骤S2),若为行为不确定的外部环境,跳转步骤S3);
S2)获取外部计算机系统的历史运行日志,在历史运行日志中查找MAT框架中成员查询的软件运行序列的执行结果,根据预设的第一模型学习算法将所述执行结果作为输入序列进行模型学习得到Mealy机模型,结合预设的规约对所述Mealy机模型分析得到违背规约的程序路径,根据违背规约的程序路径在内部系统和外部计算机系统之间生成强制器,结束并退出;
S3)获取内部系统的日志,提取日志中外部环境和内部系统的交互事件序列作为隐马尔科夫模型的观测序列,根据预设的第二模型学习算法和观测序列进行模型学习得到概率模型,通过概率模型在内部系统和外部环境之间生成监控器,结束并退出。
通过上述步骤,本实施例针对与内部系统交互的不同对象分别进行学习得到对应的模型并生成不同的强制器或监控器,可以完善对于内部系统的安全防护。
如图2所示,本实施例的步骤S2)具体包括:
S21)设置MAT框架中成员查询的软件运行序列,获取外部计算机系统的历史运行日志,在历史运行日志中匹配成员查询的软件运行序列,若存在匹配结果则获取软件运行序列的执行结果,若不存在匹配结果则按照软件运行序列执行外部计算机系统获得执行结果;
考虑到软件系统的历史运行日志中就包含有程序的执行操作序列和运行结果等信息,即为成员查询所需要的信息,因此对于成员查询的一个软件运行序列,首先在历史运行日志中查找该序列,并将该序列的执行结果返回,这种在首先在日志中进行成员查询的学习方式,可以省去软件系统实际执行所耗费的时间,极大的提升了学习效率;
S22)将执行结果作为输入序列返回给配置有第一模型学习算法的模型学习工具进行模型学习得到Mealy机模型,本实施例中第一模型学习算法为L*算法及其变种算法,模型学习工具为learnlib,learnlib实现了L*算法及其变种算法,我们可以利用learnlib来对软件系统进行模型学习;
S23)将Mealy机模型和预设的规约输入模型检验工具得到模型检验结果以及违背规约的程序路径;
软件系统的运行应该符合一定的安全规约,例如在java Iterator类中,在调用next()方法之前应该调用hasnext()方法确认Iterator是否已经到达末尾,这里next()方法须在先调用hasnext()方法且返回值为真的前提下才可以被调用就是一条安全规约,因此我们将前一阶段学习出的模型和安全规约做模型检验,来验证软件系统是否满足这些安全规约,本实施例中采用模型检验工具NuSMV来进行模型检验,输入包含待测模型和规约的文件,即可得到模型检验结果,结果显示哪些规约被满足,哪些规约被违背,并且给出一条违背规约的模型路径;
S24)根据违背规约的程序路径得到被违背的规约,在内部系统和外部环境之间生成强制器,将被违背的规约部署到强制器上;
通过前一阶段的模型检验,我们可以知道外部计算机系统满足哪些安全规约,违背哪些安全规约。其中,外部计算机系统违背的安全规约是本方法着重考虑的。若违背规约即至少存在一条程序路径违背安全规约,本实施例采用开源工具JavaMop来生成强制器。JavaMOP是一个用于Java的MOP实例。本实施例根据MOP编写规范,编写好被违背的规约的event,将规约用event表述以及当在运行时违反规约时要运行的代码,当外部计算机系统在运行时违背了安全规约时,强制器禁止将违反规约的事件传递给内部系统,从而保证了内部系统的安全运行,同时将禁止执行的信息反馈给外部计算机系统,外部计算机系统根据违背的规约重新进行正确操作;
如图2所示,步骤S24)之后还包括运行时阶段的执行步骤,包括:
A1)强制器等待外部计算机系统交互,若收到外部计算机系统交互,进入下一步;
A2)若强制器发现外部计算机系统交互为不安全交互,执行强制行为,拒绝不安全交互,具体包括:
A21)强制器判断外部计算机系统交互是否违背了部署的规约,是则生成警报并进入下一步,否则将外部计算机系统交互传递给内部系统;
A22)人工判断是否为误报,是则将外部计算机系统交互传递给内部系统,将外部计算机系统交互作为MAT框架中等价查询的反例,将反例返回给模型学习工具为learnlib并返回步骤S22),否则强制器禁止将外部计算机系统交互传递给内部系统,同时将禁止执行的信息反馈给外部计算机系统。
通过上述步骤,运行时阶段强制器实时监控外部计算机系统的交互,保证内部系统的安全,同时通过人工甄别将误报处理后将对应作为外部计算机系统交互作为MAT框架中等价查询的反例调整Mealy机模型以及强制器。
本实施例中将隐马尔可夫模型作为概率模型,隐马尔科夫模型(HMM)是一种有向动态贝叶斯网络图,结构简单,主要用于时序数据建模,语音识别和自然语言处理。HMM有两组变量。第一组称为隐藏或状态变量Y={y1,…,yn},其中yi表示在时间t=i时是隐藏的,不可观察的状态。假设模型中所有状态的数量为N,即状态空间S={s1,…,sN},我们有yi∈S。第二组称为观察变量或显示状态X={x1,…,xn},其中xj表示可以在t=j处直接观察到的状态。观察到的变量可以是连续的也可以是离散的。这里我们只考虑离散变量,因为在我们的工作中监控的系统是离散时间系统。假设观测变量的数量是M,即观测空间O={o1,…,oM},我们有xj∈O。HMM具有以下属性:(1)隐藏状态的变化是一个离散时间马尔科夫链,即过程(y1→y2→…→yn)与马尔科夫性质一致。(2)观察到的变量xt由隐藏变量yt确定,并且与其他观察或隐藏变量无关。在实际应用中,如何基于样本集学习最优模型参数是人们经常关注的基本问题之一。它可以被描述为:给定观察序列x={x1,…xn},如何学习模型参数λ=[A,B,π]以最大化序列的出现概率P(x|λ),其中,A=[aij]N×N是状态转移概率矩阵,aij=P(it+1=qj|it=qi)是状态转移概率,i=1,2,…,N,j=1,2,…,N,B=[bj(k)]N×M是观测概率矩阵,bj(k)=P(ot=vk|it=qj)是观测概率,k=1,2,…,M;j=1,2,…,N,π=(πi)是初始状态概率向量,πi=P(i1=qi),i=1,2,…,N,是时刻t=1处于状态qi的概率。
考虑外部环境和内部系统的交互过程最终都会体现在内部系统的日志里,因此可以提取内部系统的日志中外部环境和内部系统的交互事件序列作为隐马尔科夫模型的观测序列,那么事件即为模型的观测状态,本方法中假设外部环境的攻击进度作为模型的隐状态,即正常状态S0,开始攻击状态S1、攻击实施状态S2和攻击完成状态S3。
如图3所示,本实施例的步骤S3)具体包括:
S31)获取内部系统的日志,提取日志中的事件序列作为观测序列;
S32)输入观测序列,选取隐马尔科夫模型参数初始值,根据第二模型学习算法对观测序列计算得到当前隐马尔科夫模型的隐马尔科夫模型参数;
本实施例中第二模型学习算法为Baum-Welch算法,Baum-Welch算法实际上是EM算法在隐马尔科夫模型学习中的具体实现,首先选取参数的初值,然后迭代计算参数的估计值,直至参数收敛为止,Baum-Welch算法的具体步骤如下:
输入:观测序列O=(o1,o2,…,oT);
输出:隐马尔科夫模型参数λ=(A,B,π);
①初始化,对n=0,
选取得到隐马尔科夫模型参数λ(0)=(A(0),B(0),π(0));
②递推,对n=1,2,…,
其中γt(i)为在时刻t处于状态qi的概率,记γt(i)=P(it=qi|O,λ),ξt(i,j)为在时刻t处于状态qi且在时刻t+1处于状态qj的概率,记ξt(i,j)=P(it=qi,it+1=qj|O,λ);
右端各值通过观测序列O=(o1,o2,…,oT)和λ(n-1)=(A(n-1),B(n-1),π(n-1))计算;
③参数收敛,终止,得到模型参数λ(n)=(A(n),B(n),π(n));
S33)获取内部系统运行过程中产生的新数据的所有数据块,获取数据块中的观测序列,返回步骤S32)直到所有数据块遍历完毕;
内部系统的不断运行会不断的产生新的数据,因此需要采用增量的学习方式来实时更新隐马尔科夫模型参数以达到比较好的预测效果,本实施例采用数据块迭代的增量学习方法来更新模型,在该方法中新数据是以数据块的方式给出的,在每个数据块中有R条观测序列,该方法以原来学习出的参数λ0为基础,在一个数据块Ω内对每条序列按照Baum-Welch算法依次进行学习,在对第R条序列学习结束后,得到参数这为块内一次迭代的结果,在块内不断进行迭代直至达到终止条件,得到参数λ1,用同样的方法在下一个数据块内进行学习,所有数据块遍历完毕后最终得到新的隐马尔科夫模型参数,此时得到了最新的隐马尔科夫模型;
S34)将当前隐马尔科夫模型作为概率模型,通过概率模型在内部系统和外部环境之间生成监控器;
基于Baum-Welch算法学习出的隐马尔科夫模型,给定了隐马尔科夫模型参数λ和观测序列O,计算时刻T处于状态qi的概率即可判断是否接受外部环境的操作输入,qi∈{S0,S1,S2,S3},S0为正常状态,S1为开始攻击状态,S2为攻击实施状态,S3为攻击完成状态,计算过程如下:
计算前向概率αt(i),αt(i)为给定隐马尔科夫模型参数λ,到时刻t部分观测序列为o1,o2,…,ot且状态为qi的概率,记作αt(i)=P(o1,o2,…,ot,it=qi|λ);
可以用递推的方法求得前向概率αt(i):
上式中,αt-1(j)为到时刻t-1部分观测序列为o1,o2,…,ot-1且状态为qj的概率,aji是状态转移概率,bi(ot)是观测序列o1,o2,…,ot的观测概率;
计算后向概率βt(i),βt(i)为给定隐马尔科夫模型参数λ,在时刻t状态为qi的条件下,从t+1到T的部分观测序列ot+1,ot+2,…,oT的概率,记作βt(i)=P(ot+1,ot+2,…,oT|it=qi,λ);
可以用递推的方法求得后向概率βt(i):
上式中,βt+1(j)为在时刻t+1状态为qj的条件下,从t+2到T的部分观测序列ot+2,ot+3,…,oT的概率,当t=T-1时,βt+1(j)=βT(j)=1,aji是状态转移概率,bj(ot+1)是观测序列ot+1,ot+2,…,oT的观测概率;
通过前向概率αt(i)和后向概率βt(i)计算得到计算时刻t处于状态qi的概率:
上式中,αt(j)为到时刻t部分观测序列为o1,o2,…,ot且状态为qj的概率,βt(j)为在时刻t状态为qj的条件下,从t+1到T的部分观测序列ot+1,ot+2,…,oT的概率。
监控器计算当前时刻t,外部环境处于开始攻击状态S1、攻击实施状态S2和攻击完成状态S3的概率。由于是实时的计算概率,所以后验概率为1,则状态概率公式为:
当概率值超过指定的阈值时,监视器发出警报;
如图3所示,本实施例的步骤S34)之后还包括运行时阶段的执行步骤,包括:
B1)监控器等待外部环境的操作输入,若收到外部环境的操作输入,进入下一步;
B2)监控器预测内部系统受攻击的概率是否超过阈值,是则进入下一步,否则允许外部环境的操作输入;
B3)监控器发出警报进行提醒。
本实施例中,由于概率模型预测存在误报的情况,此时可以人为的去判断是接收还是拒绝该操作输入,因此步骤B3)中还包括人工判断的步骤,具体包括:人工判断警报是否为误报,是则允许外部环境的操作输入并跳转步骤S31)将积累的新的日志加入新一轮的模型学习中,否则拒绝外部环境的操作输入。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (9)
1.一种基于外部环境模型学习的软件强制安全防护方法,其特征在于,模型学习阶段包括以下步骤:
S1)判断与内部系统交互的对象类型,若为行为确定的外部计算机系统,跳转步骤S2),若为行为不确定的外部环境,跳转步骤S3),所述内部系统为要进行安全防护的系统;
S2)获取外部计算机系统的历史运行日志,在历史运行日志中查找MAT框架中成员查询的软件运行序列的执行结果,根据预设的第一模型学习算法将所述执行结果作为输入序列进行模型学习得到Mealy机模型,结合预设的规约对所述Mealy机模型分析得到违背规约的程序路径,根据违背规约的程序路径在内部系统和外部计算机系统之间生成强制器,结束并退出;
S3)获取内部系统的日志,提取日志中外部环境和内部系统的交互事件序列作为隐马尔科夫模型的观测序列,根据预设的第二模型学习算法和观测序列进行模型学习得到概率模型,通过概率模型在内部系统和外部环境之间生成监控器,结束并退出。
2.根据权利要求1所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤S2)具体包括:
S21)设置MAT框架中成员查询的软件运行序列,获取外部计算机系统的历史运行日志,在历史运行日志中匹配成员查询的软件运行序列,若存在匹配结果则获取软件运行序列的执行结果,若不存在匹配结果则按照软件运行序列执行外部计算机系统获得执行结果;
S22)将执行结果作为输入序列返回给配置有第一模型学习算法的模型学习工具进行模型学习得到Mealy机模型;
S23)将Mealy机模型和预设的规约输入模型检验工具得到模型检验结果以及违背规约的程序路径;
S24)根据违背规约的程序路径得到被违背的规约,在内部系统和外部环境之间生成强制器,将被违背的规约部署到强制器上。
3.根据权利要求2所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤S24)之后还包括运行时阶段的执行步骤,包括:
A1)强制器等待外部计算机系统交互,若收到外部计算机系统交互,进入下一步;
A2)若强制器发现外部计算机系统交互为不安全交互,执行强制行为,拒绝不安全交互。
4.根据权利要求3所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤A2)具体包括:
A21)强制器判断外部计算机系统交互是否违背了部署的规约,是则生成警报并进入下一步,否则将外部计算机系统交互传递给内部系统;
A22)人工判断是否为误报,是则将外部计算机系统交互传递给内部系统,将外部计算机系统交互作为MAT框架中等价查询的反例,将反例返回给配置有第一模型学习算法的模型学习工具并返回步骤S22),否则强制器禁止将外部计算机系统交互传递给内部系统,同时将禁止执行的信息反馈给外部计算机系统。
5.根据权利要求1所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤S2)中所述第一模型学习算法为L*算法及其变种算法。
6.根据权利要求1所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤S3)具体包括:
S31)获取内部系统的日志,提取日志中的事件序列作为观测序列;
S32)输入观测序列,选取隐马尔科夫模型参数初始值,根据第二模型学习算法对观测序列计算得到当前隐马尔科夫模型的隐马尔科夫模型参数;
S33)获取内部系统运行过程中产生的新数据的所有数据块,获取数据块中的观测序列,返回步骤S32)直到所有数据块遍历完毕;
S34)将当前隐马尔科夫模型作为概率模型,通过概率模型在内部系统和外部环境之间生成监控器。
7.根据权利要求6所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤S34)之后还包括运行时阶段的执行步骤,包括:
B1)监控器等待外部环境的操作输入,若收到外部环境的操作输入,进入下一步;
B2)监控器预测内部系统受攻击的概率是否超过阈值,是则进入下一步,否则允许外部环境的操作输入;
B3)监控器发出警报进行提醒。
8.根据权利要求7所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤B3)中还包括人工判断的步骤,具体包括:人工判断警报是否为误报,是则允许外部环境的操作输入并跳转步骤S31)将积累的新的日志加入新一轮的模型学习中,否则拒绝外部环境的操作输入。
9.根据权利要求1所述的基于外部环境模型学习的软件强制安全防护方法,其特征在于,步骤S3)中所述第二模型学习算法为Baum-Welch算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120886.3A CN112733155B (zh) | 2021-01-28 | 2021-01-28 | 一种基于外部环境模型学习的软件强制安全防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120886.3A CN112733155B (zh) | 2021-01-28 | 2021-01-28 | 一种基于外部环境模型学习的软件强制安全防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733155A CN112733155A (zh) | 2021-04-30 |
CN112733155B true CN112733155B (zh) | 2024-04-16 |
Family
ID=75594390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110120886.3A Active CN112733155B (zh) | 2021-01-28 | 2021-01-28 | 一种基于外部环境模型学习的软件强制安全防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733155B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890735A (zh) * | 2012-07-09 | 2013-01-23 | 南京南瑞继保电气有限公司 | 稳控装置的策略表和策略搜索匹配的建模方法 |
CN104767744A (zh) * | 2015-03-25 | 2015-07-08 | 中国人民解放军理工大学 | 基于协议知识的协议状态机主动推断方法 |
FR3060147A1 (fr) * | 2016-12-12 | 2018-06-15 | Universite Paris Est Creteil Val De Marne | Procede de caracterisation d'un cycle de marche d'un sujet au moyen d'un modele de markov cache |
CN111092775A (zh) * | 2019-12-30 | 2020-05-01 | 河南省云迈瀚海电子科技有限公司 | 基于模型学习的网络协议安全测试评估方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2329376A1 (en) * | 2008-08-15 | 2011-06-08 | Verum Holding B.V. | A method and system for testing complex machine control software |
US20120151271A1 (en) * | 2010-12-10 | 2012-06-14 | Nec Laboratories America, Inc. | Mat-reduced symbolic analysis |
-
2021
- 2021-01-28 CN CN202110120886.3A patent/CN112733155B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890735A (zh) * | 2012-07-09 | 2013-01-23 | 南京南瑞继保电气有限公司 | 稳控装置的策略表和策略搜索匹配的建模方法 |
CN104767744A (zh) * | 2015-03-25 | 2015-07-08 | 中国人民解放军理工大学 | 基于协议知识的协议状态机主动推断方法 |
FR3060147A1 (fr) * | 2016-12-12 | 2018-06-15 | Universite Paris Est Creteil Val De Marne | Procede de caracterisation d'un cycle de marche d'un sujet au moyen d'un modele de markov cache |
CN111092775A (zh) * | 2019-12-30 | 2020-05-01 | 河南省云迈瀚海电子科技有限公司 | 基于模型学习的网络协议安全测试评估方法 |
Non-Patent Citations (1)
Title |
---|
对自动机模型学习问题的分析与研究;张圣迪;;电脑知识与技术;20190405(第10期);177-179 * |
Also Published As
Publication number | Publication date |
---|---|
CN112733155A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102118670B1 (ko) | Ict 인프라 관리 시스템 및 이를 이용한 ict 인프라 관리 방법 | |
Vodenčarević et al. | Identifying behavior models for process plants | |
Huang et al. | Application of Bayesian network to data-driven cyber-security risk assessment in SCADA networks | |
CN112069726A (zh) | 一种基于贝叶斯网络的风险分析评估方法及装置 | |
WO2014173257A1 (zh) | 操作员状态评估的可靠性分析方法及装置 | |
Chakrabarty et al. | Anomaly based intrusion detection system using genetic algorithm and K-centroid clustering | |
Dou et al. | Pc 2 a: predicting collective contextual anomalies via lstm with deep generative model | |
Huang et al. | An experimental method to estimate running time of evolutionary algorithms for continuous optimization | |
Gao et al. | Energy-based learning for preventing backdoor attack | |
Zhao et al. | Predicting performance anomalies in software systems at run-time | |
Qin et al. | Association analysis-based cybersecurity risk assessment for industrial control systems | |
Kriaa et al. | A new safety and security risk analysis framework for industrial control systems | |
Angelini et al. | An attack graph-based on-line multi-step attack detector | |
Xie et al. | Fairness testing of machine learning models using deep reinforcement learning | |
Wang et al. | Incremental causal graph learning for online root cause analysis | |
CN117692242A (zh) | 一种基于图谱分析的网络攻击路径分析方法 | |
CN112733155B (zh) | 一种基于外部环境模型学习的软件强制安全防护方法 | |
CN117580046A (zh) | 一种基于深度学习的5g网络动态安全能力调度方法 | |
Catta et al. | A game theoretic approach to attack graphs | |
Winkelvos et al. | A property based security risk analysis through weighted simulation | |
Mohammadi et al. | Machine learning assisted stochastic unit commitment: A feasibility study | |
CN114973539A (zh) | Atm维修人员的监控方法及装置 | |
US20240103920A1 (en) | Method and system for accelerating the convergence of an iterative computation code of physical parameters of a multi-parameter system | |
WO2021095101A1 (ja) | 学習装置、検知装置、学習方法、及び異常検知方法 | |
Chelak et al. | Method of computer system state identification based on boosting ensemble with special preprocessing procedure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |