一种基于外部环境模型学习的软件强制安全防护方法技术

技术编号:28295889 阅读:19 留言:0更新日期:2021-04-30 16:20
本发明专利技术公开了一种基于外部环境模型学习的软件强制安全防护方法,包括:针对外部计算机系统,获取外部计算机系统的历史运行日志并匹配MAT框架中成员查询的软件运行序列的执行结果,根据预设的第一模型学习算法对执行结果计算得到Mealy机模型,结合预设的规约对Mealy机模型分析得到违背规约的程序路径,根据违背规约的程序路径生成强制器;针对外部环境,获取内部系统的日志,提取其中外部环境和内部系统的交互事件序列作为观测序列,根据预设的第二模型学习算法对观测序列计算得到概率模型,通过概率模型生成监控器。本发明专利技术将学习过程与日志相结合,极大的提升了学习效率。

【技术实现步骤摘要】
一种基于外部环境模型学习的软件强制安全防护方法
本专利技术涉及计算机系统领域,尤其涉及一种基于外部环境模型学习的软件强制安全防护方法。
技术介绍
随着软件系统规模越来越大,逻辑越来越复杂,软件系统所处的环境越来越多变,与软件系统交互的对象越来越多元,加之软件开发人员在开发之初很难考虑周全,那么自然就会暴露出越来越多的软件安全问题。面对这些安全问题,现阶段采取的主要手段是根据经验来被动的弥补软件安全隐患。需要强力的漏洞挖掘工具和方法来尽早发现漏洞并修复,但实际上由于软件空间规模巨大,难以确保所有的漏洞都能被发现并修复,而且随着软件的发展演化,可能还会出现新的问题。如果软件系统运行在一个不受外部恶意攻击,软件系统使用人员也能够严格的按照操作手册来使用软件的话,那么即使软件在设计上存在重大缺陷,这个缺陷也不会触发,这个软件系统也可以平稳的运行。但事实并不是这样,软件系统所处的环境非常多变,与软件系统交互的可能是正常的使用者,可能是恶意的攻击者,也有可能是另一个外部软件系统。我们无法确保一个软件系统是绝对无故障的,但是可以确保是相对无故障的,即保证软件系统是在满足一定安全性质的环境下运行的,异常或恶意的操作输入会被阻隔在这个环境之外,通过这种强制的手段,使得软件系统接收到的操作都是安全的。通过对与软件系统交互的外部系统或环境进行建模,在软件系统和外部环境之间自动生成一个强制器,这个强制器根据外部环境的模型实时的监控软件系统的运行,具体来说是负责监控软件系统的操作输入,当其监测到外部输入会导致软件系统发生故障时,强制器则拒绝这个外部输入,即不会将这个不安全的操作输入传递给要防护的软件系统,从而保证要防护的系统的安全。现阶段对黑盒系统进行模型学习采用的算法基本都是L*算法,尽管之后产生了众多对L*算法优化的学习算法,Angluin证明了可以使用所谓的成员查询和等价查询来学习有限自动机,提出了L*模型学习算法。尽管此后提出了更快的算法,但当今使用的最高效的学习算法都遵循了Angluin的“最低限度的教师(MAT)”方法。在MAT框架中,模型学习的过程可以看作一场游戏。在这个游戏中,学习者必须通过向教师提问来推断未知状态图的行为。教师知道状态图,以Mealy机为例,状态图是Mealy机M,要学习的黑盒系统称为SUL(SystemUnderLearning)。最初,学习者只知道M的输入集合和输出集合。学习者的任务是通过两种查询来学习M。一种是称为membershipquery(MQ)成员查询,即学习者给出输入序列,教师给出SUL的输出序列。第二种称为equivalencequery(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)中还包括人工判断的步骤,具体本文档来自技高网
...

【技术保护点】
1.一种基于外部环境模型学习的软件强制安全防护方法,其特征在于,模型学习阶段包括以下步骤:/nS1)判断与内部系统交互的对象类型,若为行为确定的外部计算机系统,跳转步骤S2),若为行为不确定的外部环境,跳转步骤S3),所述内部系统为要进行安全防护的系统;/nS2)获取外部计算机系统的历史运行日志,在历史运行日志中查找MAT框架中成员查询的软件运行序列的执行结果,根据预设的第一模型学习算法将所述执行结果作为输入序列进行模型学习得到Mealy机模型,结合预设的规约对所述Mealy机模型分析得到违背规约的程序路径,根据违背规约的程序路径在内部系统和外部计算机系统之间生成强制器,结束并退出;/nS3)获取内部系统的日志,提取日志中外部环境和内部系统的交互事件序列作为隐马尔科夫模型的观测序列,根据预设的第二模型学习算法和观测序列进行模型学习得到概率模型,通过概率模型在内部系统和外部环境之间生成监控器,结束并退出。/n

【技术特征摘要】
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)...

【专利技术属性】
技术研发人员:董威陶崇民周戈史浩刘万伟尹良泽
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1