一种基于版本控制的在线快照管理方法和系统与流程

文档序号:12271119阅读:301来源:国知局
一种基于版本控制的在线快照管理方法和系统与流程

本发明属于计算机安全领域,更具体地,涉及一种基于版本控制的在线快照管理方法和系统。



背景技术:

随着信息技术的飞速发展,网络与信息技术的加速渗透和深度应用以及软件漏洞不断涌现,导致计算机相关的犯罪行为也日益增多,造成了严重的网络安全威胁。美国战略与国际问题研究中心(CSIS)发布的一份报告显示,网络犯罪每年给全球带来大约4450亿美元的经济损失。计算机取证是打击计算机与网络犯罪的关键技术,其目的是将计算机中犯罪者遗留的攻击痕迹提取出,作为有效的诉讼证据提供给法庭,以便将犯罪者绳之以法。计算机取证,经过近15年的发展,取得了巨大的成功。随着虚拟机技术在云计算、系统安全等领域的广泛应用,基于虚拟机的计算机取证得到了迅速的关注与研究。理论上来说,恶意程序最多对操作系统进行攻击,而无法影响到处于更高级别的虚拟机管理器,因此基于虚拟机的取证相对传统的取证方法要可靠些。现有的取证方法主要关注于方法的精准性、可靠性、可用性,关注于某一时间点的系统状态。然而恶意软件的攻击,通常是一个持续的过程,需要通过虚拟机进行多次快照,对整个攻击过程进行记录。另外,云中存在非常多的虚拟机,如何进行快照,不对系统的运行造成影响。最后,如何对快照进行自动化管理,根据取证软件需求提供相应的快照。这些都是非常具有挑战的。因此,迫切的需要一套在线取证分析系统,为虚拟机提供快照管理,快照分析,提供统一的自动化管理。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于版本控制的在线快照管理方法和系统,其目的在于;当被监控虚拟机发送特殊事件时,本发明获取新增脏页并生成增量快照,再合并一定增量快照生成全系统基快照,截取基快照中请求时间、请求地址和请求线程生成请求快照,对快照中的内容进行翻译处理,由此解决对恶意攻击过程全程和降低系统开销记录的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于版本控制的在线快照管理方法,该方法包括以下步骤;

(1)增量快照储存管理:

(11)监控虚拟机的运行状态,当被监控虚拟机发生系统调用或进程切换时,将进程名称、事件原因和事件时间信息存放到固定物理内存区间中,再通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行增量快照处理;

(12)虚拟机管理器(hypervisor)将控制权移交给被监控虚拟机对应的存储例程,存储例程读取虚拟机管理器保存的被监控虚拟机扩展页表指针(EPTP),遍历其指向的页表,找出新增脏页,然后根据新增脏页的物理页帧生成对应的宿主机虚地址页帧;

(13)从固定物理内存区间中读取进程名称、事件原因和事件时间作为当前提交增量快照的初始元数据,通过对应新增脏页的宿主机虚地址页帧,复制对应新增脏页并存入数据库中,生成增量快照,最后根据数据库容量设置阈值,存储的增量快照容量超出阈值后自动对最早期时间段内的增量快照进行合并操作,并将合并后增量快照作为对应被监控虚拟机的基快照;

(2)请求快照生成分析:

(21)根据请求应用的快照生成请求读取物理内存,若发现内存中有对应快照则对快照信息进行机器语言到应用语言的翻译,并将翻译结果提交给请求应用,结束流程;否则为每个请求应用生成一个前端请求例程;

(22)前端请求例程将快照请求的时间信息和地址范围信息放入一个环形消息队列中,并设定一个时间阀值;当环形队列满或者超时时,通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行快照生成;

(23)虚拟机管理器(hypervisor)为环形队列中的每个快照生成请求初始化一个后端请求例程,后端请求例程首先对相应的快照生成请求按照虚拟机编号A、时间B、地址范围C到D和进程E进行格式化处理;

