一种基于Xen的操作系统内核监控方法技术方案

技术编号:10273074 阅读:156 留言:0更新日期:2014-07-31 15:15
本发明专利技术公开了一种基于Xen的操作系统内核监控方法,包括:采用Xen虚拟化技术搭建操作系统内核的安全监控框架,从而使各个扩展模块运行在各自独立的非权限域中;通过Xen的事件通道和授权表通信机制模拟各个扩展模块跨域间的函数调用过程,并在跨域间的函数调用过程中插入用于安全性检查的监控接口。本发明专利技术采用Xen虚拟化技术让各个扩展模块被隔离在各自独立的低权限域上运行,然后利用Xen虚拟机的事件通道和授权表通信机制模扩展模块的域间函数调用过程,使各个扩展模块在各自非权限域中被完全隔离的状态运行,从而使任何跨域操作都被监控到,更加全面而有效,且十分方便和快捷。本发明专利技术可广泛应用于计算机软件安全领域。

【技术实现步骤摘要】
—种基于Xen的操作系统内核监控方法
本专利技术涉及计算机软件安全领域,尤其是一种基于Xen的操作系统内核监控方法。
技术介绍
名词解释: LKM: Loadable Kernel Module,可载入内核模块,用于动态扩充内核功能的机制。Kernel Rootkit:内核Rootkit,是破坏内核完整性的主要恶意软件。宏内核:又称单核心,是操作系统核心架构的一种。Xen: 一种微内核结构的虚拟机。Event Channel:事件通道,Xen的通信机制之一。Grant Tabbles:授权表,Xen的通信机制之一。Core Kernel:核心内核,是操作系统内核的非扩展部分。Module:模块。struct IMD_info:1MD_info结构体,用于封装IMD_info的属性来组成新的类型。Dom:Domain, Xen提供的域,操作系统内核将运行在独立的域中。VCPU:虚拟处理器,Xen对处理器的抽象。IP:寄存器,用于存储当前执行地址。SP:Stack Pointer,栈顶寄存器。BP:Base Pointer,栈底寄存器。AX:通用寄存器,通常用于保存函数返回值。DX:通用寄存器,通常用于保存函数返回值。CR2:异常处理寄存器,用于存储异常处理函数的返回值。DomO:Xen 的权限域。DomU =Xen的非权限域。IMD:Isolated Module Domain,隔离模块域(简称隔离域),用于让Module隔离运行所在的DomU。evtchn_port_req_0:由DomO到DomU访问请求方向所用的通信端口 ; evtchn_port_prov_0:由DomU到DomO访问请求方向所用的通信端口 ;EVTCHN_P0RT_REQ_U: IDM 端与 evtchn_port_prov_0 端口 绑定的一个固定端口,用于与 evtchn_port_prov_0端口进行事件通信,其端口号为一预先设定的常数; EVTCHN_P0RT_PR0V_U: IDM 端与 evtchn_port_req_0 端 口 绑定的一个固定端 口,用于与evtchn_port_req_0端口进行事件通信,其端口号为一预先设定的常数; 模块栈=IMD中执行模块代码所用栈。控制栈:MD中执行控制代码所用栈。Hypervisor call:超级调用,Xen提供的编程控制接口。现代的商业操作系统大多采用宏内核架构作为其内核架构,这种架构的特点是整个核心程序都是以核心空间的身份及监管者模式来运行,并且通过LKM方案来对内核功能进行动态扩展。但黑客可以利用这种LKM扩展功能,通过修改内核中的关键数据结构和代码而向内核植入Rootki,然后利用隐藏的恶意进程和文件,窃取私密数据,甚至作为后门程序而存在,破坏了操作系统内核的完整性,影响了操作系统的安全。运行在内核里的安全工具不足以反制这种Rootkit,根本原因在于,内核和通过LKM载入的Rootkit运行在相同的权限空间里,如果安全工具能够关闭Rootkit,反过来,Rootkit也能关闭安全工具。因此,必须让运行在内核里的安全工具和通过LKM载入的Rootkit运行在不同的权限里,更准备地说,不能让Rootkit运行在最高权限里,这就必须对被恶意利用的LKM机制进行改变,从而对操作系统内核的完整性进行有效的监控。Xen是一种半虚拟化技术的微内核架构虚拟机,其下可以有多个运行域,可以拥有一个DomO域和多个DomU域,其中DomO域为权限域,具有整个操作系统的最高权限,而DomU为非权限域。Xen虚拟机下的域与域之间处于隔离状态,域与域之间通信通过Xen虚拟机提供的Event Channel和Grant Table来实现。Xen虚拟机的微内核架构与传统操作系统的宏内核架构的不同,为通过虚拟化技术实现对操作系统内核运行时的完整性监控提供了可倉泛。但是,目前还没有关于将Xen虚拟机应用于监控操作系统内核完整性方面的报道。当前,业内针对操作系统内核运行时的完整性监控方案,主要包括: a.通过虚拟机来保护内存页表,然后把包含关键数据的内存页标记为只读,当试图修改这些页面所包含的内容时将触发页面错误进而启动监控机对操作进行监控。这种方式只是为了保护关键数据而忽略了其他数据的保护,并不是全面的保护方案。b.通过禁止对内核模块代码和模块代码的修改防止恶意代码注入型攻击,但其缺乏对数据区和栈的有效保护,也无法阻止“Return-to-libc”风格的恶意代码的攻击。C.通过将非可信扩展模块从核心内核中隔离出来,有效监控了恶意扩展对核心内核完整性的任务操作,但是,对于非恶意扩展外的其它需保护扩展并没有得到应有的保护。综上所述,业内针亟需一种全面而有效的,针对操作系统内核运行时的完整性的监控方案。
技术实现思路
为了解决上述技术问题,本专利技术的目的是:提供一种全面而有效的,基于Xen的操作系统内核监控方法。本专利技术解决其技术问题所采用的技术方案是:一种基于Xen的操作系统内核监控方法,包括: A.采用Xen虚拟化技术搭建操作系统内核的安全监控框架,从而使各个扩展模块运行在各自独立的非权限域中; B.通过Xen的事件通道和授权表通信机制模拟各个扩展模块跨域间的函数调用过程,并在跨域间的函数调用过程中插入用于安全性检查的监控接口。进一步,所述步骤A,其包括: Al.载入 module ; A2.创建非权限域IMD,并对其进行初始化; A3.将module插入到内核的链表中,并创建struct IMD_info,然后将struct IMD_info链入MD链表中; A4.将DomO域中模块域初始化代码和控制代码所在的内存页映射到MD的线性地址空间中; A5.将module本身的代码和数据所在的内存页映射到MD地址空间中,并将MD域里module所占内存页的页表项读、写和执行权限设置为与DomO域相同的权限;然后,再将DomO域中module所占内存页的页表项设置为不可执行; A6.调用内核函数在DomO中分配包括MD域控制栈在内的内存页,并将内存页信息保存在MD_info相应的属性里; A7.在DomO域内为IMD分配2个事件通道的端口 evtchn_port_req_0和evtchn_port_prov_0,然后把端 口 号 evtchn_port_req_0 和 evtchn_port_prov_0 写入为 IMD 域分配的栈的栈底,并将两个端口号 evtchn_port_req_0 和 evtchn_port_prov_0 保存到 IMD_info 相应的属性里; A8.将MD域虚拟处理器的IP寄存器设置为MD初始化代码的函数入口,并调整SP和BP寄存器,以预留MD和DomO传递信息的空间; A9.启动MD的域虚拟处理器执行初始化代码,以对MD进行初始化; A10.调用Xen的调度指令进入等待状态,直到从事件通道端口 evtchn_port_prov_0接收到事件才被重新唤醒; All.调用module->init函数对module进行初始化,从而首次触发从DomO到IMD的域间函数调用; A12.初始化完成后释放初始化数据或代本文档来自技高网
...

