版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、说 明 书 摘 要 KHP141110067.1本发明提供了一种软件看门狗系统及方法,该系统包括:基于内 核的虚拟机KVM ,以及安装于KVM上的语义重构模块、故障检测模 块、策略模块、恢复模块;KVM上的虚拟机监控器,用于获取物理主 机的内存信息;语义重构模块,用于根据虚拟机监控器获取的物理主 机的内存信息重构出客户虚拟机上的语义信息;故障检测模块,用于 根据语义重构模块重构出的客户虚拟机上的语义信息检测客户虚拟机 的隐藏进程、关键用户进程和系统调用的完整性,输出检测结果;策 略模块,用于根据检测结果和用户配辂的恢复策略,生成恢复指令; 恢复模块,用于根据策略模块产生的恢复指令进行恢复操作。
2、本发明 的系统及方法,能够同时监控多个客户虚拟机,操作简单,处理高效。摘要附 图KHP141110067.110 510110 210310 4权 利 要 求 书 KHP141110067.11、一种软件看门狗系统,具特征在于,该系统包括:基于内核的虚拟机KVM ,以及安装于KVM上的语义重构模块、 故障检测模块、策略模块、恢复模块;KVM上的虚拟机监控器,用于获取物理主机的内存信息;语义重构模块,用于根据虚拟机监控器获取的物理主机的内存信 息重构出客户虚拟机上的语义信息;故障检测模块,用于根据语义重构模块重构出的客户虚拟机上的 语义信息检测客户虚拟机的隐藏进程、关键用户进程和系统调用的完 整
3、性,输出检测结果;策略模块,用于根据故障检测模块的检测结果和用户配辂的恢复 策略,生成恢复指令;恢复模块,用于根据策略模块产生的恢复指令进行恢复操作;其中,所述物理主机包括:一个宿主虚拟机和至少一个客户虚拟 机,所述宿主虚拟机为所述KVM。2、根据权利要求1所述的系统,具特征在于,所述恢复指令,包 括:启动某个进程,终止某个进程,启动虚拟机,重启虚拟机,从镜 像文件恢复虚拟机。3、根据权利要求1所述的系统,具特征在于,所述策略模块,还 用于根据用户输入的进程配辂信息确定关键用户进程。4、一种基于权利要求1至3中任一软件看门狗系统的检测方法, 其特征在于,该方法包括:KVM上的虚拟机监控器获取物
4、理主机的内存信息;语义重构模块根据虚拟机监控器获取的物理主机的内存信息重构 出客户虚拟机上的语义信息;故障检测模块根据语义重构模块重构出的客户虚拟机上的语义信 息检测客户虚拟机的隐藏进程、关键用户进程和系统调用的完整性,输出检测结果;策略模块根据故障检测模块的检测结果和用户配辂的恢复策略, 生成恢复指令;恢复模块根据策略模块产生的恢复指令进行恢复操作;其中,所述物理主机包括:一个宿主虚拟机和至少一个客户虚拟 机,所述宿主虚拟机为所述KVM。5、根据权利要求4所述的方法,其特征在于,所述恢复指令,包 括:启动某个进程,终止某个进程,启动虚拟机,重启虚拟机,从镜 像文件恢复虚拟机。6、根据权利要求
5、4所述的方法,其特征在于,所述方法还包括, 策略模块根据用户输入的进程配辂信息确定关键用户进程。KHP141110067.1一种软件看门狗系统及方法技术领域本发明涉及安全技术领域,尤其涉及一种软件看门狗系统及方法。背景技术传统的基于硬件的看门狗系统,在系统进入不可恢复错误时,能 产生一个不可屏蔽中断来通知系统自动重启,只有相应的复位信号才 能清除它。以此来达到保证系统的高可用性,主要应用领域是嵌入式 系统。传统的基于硬件的看门狗系统,不但造价较高,而且功能单一, 不够通用,必须提供编程接口来进行“喂狗”操作,增加了系统的复 杂性和耦合度。发明内容本发明提供了一种软件看门狗系统及方法,能够同时监
6、控多个客 户虚拟机,操作简单,处理高效。第一方面,本发明提供了一种软件看门狗系统,该系统包括:基于内核的虚拟机KVM ,以及安装于KVM上的语义重构模块、 故障检测模块、策略模块、恢复模块;KVM上的虚拟机监控器,用于获取物理主机的内存信息;语义重构模块,用于根据虚拟机监控器获取的物理主机的内存信 息重构出客户虚拟机上的语义信息;故障检测模块,用于根据语义重构模块重构出的客户虚拟机上的 语义信息检测客户虚拟机的隐藏进程、关键用户进程和系统调用的完 整性,输出检测结果;策略模块,用于根据故障检测模块的检测结果和用户配辂的恢复 策略,生成恢复指令;恢复模块,用于根据策略模块产生的恢复指令进行恢复操
7、作;其中,所述物理主机包括:一个宿主虚拟机和至少一个客户虚拟 机,所述宿主虚拟机为所述KVM。进一步地,所述恢复指令,包括:启动某个进程,终止某个进程, 启动虚拟机,重启虚拟机,从镜像文件恢复虚拟机。进一步地,所述策略模块,还用于根据用户输入的进程配辂信息 确定关键用户进程。第二方面,本发明提供了一种基于第一方面中任一软件看门狗系 统的检测方法,该方法包括:KVM上的虚拟机监控器获取物理主机的内存信息;语义重构模块根据虚拟机监控器获取的物理主机的内存信息重构 出客户虚拟机上的语义信息;故障检测模块根据语义重构模块重构出的客户虚拟机上的语义信 息检测客户虚拟机的隐藏进程、关键用户进程和系统调用的
8、完整性, 输出检测结果;策略模块根据故障检测模块的检测结果和用户配辂的恢复策略, 生成恢复指令;恢复模块根据策略模块产生的恢复指令进行恢复操作;其中,所述物理主机包括:一个宿主虚拟机和至少一个客户虚拟 机,所述宿主虚拟机为所述KVM。进一步地,所述恢复指令,包括:启动某个进程,终止某个进程, 启动虚拟机,重启虚拟机,从镜像文件恢复虚拟机。进一步地,所述方法还包括,策略模块根据用户输入的进程配辂 信息确定关键用户进程。通过本发明实施例提供的一种软件看门狗系统及方法,能够通过 一个宿主虚拟机来同时监控多个客户虚拟机,并且操作简单,处理高 效。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方
9、案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通 技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其他的附图。图1是本发明实施例提供的一种软件看门狗系统的结构示意图;图2是本发明实施例提供的一种基于实施例1中的软件看门狗系统的检测方法的流程图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结 合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、 完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是 全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有
10、 做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保 护的范围。实施例1:在一台物理主机上可以同时安装多个虚拟机,其中一个为宿主虚 拟机,其余的为客户虚拟机,通过宿主虚拟机能够对客户虚拟机进行 监控。本发明提供了一种软件看门狗系统,该系统建立在以宿主虚拟 机为单位的虚拟化系统架构上,该系统架构将看门狗中的故障检测恢 复系统放辂在被检测的客户虚拟机之外,该系统可以检测多台客户虚 拟机。参见图1,该系统包括:KVM (Kernel-based Virtual Machine,基于内核的虚拟机),以及 安装于KVM上的语义重构模块101、故障检测模块102、策略模块103、 恢复模块104
11、;KVM上的虚拟机监控器105,用于获取物理主机的内存信息;语义重构模块101,用于根据虚拟机监控器105获取的物理主机的内存信息重构出客户虚拟机上的语义信息;故障检测模块102,用于根据语义重构模块101重构出的客户虚拟 机上的语义信息检测客户虚拟机的隐藏进程、关键用户进程和系统调 用的完整性,输出检测结果;策略模块103,用于根据故障检测模块102的检测结果和用户配辂 的恢复策略,生成恢复指令;恢复模块104,用于根据策略模块103产生的恢复指令进行恢复操 作;其中,所述物理主机包括:一个宿主虚拟机和至少一个客户虚拟 机,所述宿主虚拟机为所述KVM。通过本发明实施例提供的一种软件看门狗系统
12、,能够通过一个宿 主虚拟机来同时监控多个客户虚拟机,并且操作简单,处理高效。所述恢复指令,包括:启动某个进程,终止某个进程,启动虚拟 机,重启虚拟机,从镜像文件恢复虚拟机。所述策略模块103,还用于根据用户输入的进程配辂信息确定关键 用户进程。其中,虚拟机监控器负责创建抽象层来虚拟化一个物理主机的硬 件并把它划分成逻辑上隔离的虚拟主机。虚拟机监控器能够保证即使 被监控的虚拟主机被入侵,也能够防止进一步入侵到拥有特权级的宿 主虚拟机上的应用程序,因此,不可能入侵到虚拟机故障检测和恢复 程序。虚拟机监控器为了控制其上的客户虚拟机,对客户虚拟机拥有 完全的控制权限,包括内存,CPU寄存器和I/O操作
13、。虚拟机监控器 拥有的高优先级允许对客户虚拟机的完全监控,也让恶意代码很难逃 过监测。虚拟机监控器可以监督虚拟主机的操作,能够干预请求,例 如,特权级CPU指令,因为它介于客户虚拟机和宿主虚拟机之间。在被监控虚拟机内部,检测系统可以轻易获取正在执行的进程、 磁盘上文件等操作系统级别的高级语义信息,而在被监控虚拟机外部,检测系统仅能获取寄存器值、内存数据、磁盘块数据或当前指令执行流等低等级信息,这种语义的断层影响了检测功能的有效实施。为了 解决语义断层的问题,需要重构虚拟机内部的高级语义信息。本系统 更加关注进程信息的刻画,如以进程控制块为模板,重构进程控制块 信息,进而获取进程名、进程号以及内
14、存地址空间等。本系统在虚拟 机外部构建进程控制块链表,并通过交叉视图的方式比较外部重构进 程列表和内部汇报进程列表的差异,以此确定是否存在隐藏进程。然 而直接操作内核对象类攻击可以将待隐藏进程控制块从进程队列中摘 链,因而该方法可能会出现漏检现象。本系统提供了相应的隐藏进程 的处理机制,可以在最大程度上保证系统的自动恢复能力,从而提高 安全性和自动化。利用虚拟机自省机制,将检测工具与被监控系统隔离在不同的虚 拟机中,通过语义重构,在虚拟机外部的检测软件发现虚拟机中的恶 意软件,然后根据不同的恢复策略进行虚拟机的恢复,来确保在虚拟 机发生故障的情况下,软件看门狗可以自动进行恢复,保证系统的正 常
15、运行,同时该系统只要在宿主虚拟机上进行配辂就可以,在客户虚 拟机上不需要安装任何组件,提高整个系统的安全性和可靠性。本发明利用虚拟机监控器的隔离特性和高特权级特性,获得客户 虚拟机的内存信息,获得客户虚拟机的内存信息后,然后通过客户虚 拟机系统的操作系统的内存布局和操作系统的常量参数,来获得客户 虚拟机的操作系统级别的内核数据结构信息。通过这些数据结构,可 以获得客户虚拟机的一些信息,如进程列表,内核模块列表等。当故 障检测模块运行时,可以利用客户虚拟机的进程信息,来判断是否有 隐藏进程,同时可以检测关键进程是否在运行。如果关键进程缺失, 同时发现隐藏进程,那么说明当前这个系统已经被恶意软件入
16、侵。如 果故障检测模发现系统调用被修改,也说明当前系统中有恶意软件。 策略模块根据故障检测模发现的系统异常情况和用户配辂的恢复策略 来进行决策,输出恢复指令。恢复策略可以为:如果用户进程缺失, 可以简单地启动用户进程,如果操作系统调用被破坏,可以重启虚拟 机;如果重启之后还是有原来的问题,那么就采用从镜像文件恢复虚 拟机的方式来解决问题。恢复模块执行策略模块产生的恢复指令,它 可以启动,停止某个进程,可以关闭,启动虚拟机,也可以从镜像来 恢复虚拟机。其中,恢复策略可以包括两个过程:虚拟机级别的恢复:利用虚 拟机可以动态地创建、撤销以及在各个物理平台之间进行迁移的特性, 进行虚拟机级别的恢复,例
17、如:启动虚拟机,重启虚拟机,从镜像文 件恢复虚拟机。进程级别的恢复:如果用户进程遭到破坏可以进行进 程级别的恢复,尝试重启用户进程,例如:启动某个进程,终止某个 进程。通过以上两个级别的恢复过程来确保在虚拟机发生故障的情况 下,可以自动进行恢复,重新正常运行,保证系统的高可靠性和高安 全性。对于语义重构模块,由于本系统的故障检测模块与被监控系统隔 离在不同的虚拟机中,因此需要解决语义鸿沟问题。通过语义重构, 将原始的物理主机的内存信息重构出客户虚拟机操作系统级别的语 义。对于故障检测模块,如果有恶意软件杀掉了用户程序,可以用关 键进程运行状态来检测出来。如果恶意软件在系统调用中挂了钩子, 系统
18、调用完整性检查可以检查出来。 如果恶意软件将自己隐藏出来了, 隐藏进程检测部分可以检测出这个进程。其中,运行在客户虚拟机上的操作系统可以是Linux系统、Windows 系统。实施例2:本发明实施例提供了一种基于实施例 1中的软件看门狗系统的检 测方法,参见图2,该方法包括:步骤201: KVM上的虚拟机监控器获取物理主机的内存信息;步骤202:语义重构模块根据虚拟机监控器获取的物理主机的内存 信息重构出客户虚拟机上的语义信息;步骤203:故障检测模块根据语义重构模块重构出的客户虚拟机上 的语义信息检测客户虚拟机的隐藏进程、关键用户进程和系统调用的 完整性,输出检测结果;步骤204:策略模块根
19、据故障检测模块的检测结果和用户配辂的恢 复策略,生成恢复指令;步骤205:恢复模块根据策略模块产生的恢复指令进行恢复操作; 其中,所述物理主机包括:一个宿主虚拟机和至少一个客户虚拟 机,所述宿主虚拟机为所述KVM。所述恢复指令,包括:启动某个进程,终止某个进程,启动虚拟 机,重启虚拟机,从镜像文件恢复虚拟机。所述方法还包括,策略模块根据用户输入的进程配辂信息确定关 键用户进程。需要说明的是:每个虚拟机的内核里,有一个进程描述符,存储 了操作系统进程的所有信息。所有进程的进程描述符都在一个循环的 双向链表task_list里存储。每个单独进程的信息,进程描述符,作为 一个单独的结构task_st
20、ruct存储在这个链表里。一个进程启动的子线 程也在task_list的结构里有一个项来存储,并有与之相对应的唯一的线 程ID和task_struct来对应run_list域,指向了另外一个结构 runqueue, CPU需要使用这个信息。runqueue结构是一个包含所有要被 CPU执行 的进程的结构。task_struct结构中的mm域指向了进程的附加属性:一旦一个进程 被创建后,就被赋予了一个虚拟内存地址。地址空间和其他所有跟此 进程相关的内存管理的信息都存储在了一个叫做mm_struct的结构里。跟此进程相关的所有虚拟内存区域的描述符都链接在另外的一个链表 里,可以通过mm_struc
21、t描述符里的mmap域来访问到这个信息。这些 对于此进程可用的虚拟内存区域被保存到另外一个叫做vm_area_struct的描述符里。这就形成了一个包含进程的虚拟内存信息的链表,每个 vm_area_struct描述符指向了它所代表的连续内存区域。这些地址被存储在每个vm_area_struct里的vm_next域来串联起来。vm_next域指向 下一个vm_area_struct结构,因此指向了进程所拥有的下一片虚拟内存 区域。以上都是跟给定进程的虚拟内存相关的信息。然而,一个进程只 能访问到存储在物理内存里的进程数据。关联虚拟内存和相应的物理 地址的信息存储在页表里。页表信息可以通过mm_
22、struct的pgd信息来 访问到。页表存储了以页帧为单位的内核内存信息。这些关联信息在 Linux系统里是以三级的形式来存储的。从上往下依次是:全局页目录, 页中间目录,页表项。最终就访问到了具体的页。在虚拟化环境里, 虚拟机监控器负责转换虚拟机的虚拟内存地址为宿主虚拟机的物理内 存地址。基于虚拟自省的应用,需要读取内存信息并理解他们语义,因此 必须通过找到操作系统对应的第一个任务的符号信息来进行。一个符 号指向了程序块,可以是变量或者是函数的名称。必须找到task_list的头部,然后就可以获得系统所有进程的信息了。这个链表的头部存 储在一个叫做init_task_union的结构里,在L
23、inux系统下,是跟第一个 进程的task_struct相关联的。符号和对应的虚拟地址存储在 Linux系统 的System.map文件里。System.map文件在内核编译之后就创建了,通 常存储在/boot目录下,而且在内核的生命周期里,一直保持不变的。在找到init_task_union所在的地址之后,就可以遍历操作系统里所 有的进程链表了。这样就可以完整地重构出客户虚拟机的内存的信息 并进一步分析得出虚拟机的状态。本系统就可以把虚拟机的虚拟内存 地址转换到他们对应到的物理内存的地址了。虚拟机监控器负责为每个虚拟机创建一个虚拟的MMU (MemoryManagement Unit,内存管
24、理单元)并调节虚拟机的内存访问。虚拟机 监控器也控制了物理的 MMU并以不会和其他虚拟机物理内存互相重 叠的方式映射每个虚拟机的物理内存。这样,每个虚拟机自己的地址 空间就被隔离开来,不能访问别的虚拟机的地址空间。最终,低级的 事件消息,例如中断等就自动被虚拟机监控器捕获。因此,在这种环 境下,虚拟机监控器可以一直监控,控制每个虚拟机监控器所要求的 特权级的指令。本系统通过虚拟机监控器获得客户虚拟机操作系统 的内核数据结构信息,进一步得到进程列表等内存信息。获得虚拟机的内存信息后,就可以利用故障检测模块,检测包括 隐藏进程检测,用户配辂的关键进程检测,系统调用完整性检查来发 现恶意软件。故障检
25、测模块检测隐藏进程的过程如下:Linux维护了一个进程描述符的双向链表 task_list。系统启动时的 第一个进程的init_task结构是链表的头结点。同时Linux还维护了一个 runqueue的链表,任何由CPU执行的进程都唯一的属于这个链表。语义重构模块获得双向链表task_list和runqueue链表,在虚拟机 内部通过ps命令得到的进程信息列表ps_list;故障检测模块判断待检测进程是否存在于双向链表task_list、runqueue链表、进程信息列表 ps_list中;如果存在于上述的向链表task_list、runqueue链表、进程信息列表 ps_list中,则结束,
26、否则发现隐藏进程。故障检测模块检测用户配辂的关键用户进程的过程如下:用户配辂了检测的关键用户进程名为 userprocess,查看userprocess 是否出现在task_list中,如果没有出现,说明用户指定的关键用户进程 缺失。故障检测模块检测系统调用完整性的过程如下:Linux系统调用的各个函数的入口地址在系统安装后,就是固定 的。所以创建一份正常的系统调用表,作为基准。之后每次检查时, 访问系统调用的各个入口地址,检查其是否与基准一致,如果一致, 说明系统调用没有问题。如果不一致,说明系统调用被破坏,系统调 用已经被加了钩子函数。经过故障检测模块之后,本系统就获得了虚拟机上进程的运行
27、状态,在本实施例中,发现客户虚拟机 vm01中的用户关键进程csdtest 程序缺失。策略模块根据故障检测模块的检测结果和用户配辂的恢复 策略,生成恢复指令。用户在配辂恢复策略时,可以指定当检测到用户的关键进程不存 在时,如何进行恢复。恢复时的操作可以是启动某个指定进程,此进 程可以是一个守护进程,由它来负责运行用户所需要的所有应用程序; 恢复操作也可以是重新启动系统,在 Windows操作系统中,重启操作 系统能够解决一些问题;恢复操作也可以是从最原始的镜像文件来恢 复虚拟机。这种恢复是终极的解决方案,此镜像不仅保存了虚拟机上 所有文件的状态,而且也保存了操作系统和用户应用程序的运行状态。
28、但前提条件是建立此镜像时,整个系统是干净,完整,没有被恶意软 件破坏的。当故障检测模块检测到隐藏进程后,可以采取以下恢复策略:重启操作系统,如果重启两次后仍不能解决故障则重启虚拟机, 如果重启虚拟机仍不能解决故障则从镜像文件恢复虚拟机。当故障检测模块检测到关键用户进程缺失后,可以采取以下恢复 策略:启动该关键用户进程,如果没有解决故障,则重启虚拟机,如果 重启虚拟机后没有解决故障,则从镜像文件恢复虚拟机。当故障检测模块检测到系统调用被修改后,可以采取以下恢复策 略:从镜像文件恢复虚拟机。综上所述,整个恢复机制分为两级,一种是进程级别的恢复,另 外一种是虚拟机级别的恢复。当重启程序 3次之后,发现问题依然存 在,就会采用重启操作系统的方法来解决故障。如果此时故障依旧, 就可以采用恢复镜像的方法来恢复整个虚拟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信阳新县城镇公益性岗位招聘考试真题及答案
- 2025-2026年美业服务流程考核试卷
- 2026年北师大版高三物理选修3-1第九章原子核物理测试卷
- 2025-2026年陕西省北师大版高中化学选择性必修第11章化学计算习题
- 2025-2026年河北省人教版四年级英语下册第6单元语法练习题
- 储罐总体试验记录
- 2026年感悟信仰力量 勇担青春使命 - 中学长征主题教育讲话稿
- 山西省长治市第六中学校2025-2026学年七年级下学期7月期末考试语文试卷(含答案)
- 医疗机构门急诊医院感染管理标准(2026版)试题及答案
- 湖北省孝感市楚天协作体2026-2027学年高三上学期开学英语试题
- (2026版)新生儿围手术期加速康复外科应用专家共识解读课件
- 店长领导力培训
- 2026年及未来5年市场数据中国艺术品物流行业发展监测及投资战略数据分析研究报告
- 2026年高考历史大题答题模板:背景+经过+影响+启示+材料分析+高分技巧
- 全国计算机等级考试三级网络技术真题试题及答案
- 电力作业许可制度规范
- 2024-2025学年人教版九年级物理全一册同步讲义:热机效率(学生版+解析版)
- 2025年水产养殖饲料配方技术开发协议
- DB11∕T 2423-2025 城市道路挖掘与修复技术规范
- 肾脏病治疗中的血液净化技术
- 2025年电气焊工安全知识培训考试试卷(答案)
评论
0/150
提交评论