(24)获取快照生成请求的格式化信息,当前被监控虚拟机A的基快照为F时刻的全系统快照,分析数据库中F时刻到B时刻虚拟机A所有增量快照的元数据,提取出该时间段内新增脏页的物理页帧,找出最接近B时刻的新增脏页对应的增量快照,对数据库中基快照进行修改更新,生成虚拟机A在B时刻的全系统快照K,再截取地址范围C到D的E线程快照内容生成快照存储到物理内存中。

按照本发明的另一方面,提供了一种基于版本控制的在线快照管理系统,该系统包括以下模块;

内核事件通知驱动模块,用于监控虚拟机的运行状态,当被监控虚拟机发生系统调用或进程切换时,将进程名称、事件原因和事件时间信息存放到固定物理内存区间中,再通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行增量快照处理;

快照库增量处理模块,用于将控制权移交给被监控虚拟机对应的存储例程,存储例程读取虚拟机管理器保存的被监控虚拟机扩展页表指针(EPTP),遍历其指向的页表,找出新增脏页,然后根据新增脏页的物理页帧生成对应的宿主机虚地址页帧;

快照版本控制库模块,用于从固定物理内存区间中读取进程名称、事件原因和事件时间作为当前提交增量快照的初始元数据,通过对应新增脏页的宿主机虚地址页帧,复制对应新增脏页并存入数据库中,生成增量快照,最后根据数据库容量设置阈值,存储的增量快照容量超出阈值后自动对最早期时间段内的增量快照进行合并操作,并将合并后增量快照作为对应被监控虚拟机的基快照;

快照信息翻译库模块,用于根据请求应用的快照生成请求读取物理内存,内存中有快照则对快照信息进行机器语言到应用语言的翻译,并将翻译结果提交给请求应用,内存中没有快照则为每个请求应用生成一个前端请求例程;

快照请求管理模块,用于控制前端请求例程将快照请求的时间信息和地址范围信息放入一个环形消息队列中,并设定一个时间阀值;当环形队列满或者超时时,通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行快照生成;

快照请求格式化模块,用于为环形队列中的每个快照生成请求初始化一个后端请求例程,后端请求例程首先对相应的快照生成请求按照虚拟机编号A、时间B、地址范围C到D和进程E进行格式化处理;

请求快照生成模块,用于获取快照生成请求的格式化信息,当前被监控虚拟机A的基快照为F时刻的全系统快照,分析数据库中F时刻到B时刻虚拟机A所有增量快照的元数据,提取出该时间段内新增脏页的物理页帧,找出最接近B时刻的新增脏页对应的增量快照,对数据库中基快照进行修改更新,生成虚拟机A在B时刻的全系统快照K,再截取地址范围C到D的E线程快照内容生成快照存储到物理内存中。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:

(1)本发明将存在于被监控虚拟机中易失性数据的存储、管理、还原等操作交由虚拟机管理器进行管理,快照分析过程存在于一个单独的分析虚拟机中,独立于被取证系统,使得快照和分析结果具有高可信性;

(2)基于内核特定事件的增量快照机制,对被监控虚拟机的实时运行开销的影响很小,同时能够有效的记录关键事件发生时系统的状态,使得本发明的取证结果在时间和空间的维度上具有很高的覆盖性。本发明能够有效的进行取证,为虚拟机取证提供可信并可靠的取证依据。

附图说明

图1为本发明系统总体架构图;

图2为本发明方法的增量快照存储步骤流程图;

图3为本发明方法的请求快照生成步骤流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示为一种基于版本控制的在线快照管理系统的总体架构图,包括以下几个模块:

内核事件通知驱动模块,用于监控虚拟机的运行状态,当被监控虚拟机发生系统调用或进程切换时,将进程名称、事件原因和事件时间信息存放到固定物理内存区间中,再通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行增量快照处理;

快照库增量处理模块,用于将控制权移交给被监控虚拟机对应的存储例程,存储例程读取虚拟机管理器保存的被监控虚拟机扩展页表指针(EPTP),遍历其指向的页表,找出新增脏页,然后根据新增脏页的物理页帧生成对应的宿主机虚地址页帧;