【技术保护点】
一种基于Xen的操作系统内核监控方法,其特征在于:包括:A.采用Xen虚拟化技术搭建操作系统内核的安全监控框架,从而使各个扩展模块运行在各自独立的非权限域中;B.通过Xen的事件通道和授权表通信机制模拟各个扩展模块跨域间的函数调用过程,并在跨域间的函数调用过程中插入用于安全性检查的监控接口。

【技术特征摘要】
1.一种基于Xen的操作系统内核监控方法,其特征在于:包括: A. 采用Xen虚拟化技术搭建操作系统内核的安全监控框架,从而使各个扩展模块运行在各自独立的非权限域中; B.通过Xen的事件通道和授权表通信机制模拟各个扩展模块跨域间的函数调用过程,并在跨域间的函数调用过程中插入用于安全性检查的监控接口。2.根据权利要求1所述的一种基于Xen的操作系统内核监控方法,其特征在于:所述步骤A,其包括: Al.载入 module ; A2.创建非权限域IMD,并对其进行初始化; A3.将module插入到内核的链表中,并创建struct IMD_info,然后将struct IMD_info链入MD链表中; A4.将DomO域中模块域初始化代码和控制代码所在的内存页映射到MD的线性地址空间中; A5.将module本身的代码和数据所在的内存页映射到MD地址空间中,并将MD域里module所占内存页的页表项读、写和执行权限设置为与DomO域相同的权限;然后,再将DomO域中module所占内存页的页表项设置为不可执行; A6.调用内核函数在DomO中分配包括MD域控制栈在内的内存页,并将内存页信息保存在MD_info相应的属性里; A7.在DomO域内为IMD分配2个事件通道的端口 evtchn_port_req_0和evtchn_port_prov_0,然后把端口 号 evtchn_port_req_0 和 evtchn_port_prov_0 写入为 IMD 域分配的栈的栈底,并将两个端口号 evtchn_port_req_0 和 evtchn_port_prov_0 保存到 IMD_info 相应的属性里; A8.将MD域虚拟处理器的IP寄存器设置为MD初始化代码的函数入口,并调整SP和BP寄存器,以预留MD和DomO传递信息的空间; A9.启动MD的域虚拟处理器执行初始化代码,以对MD进行初始化; A10.调用Xen的调度指令进入等待状态,直到从事件通道端口 evtchn_port_prov_0接收到事件才被重新唤醒; All.调用module->init函数对module进行初始化,从而首次触发从DomO到IMD的域间函数调用; A12.初始化完成后释放初始化数据或代码所占用的区域。3.根据权利要求1或2所述的一种基于Xen的操作系统内核监控方法,其特征在于:所述各个扩展模块跨域间的函数调用过程包括权限域调用隔离域函数过程、由隔离域到权限域方向的访问异常处理过程、隔离域调用权限域函数的一般处理过程、隔离域调用权限域内存分配函数的处理过程、隔离域调用权限域内存释放函数的处理过程和隔离域对权限域数据区的读写过程。4.根据权利要求3所述的一种基于Xen的操作系统内核监控方法,其特征在于:所述权限域调用隔离域函数的过程,其包括: Gl.DomO发出调用module函数的请求,从而触发页面异常; G2.通过MD链表上的信息判断页面异常是否由module所在内存页的代码而引起,若是,则执行步骤G3,反之,则保持操作系统自身的异常处理方式; G3.根据DomO中当前栈顶的位置将当前栈内容复制到MD的模块栈,并将DomO中的CR2、BP和SP寄存器值,一起保存到MD的控制栈; G4.DomO向事件通道的evtchn_port_req_0端口发送事件; G5.将MD的模块栈映射到MD中与DomO中当前栈的线性地址相同的地址空间; G6.1MD检测到在EVTCHN_PORT_PROV_U端上接收到事件后从等待状态恢复,并从控制栈获取DomO中CR2、BP和SP寄存器的值; G7.用当前函数的地址代替模块栈上的返回地址,同时保存MD的BP和SP值到变量IMD_bp和MD_sp里,并根据所取出的DomO中BP和SP寄存器的值切换到模块栈; G8.跳转到DomO中CR2寄存器所指示的地址执行函数进行处理,待执行完成后返回步骤G7中替换后的返回地址; G9.将IMD当前的AX和DX寄存器内容写入控制栈栈底,然后根据保存的IMD_bp和IMD_sp将栈切换回控制栈; G10.1MD向事件通道端 口 EVTCHN_PORT_PROV_U发送事件,并进入等待状态; Gil.DomO从evtchn_port_req_0端口接收到事件后恢复执行,将IMD控制栈底部的AX和DX值取出保存到相应的ax和dx变量里; G12.根据当前栈的栈帧情况,把IMD中的数据栈复制到当前栈,接着根据ax、dx变量修改异常处理现场保存的AX和DX寄存器值,并将现场保存的BP和SP值修改成退出一个栈桢后的BP和SP值,然后结束调用过程。5.根据权利要求...

【专利技术属性】
技术研发人员:徐靖徐海水
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东;44

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

1