CN107194247B - 一种针对虚拟机回滚的软件补偿方法及系统 - Google Patents

一种针对虚拟机回滚的软件补偿方法及系统 Download PDF

Info

Publication number
CN107194247B
CN107194247B CN201710287868.8A CN201710287868A CN107194247B CN 107194247 B CN107194247 B CN 107194247B CN 201710287868 A CN201710287868 A CN 201710287868A CN 107194247 B CN107194247 B CN 107194247B
Authority
CN
China
Prior art keywords
rollback
variable
sensitive
control flow
node
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
Application number
CN201710287868.8A
Other languages
English (en)
Other versions
CN107194247A (zh
Inventor
金海�
代炜琦
杜玉堃
邹德清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201710287868.8A priority Critical patent/CN107194247B/zh
Publication of CN107194247A publication Critical patent/CN107194247A/zh
Application granted granted Critical
Publication of CN107194247B publication Critical patent/CN107194247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Abstract

本发明公开了一种针对虚拟机回滚的软件补偿方法及系统,属于虚拟化安全技术领域。本发明方法首先由目标软件源码生成代码信息,代码信息包括控制流信息,数据依赖信息以及抽象语法信息,再在线下预处理阶段采用代码分析技术抽取软件回滚敏感变量和控制流路径并生成回滚敏感状态表和回滚敏感控制流表,在软件运行时从域外虚拟机对目标软件中的回滚敏感状态进行监控记录,在监控到虚拟机回滚事件时从域外虚拟机对目标软件中回滚敏感状态进行补偿。本发明还实现了一种针对虚拟机回滚的软件补偿系统。本发明技术方案不需要对目标软件做特殊的改动,可从目标软件所在虚拟机外进行实时回滚保护。

Description

一种针对虚拟机回滚的软件补偿方法及系统
技术领域
本发明属于虚拟化安全技术领域,更具体地,涉及一种针对虚拟机回滚的软件补偿方法及系统。
背景技术
虚拟化技术实现系统资源的虚拟化,从而充分适应应用软件对系统资源多样化的需求。虚拟机回滚作为一项重要的虚拟化技术在虚拟化平台虚拟机管理方面起到了至关重要的作用。近些年来随着云计算的推广,在虚拟机回滚的可用性以及功能性方面被广泛的讨论。然而在虚拟机回滚带来的旧状态造成安全问题的方面却鲜有关注。
Garfinkel和Rosenblum最早发现虚拟机回滚存在严重的安全问题。虚拟机回滚机制本质是重放过去的虚拟机状态,能使虚拟机内部软件从错误状态恢复。然而这些旧状态在当前的时间角度上面来看并不是安全的。例如,登录模块当中的计数器变量,计录着当前账号的错误密码登入次数,大于三次之后将锁定账号防御暴力法破解密码。如果计数器被回滚到一个旧的值,基于计数器数值的安全防御手段将会失效,使登录模块可能遭受到密码暴力猜测攻击。针对这个问题,软件的状态补偿保护技术能够在回滚发生后,针对回滚对软件的变量状态以及控制流状态产生的不良影响进行状态补偿,保护软件的在回滚后的安全。
当前针对回滚的软件状态保护的方法主要是通过提供编程库给程序员使用,要求程序员对软件中需要保护的变量或者过程调用相应的库函数。同时在非易失性存储当中存储软件处理请求后的软件状态新鲜度记录,在回滚之后比较当前状态和非易失性存储中的记录是否一致。只允许接受和过去一样的外部请求,以使得自身的状态回到回滚之前,保持软件的状态连续性。
然而,上述方法存在一定的不足和局限性。(1)要求程序员要参与的方法,将会使得该技术的实用性下降。首先程序员必须学会编程库的使用方法以及了解软件中的哪些变量或者过程需要针对回滚的状态保护。尤其当该方法应用到类似于云平台的庞大平台当中,需要程序员参与的工作将会变得异常的复杂和庞大。(2)允许重放的方法只能够允许保护确定性模块,然而很多状态随机模块的安全性也会被回滚威胁,例如,随机数生成器由于回滚而使用了过期的随机数。(3)被动的处理方式,在回滚之后不处理新的状态请求,只允许重放过去的请求使得软件的状态达到连续后,才能继续地将软件的状态向前推进,接受新的请求。
综上所述,现有的软件状态补偿保护的方案存在如下不足:
过度的程序员的参与要求使得现存系统的应用推广存在障碍。采取允许重放用户请求的方式恢复状态导致只能够应用于确定性的软件。其次被动的恢复状态使得软件在状态恢复连续之前,都将处于不接受新请求的状态,影响了程序的可用性。
发明内容
针对现有技术的缺陷或改进需求,本发明提供了一种针对虚拟机回滚的软件补偿方法及系统,其目的在于线下的预处理阶段采用代码分析的软件回滚敏感变量和控制流路径生成回滚敏感状态表和回滚敏感控制流路径表,在软件运行时,从域外虚拟机对目标软件中的回滚敏感状态进行监控,监控到虚拟机回滚事件时对回滚敏感状态进行补偿,由此解决现有回滚补充技术存在的对使用者技术要求高和会中断保护软件运行等问题。
为实现上述目的,按照本发明的一个方面,提供了一种针对虚拟机回滚的软件补偿方法,该方法包括:
(1)由目标软件源码生成代码信息,代码信息包括控制流信息,程序依赖信息以及抽象语法信息;
(2)分析目标软件代码信息,抽取目标软件中的非确定性分支条件变量,将其作为回滚敏感变量加入回滚敏感变量表;
(3)分析目标软件代码信息,抽取目标软件中每个控制流节点和最近的支配节点,支配节点必须是回滚敏感变量所控制的分支节点且入度小于1,将当前控制流节点和支配节点的对应关系加入回滚敏感控制流表;
(4)目标软件运行过程中,从虚拟机外部持续监控虚拟机中目标软件内存空间中回滚敏感变量的变化并记录;
(5)监控回滚事件,发现虚拟机回滚时,回滚敏感变量表中具有随机性的回滚敏感变量保持随机,其他回滚敏感变量恢复为回滚发生前的最新状态;若被恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中对应点处。
进一步地,所述步骤(2)包括以下子步骤:
(21)分析目标代码信息,获取分支条件变量;
(22)排除分支条件变量中的确定性变量,剩余的作为回滚敏感变量;
(23)若回滚敏感变量是局部变量,则记录局部变量状态到回滚敏感变量表,局部变量状态包括变量偏移和变量关联的函数;若是全局与静态变量,则记录全局与静态变量状态到回滚敏感变量表,全局与静态变量状态包括变量虚拟地址。
进一步地,所述步骤(3)包括以下子步骤:
(31)遍历代码控制流中每一个节点,由当前遍历到的节点N和所有回滚敏感变量控制的分支节点重构控制流图;
(32)在重构控制流图中寻找节点N的最近支配节点M;
(33)若支配节点M的入度小于1,则将N和M的对应关系加入回滚敏感控制流表。
进一步地,所述步骤(4)包括以下子步骤:
(41)目标软件运行过程中,从虚拟机外部实时监控回滚敏感变量并记录变化值,将变量的变化记入回滚状态转换日志;
(42)为日志附加完整性保护信息。
进一步地,所述步骤(5)包括以下子步骤:
(51)监控保护目标软件所在虚拟机的回滚事件,当监测到回滚事件时启动状态补偿;
(52)回滚补偿,若回滚敏感变量是随机赋值的,则回滚后回滚敏感变量保持随机;否则回滚敏感变量根据回滚状态转换日志和回滚敏感变量表恢复为回滚前的最新状态;
(53)若当前恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中的对应点处。
按照本发明的另一方面,提供了一种针对虚拟机回滚的软件补偿系统,该系统包括:
源码处理模块,用于由目标软件源码生成代码信息,代码信息包括控制流信息,程序依赖信息以及抽象语法信息;
回滚敏感变量表模块,用于分析目标软件代码信息,抽取目标软件中的非确定性分支条件变量,将其作为回滚敏感变量加入回滚敏感变量表;
回滚敏感控制流表模块,用于分析目标软件代码信息,抽取目标软件中每个控制流节点和最近的支配节点,支配节点必须是回滚敏感变量所控制的分支节点且入度小于1,将当前控制流节点和支配节点的对应关系加入回滚敏感控制流表;
监控模块,用于在目标软件运行过程中,从虚拟机外部持续监控虚拟机中目标软件内存空间中回滚敏感变量的变化并记录;
回滚补偿模块,用于监控回滚事件,发现虚拟机回滚时,回滚敏感变量表中具有随机性的回滚敏感变量保持随机,其他回滚敏感变量恢复为回滚发生前的最新状态;若被恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中对应点处。
进一步地,所述回滚敏感变量表模块包括:
分析单元,用于分析目标软件代码信息,获取分支条件变量;
筛选单元,用于排除分支条件变量中的确定性变量,剩余的作为回滚敏感变量;
记录单元,用于判断若回滚敏感变量是局部变量,则记录局部变量状态到回滚敏感变量表,局部变量状态包括变量偏移和变量关联的函数;若是全局与静态变量,则记录全局与静态变量状态到回滚敏感变量表,全局与静态变量状态包括变量虚拟地址。
进一步地,所述回滚敏感控制流表模块包括:
重构单元,用于遍历代码控制流中每一个节点,由当前遍历到的节点N和所有回滚敏感变量控制的分支节点重构控制流图;
支配节点单元,用于在重构控制流图中寻找节点N的最近支配节点M;
判断记录单元,用于判断若支配节点M的入度小于1,则将N和M的对应关系加入回滚敏感控制流表。
进一步地,所述监控模块包括:
变化记录单元,用于目标软件运行过程中,从虚拟机外部实时监控回滚敏感变量并记录变化值,将变量的变化记入回滚状态转换日志;
附加信息单元,用于为日志附加完整性保护信息。
进一步地,所述回滚补偿模块包括:
回滚监控单元,用于监控保护目标软件所在虚拟机的回滚事件,当监测到回滚事件时启动状态补偿;
变量补偿单元,用于回滚补偿,若回滚敏感变量是随机赋值的,则回滚后回滚敏感变量保持随机;否则回滚敏感变量根据回滚状态转换日志和回滚敏感变量表恢复为回滚前的最新状态;
控制流补偿单元,用于判断若当前恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中的对应点处。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:
(1)通用性:本发明不要求保护目标软件运行前有特殊的架构或者经过特殊的改动。代码分析采用的代码信息均是抽象的数据结构表示,不涉及具体的编程语言。本发明不提供任何的编程库即可以对软件提供针对虚拟机回滚的安全保护;
(2)实时性:本发明可以在软件的运行时提供实时的持续的状态变化监控,所有针对回滚影响的软件状态补偿都将会在回滚发生的同时完成,不会造成软件长时间的不可用;
(3)实用性:本发明的软件状态补偿过程可以在完全无人参与的情况下自动进行,可以被推广到云环境等虚拟化平台中需要保护的软件场景中去;
(4)细粒度的状态保护:本发明使用了代码分析技术对软件源码中的回滚敏感变量以及控制流进行了分析和定位,有针对性地细粒度补偿和保护软件当中的可能由于回滚而对软件造成安全威胁的状态;
(5)用户可操作性:本发明提供了自由的用户接口,允许用户为特殊的回滚需求定制的状态恢复策略。
附图说明
图1是本发明实施例的总流程图;
图2是基于代码分析软件的回滚敏感变量表建立流程;
图3是基于代码分析软件的回滚敏感控制流表建立流程。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明实施例包括以下步骤:
(1)获取需要进行保护的软件源码,通过Joern工具生成基于图数据库的代码信息CPG图(Code Property Graph)。CPG是由控制流图,程序依赖图以及抽象语法树这三类代码信息组合而成。
(2)利用静态代码分析抽取目标软件中的回滚敏感变量,此类变量在回滚之后产生的旧状态将威胁软件的安全状态。如图2所示,从控制流图中收集所有的分支节点,再针对每一个分支节点的抽象语法树上查找条件变量,仍然需要排除这些条件变量中与回滚无关的确定性变量。对所有的条件分支变量通过程序依赖图找到所有的定义语句的位置,根据该变量的定义方式,如果其调用了外界的函数或是其定义的语句在受外界调用函数返回值影响的分支内,那么将该变量的相关信息存入软件回滚敏感变量表,变量标识符,偏移或者地址,定义语句的位置,补偿策略,类型,长度,针对局部变量还需记录相关调用栈信息。
静态分析目标软件代码信息,抽取目标软件中的非确定性分支条件变量,将其加入回滚敏感变量表;包括以下子步骤:
(21)静态分析目标软件代码信息,获取分支条件变量:从程序控制流图中抽取分支条件变量,此类变量控制软件中的分支选择,在回滚之后的旧状态将导致软件进入不安全的分支而泄露机密。普通的数据变量由于回滚产生的旧状态并不会给软件带来安全威胁,本发明中判断一个变量是否会影响软件的安全主要基于该变量是否控制了分支语句。
(22)排除分支条件变量中的确定性变量:由于确定性的变量不会受到回滚的影响,变量的定义方式是否受到了外部函数调用的影响,可能是直接接受外部库函数的返回值,或者间接受到了该函数返回值的影响。通过判断条件变量的定义方式排除了分支条件变量当中的确定性变量,抽取分支条件变量当中的非确定性变量。由于确定性的变量无论回滚与否变量的变化都是一致的,因此在本发明中只关注非确定性变量,将其定义为软件回滚敏感变量。
(23)若回滚敏感变量是局部变量,则记录标识符、定义语句的位置、类型、长度、偏移和关联的函数到回滚敏感变量表;若是全局与静态变量,则记录标识符、定义语句的位置、类型、长度和变量的虚拟地址到回滚敏感变量表:
由于局部变量的位置是存储在栈空间,针对局部变量记录偏移以及关联的函数。全局变量的位置是存储在数据段,针对于全局与静态变量记录变量在虚拟地址中的地址。将两者都记录回滚敏感变量表,在表中将记录变量标识符,偏移或者地址,定义语句的位置,补偿策略,类型,长度,针对局部变量还需记录相关调用栈信息。
(3)静态分析目标软件代码信息,抽取目标软件中每个控制流节点和最近的支配节点,支配节点必须是回滚敏感变量所控制的分支节点且入度小于1,将当前控制流节点和支配节点的对应关系加入回滚敏感控制流表;
如图3所示,首先针对源码的控制流图中的每一个节点N,重新构造无环的控制流图,只留下当前节点N以及分支节点变量所控制的分支节点。其次针对当前节点N寻找当前节点的最近的支配节点M,即所有到节点N的路径都将会经过该支配节点M。如果不存在节点M,即节点N不在回滚敏感路径当中。从支配节点M出发将会覆盖从节点M到节点N之间的所有的分支判断。如果支配节点的入度小于等于1,则节点M是回滚敏感控制流路径的起始节点,将该节点映射关系(N,M)加入回滚敏感控制流路径表,否则删除支配节点M,重复计算支配节点。如果实现找到的节点M的入度大于1,那么代表着到达节点M的路径不是唯一的,节点M之前的状态也可能受到了回滚的影响,该节点M不能够代表回滚敏感控制流路径的起始节点,而是路径的中间节点。在回滚到节点N之后,从节点M重新执行可以修正所有到点N之间的分支,消除回滚影响。本步骤包含以下子步骤:
(31)针对控制流图中的每一个节点N,重新构造控制流图,只留下当前节点N以及分支节点变量所控制的分支节点。由于控制流图中的环的存在与否不会对针对回滚的程序流分析带来影响,因此在重构控制流图的过程中消除图中的环。
(32)针对当前节点N寻找当前节点的最近的支配节点M,如果不存在节点M,即节点N不在回滚敏感路径当中,从支配节点M出发将会覆盖从节点M到节点N之间的所有的分支判断,在回滚到节点N之后,从节点M出发可以修正所有到点N之间的分支,消除回滚影响。
(33)如果支配节点的入度小于1,则节点M是回滚敏感控制流路径的起始节点,将该节点映射关系(N,M)加入回滚敏感控制流表,否则删除支配节点M。如果实现找到的节点M的入度大于1,那么代表着到达节点M的路径不是唯一的,节点M之前的状态也可能受到了回滚的影响,则该节点M不能够代表回滚敏感控制流路径的起始节点,而是路径的中间节点。
(4)目标软件运行过程中,利用虚拟机自省技术在虚拟机外部持续监控虚拟机中目标软件内存空间中回滚敏感变量的变化并记录;包括以下子步骤:
(41)在虚拟机启动之前配置好虚拟机自省的相关参数以及保护目标软件的信息,例如,使用LibVMI需要根据虚拟机的内核判断来进行配置,标记内核中关键变量的位置;目标软件运行过程中,在回滚敏感变量的定义处动态插入断点中断,在回滚敏感变量的值发生更新的时候触发中断,记录此类变量的变化并记入回滚状态转换日志。
(42)为日志附加时间戳信息以及哈希摘要来保证日志的完整性。
(5)监控到虚拟机回滚事件时,挂起虚拟机启动状态补偿,回滚敏感变量表中随机赋值的回滚敏感变量保持随机,其他回滚敏感变量恢复为回滚前的最新状态;若回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点对应的起始点处;消除安全问题之后恢复虚拟机的运行状态;包括以下子步骤:
(51)设置钩子函数监控保护目标软件所在虚拟机的回滚事件,当监测到回滚事件时,挂起虚拟机;
(52)补偿回滚,若回滚敏感变量是随机赋值的,则回滚后回滚敏感变量保持随机;否则回滚敏感变量根据回滚状态转换日志和回滚敏感变量表恢复为回滚前的最新状态;
(53)若当前回滚点在回滚敏感控制流表中,则将软件控制流调整到对应的起始点处,使得被回滚跳过的分支判断能够以调整后的状态重新执行。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种针对虚拟机回滚的软件补偿方法,其特征在于,所述方法包括:
(1)由目标软件源码生成代码信息,代码信息包括控制流信息,程序依赖信息以及抽象语法信息;
(2)分析目标软件代码信息,抽取目标软件中的非确定性分支条件变量,将其作为回滚敏感变量加入回滚敏感变量表;
(3)分析目标软件代码信息,抽取目标软件中每个控制流节点和最近的支配节点,支配节点必须是回滚敏感变量所控制的分支节点且入度小于1,将当前控制流节点和支配节点的对应关系加入回滚敏感控制流表;
所述步骤(3)包括以下子步骤:
(31)遍历代码控制流中每一个节点,由当前遍历到的节点N和所有回滚敏感变量控制的分支节点重构控制流图;
(32)在重构控制流图中寻找节点N的最近支配节点M;
(33)若支配节点M的入度小于1,则将N和M的对应关系加入回滚敏感控制流表;
(4)目标软件运行过程中,从虚拟机外部持续监控虚拟机中目标软件内存空间中回滚敏感变量的变化并记录;
(5)监控回滚事件,发现虚拟机回滚时,回滚敏感变量表中具有随机性的回滚敏感变量保持随机,其他回滚敏感变量恢复为回滚发生前的最新状态;若被恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中对应点处。
2.根据权利要求1所述的一种针对虚拟机回滚的软件补偿方法,其特征在于,所述步骤(2)包括以下子步骤:
(21)分析目标代码信息,获取分支条件变量;
(22)排除分支条件变量中的确定性变量,剩余的作为回滚敏感变量;
(23)若回滚敏感变量是局部变量,则记录局部变量状态到回滚敏感变量表,局部变量状态包括变量偏移和变量关联的函数;若是全局与静态变量,则记录全局与静态变量状态到回滚敏感变量表,全局与静态变量状态包括变量虚拟地址。
3.根据权利要求1所述的一种针对虚拟机回滚的软件补偿方法,其特征在于,所述步骤(4)包括以下子步骤:
(41)目标软件运行过程中,从虚拟机外部实时监控回滚敏感变量并记录变化值,将变量的变化记入回滚状态转换日志;
(42)为日志附加完整性保护信息。
4.根据权利要求1所述的一种针对虚拟机回滚的软件补偿方法,其特征在于,所述步骤(5)包括以下子步骤:
(51)监控保护目标软件所在虚拟机的回滚事件,当监测到回滚事件时启动状态补偿;
(52)回滚补偿,若回滚敏感变量是随机赋值的,则回滚后回滚敏感变量保持随机;否则回滚敏感变量根据回滚状态转换日志和回滚敏感变量表恢复为回滚前的最新状态;
(53)若当前恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中的对应点处。
5.一种针对虚拟机回滚的软件补偿系统,其特征在于,所述系统包括:
源码处理模块,用于由目标软件源码生成代码信息,代码信息包括控制流信息,程序依赖信息以及抽象语法信息;
回滚敏感变量表模块,用于分析目标软件代码信息,抽取目标软件中的非确定性分支条件变量,将其作为回滚敏感变量加入回滚敏感变量表;
回滚敏感控制流表模块,用于分析目标软件代码信息,抽取目标软件中每个控制流节点和最近的支配节点,支配节点必须是回滚敏感变量所控制的分支节点且入度小于1,将当前控制流节点和支配节点的对应关系加入回滚敏感控制流表;
监控模块,用于在目标软件运行过程中,从虚拟机外部持续监控虚拟机中目标软件内存空间中回滚敏感变量的变化并记录;
回滚补偿模块,用于监控回滚事件,发现虚拟机回滚时,回滚敏感变量表中具有随机性的回滚敏感变量保持随机,其他回滚敏感变量恢复为回滚发生前的最新状态;若被恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中对应点处;
所述回滚敏感控制流表模块包括:
重构单元,用于遍历代码控制流中每一个节点,由当前遍历到的节点N和所有回滚敏感变量控制的分支节点重构控制流图;
支配节点单元,用于在重构控制流图中寻找节点N的最近支配节点M;
判断记录单元,用于判断若支配节点M的入度小于1,则将N和M的对应关系加入回滚敏感控制流表。
6.根据权利要求5所述的一种针对虚拟机回滚的软件补偿系统,其特征在于,所述回滚敏感变量表模块包括:
分析单元,用于分析目标软件代码信息,获取分支条件变量;
筛选单元,用于排除分支条件变量中的确定性变量,剩余的作为回滚敏感变量;
记录单元,用于判断若回滚敏感变量是局部变量,则记录局部变量状态到回滚敏感变量表,局部变量状态包括变量偏移和变量关联的函数;若是全局与静态变量,则记录全局与静态变量状态到回滚敏感变量表,全局与静态变量状态包括变量虚拟地址。
7.根据权利要求5所述的一种针对虚拟机回滚的软件补偿系统,其特征在于,所述监控模块包括:
变化记录单元,用于目标软件运行过程中,从虚拟机外部实时监控回滚敏感变量并记录变化值,将变量的变化记入回滚状态转换日志;
附加信息单元,用于为日志附加完整性保护信息。
8.根据权利要求5所述的一种针对虚拟机回滚的软件补偿系统,其特征在于,所述回滚补偿模块包括:
回滚监控单元,用于监控保护目标软件所在虚拟机的回滚事件,当监测到回滚事件时启动状态补偿;
变量补偿单元,用于回滚补偿,若回滚敏感变量是随机赋值的,则回滚后回滚敏感变量保持随机;否则回滚敏感变量根据回滚状态转换日志和回滚敏感变量表恢复为回滚前的最新状态;
控制流补偿单元,用于判断若当前恢复的回滚点在回滚敏感控制流表中,则将软件控制流调整到回滚点在回滚敏感控制流表中的对应点处。
CN201710287868.8A 2017-04-27 2017-04-27 一种针对虚拟机回滚的软件补偿方法及系统 Active CN107194247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710287868.8A CN107194247B (zh) 2017-04-27 2017-04-27 一种针对虚拟机回滚的软件补偿方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710287868.8A CN107194247B (zh) 2017-04-27 2017-04-27 一种针对虚拟机回滚的软件补偿方法及系统

Publications (2)

Publication Number Publication Date
CN107194247A CN107194247A (zh) 2017-09-22
CN107194247B true CN107194247B (zh) 2020-02-21

Family

ID=59873509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710287868.8A Active CN107194247B (zh) 2017-04-27 2017-04-27 一种针对虚拟机回滚的软件补偿方法及系统

Country Status (1)

Country Link
CN (1) CN107194247B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913779A (zh) * 2020-06-29 2020-11-10 中国科学院信息工程研究所 一种基于持续快照的虚拟机并行记录重放方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515320A (zh) * 2009-04-10 2009-08-26 中国科学院软件研究所 一种攻击时漏洞检测方法及其系统
CN102594849A (zh) * 2011-01-06 2012-07-18 阿里巴巴集团控股有限公司 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置
CN103473135A (zh) * 2013-09-23 2013-12-25 中国科学技术大学苏州研究院 虚拟化环境下自旋锁lhp现象的处理方法
CN104636401A (zh) * 2013-11-15 2015-05-20 中国石油天然气股份有限公司 一种scada系统数据回滚的方法及装置
CN105718325A (zh) * 2016-01-22 2016-06-29 北京航空航天大学 基于虚拟机集群的回滚方法及系统和服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515320A (zh) * 2009-04-10 2009-08-26 中国科学院软件研究所 一种攻击时漏洞检测方法及其系统
CN102594849A (zh) * 2011-01-06 2012-07-18 阿里巴巴集团控股有限公司 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置
CN103473135A (zh) * 2013-09-23 2013-12-25 中国科学技术大学苏州研究院 虚拟化环境下自旋锁lhp现象的处理方法
CN104636401A (zh) * 2013-11-15 2015-05-20 中国石油天然气股份有限公司 一种scada系统数据回滚的方法及装置
CN105718325A (zh) * 2016-01-22 2016-06-29 北京航空航天大学 基于虚拟机集群的回滚方法及系统和服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
云环境面向虚拟域的安全状态一致性保障机制研究;代炜琦等;《网络与信息安全学报》;20161031;第48-57页 *

Also Published As

Publication number Publication date
CN107194247A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
US11327828B2 (en) Process automation action repository and assembler
US8984331B2 (en) Systems and methods for automated memory and thread execution anomaly detection in a computer network
CN110851241A (zh) Docker容器环境的安全防护方法、装置及系统
US9021464B2 (en) Methods, systems and computer program products for rationalization of computer system configuration change data through correlation with product installation activity
CN105184166A (zh) 基于内核的安卓程序实时行为分析方法及系统
CN112613993B (zh) 交易数据处理方法、装置、计算机设备和存储介质
WO2021121382A1 (en) Security management of an autonomous vehicle
US20210357501A1 (en) Attack estimation device, attack estimation method, and attack estimation program
CN107194247B (zh) 一种针对虚拟机回滚的软件补偿方法及系统
CN114282234A (zh) 数据保护方法、装置、设备及存储介质
Nascimento et al. Shuttle: Intrusion recovery for paas
US8533523B2 (en) Data recovery in a cross domain environment
CN116610498A (zh) 基于对象存储的数据备份恢复方法、系统、设备及介质
CN105988885B (zh) 基于补偿回滚的操作系统故障自恢复方法
CN112597492B (zh) 一种基于Windows内核的二进制可执行文件更改监测方法
CN106856477B (zh) 一种基于局域网的威胁处理方法和装置
CN109739687A (zh) 一种基于Elasticsearch的快照管理系统及方法
US8474008B2 (en) Methods and devices for managing events linked to the security of the computer systems of aircraft
CN109344028B (zh) 一种免超级用户权限的进程行为监控装置与方法
CN105208035A (zh) 一种访问操作屏蔽方法及系统以及服务器设备
CN112671576B (zh) 一种Kafka集群安全控制服务的部署方法、装置及设备
CN116010165A (zh) 一种数据还原的方法、装置、设备及介质
CN114020512A (zh) 后台任务处理方法、装置、计算机设备和存储介质
Fakhouri An Autonomic Approach to Enhance Web Application Availability
WO2017146721A1 (en) Fault isolation in transaction logs

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