快照版本控制库模块,用于从固定物理内存区间中读取进程名称、事件原因和事件时间作为当前提交增量快照的初始元数据,通过对应新增脏页的宿主机虚地址页帧,复制对应新增脏页并存入数据库中,生成增量快照,最后根据数据库容量设置阈值,存储的增量快照容量超出阈值后自动对最早期时间段内的增量快照进行合并操作,并将合并后增量快照作为对应被监控虚拟机的基快照;

快照信息翻译库模块,用于根据请求应用的快照生成请求读取物理内存,内存中有快照则对快照信息进行机器语言到应用语言的翻译,并将翻译结果提交给请求应用,内存中没有快照则为每个请求应用生成一个前端请求例程;

快照请求管理模块,用于控制前端请求例程将快照请求的时间信息和地址范围信息放入一个环形消息队列中,并设定一个时间阀值;当环形队列满或者超时时,通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行快照生成;

快照请求格式化模块,用于为环形队列中的每个快照生成请求初始化一个后端请求例程,后端请求例程首先对相应的快照生成请求按照虚拟机编号A、时间B、地址范围C到D和进程E进行格式化处理;

请求快照生成模块,用于获取快照生成请求的格式化信息,当前被监控虚拟机A的基快照为F时刻的全系统快照,分析数据库中F时刻到B时刻虚拟机A所有增量快照的元数据,提取出该时间段内新增脏页的物理页帧,找出最接近B时刻的新增脏页对应的增量快照,对数据库中基快照进行修改更新,生成虚拟机A在B时刻的全系统快照K,再截取地址范围C到D的E线程快照内容生成快照存储到物理内存中。

如图2所示为增量快照存储管理步骤流程图,包括以下步骤:

(11)监控虚拟机的运行状态,当被监控虚拟机发生系统调用或进程切换时,将进程名称、事件原因和事件时间信息存放到固定物理内存区间中,再通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行增量快照处理;

(12)虚拟机管理器(hypervisor)将控制权移交给被监控虚拟机对应的存储例程,存储例程读取虚拟机管理器保存的被监控虚拟机扩展页表指针(EPTP),遍历其指向的页表,找出新增脏页,然后根据新增脏页的物理页帧生成对应的宿主机虚地址页帧;

(13)从固定物理内存区间中读取进程名称、事件原因和事件时间作为当前提交增量快照的初始元数据,通过对应新增脏页的宿主机虚地址页帧,复制对应新增脏页并存入数据库中,生成增量快照,最后根据数据库容量设置阈值,存储的增量快照容量超出阈值后自动对最早期时间段内的增量快照进行合并操作,并将合并后增量快照作为对应被监控虚拟机的基快照;

如图3所示为请求快照生成分析步骤流程图,包括以下步骤:

(21)根据请求应用的快照生成请求读取物理内存,若发现内存中有对应快照则对快照信息进行机器语言到应用语言的翻译,并将翻译结果提交给请求应用,结束流程;否则为每个请求应用生成一个前端请求例程;

(22)前端请求例程将快照请求的时间信息和地址范围信息放入一个环形消息队列中,并设定一个时间阀值;当环形队列满或者超时时,通过超级调用(hypercall)通知虚拟机管理器(hypervisor)进行快照生成;

(23)虚拟机管理器(hypervisor)为环形队列中的每个快照生成请求初始化一个后端请求例程,后端请求例程首先对相应的快照生成请求按照虚拟机编号A、时间B、地址范围C到D和进程E进行格式化处理;

(24)获取快照生成请求的格式化信息,当前被监控虚拟机A的基快照为F时刻的全系统快照,分析数据库中F时刻到B时刻虚拟机A所有增量快照的元数据,提取出该时间段内新增脏页的物理页帧,找出最接近B时刻的新增脏页对应的增量快照,对数据库中基快照进行修改更新,生成虚拟机A在B时刻的全系统快照K,再截取地址范围C到D的E线程快照内容生成快照存储到物理内存中。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1