CN103399812A - 基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 - Google Patents
基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 Download PDFInfo
- Publication number
- CN103399812A CN103399812A CN2013103267645A CN201310326764A CN103399812A CN 103399812 A CN103399812 A CN 103399812A CN 2013103267645 A CN2013103267645 A CN 2013103267645A CN 201310326764 A CN201310326764 A CN 201310326764A CN 103399812 A CN103399812 A CN 103399812A
- Authority
- CN
- China
- Prior art keywords
- module
- monitoring
- file
- information
- xen
- 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.)
- Granted
Links
Images
Abstract
一种基于Xen全虚拟化的磁盘文件操作监控系统,包括监控模块,信息发送模块,监听模块,安全模块。监控模块通过截获全虚拟化客户操作系统的磁盘文件操作,获取行为信息达到实时监控的目的。信息发送模块和监听模块将行为信息从domU传递至domO。安全模块保障信息发送模块和监听模块的运行安全。本发明的监控方法包括:截获并替换全虚拟化中磁盘文件操作系统调用;确定被监控文件类型;确定操作进程是否必要被监控;根据操作类型、文件种类、进程信息综合确定该行为是否需要监控;获取行为信息;获取操作目标绝对路径;发送信息;信息监听;检测运行在domU的监控模块和信息发送模块代码运行时是否受攻击。本发明能实时监控,改善了Xen全虚拟化网络I/O的效率。
Description
技术领域
本发明涉及计算机虚拟化技术领域,更进一步涉及Linux内核相关领域以及系统安全领域。本发明可用于客户操作系统为Linux或者类Unix的操作系统的Xen硬件虚拟化平台上,实现在domO中对硬件虚拟化客户操作系统的磁盘文件操作的实时监控,为运行在虚拟化平台上的操作系统和整个虚拟化平台的磁盘文件提供安全保障。
背景技术
计算机世界里,“虚拟化”无处不在。Xen是剑桥大学教授Ian Pratt等发起的一个开源的虚拟机项目,由于其优越的性能和开源性,所以被业界广泛看好,被认为是未来最有前途的虚拟化解决方案之一。Xen的安全问题也自然成为了人们关注的焦点,具体方面主要有基于Xen虚拟化的入侵检测,Xen的内存自省,Xen的磁盘文件监控。其中磁盘文件的安全对于虚拟机安全至关重要,一个虚拟机的虚拟磁盘上的数据被篡改,会破坏文件系统的完整性,甚至导致整个操作系统崩溃。如果一个虚拟磁盘上的共享文件数据被篡改,就严重破坏了各个客户操作系统之间的隔离性,威胁会波及到更多的客户操作系统。因此,在虚拟化平台上,保证各个虚拟的客户操作系统中的磁盘文件安全具有重要意义。
现有的基于Xen虚拟化平台的磁盘文件监控技术比较多,典型的有File-systemintegrity tools、Xen-RIM for Xen virtual machines、XenAccess等。这些典型的监控技术或者监控工具分别存在这样的不足:File-system integrity tools的实施部署依赖于入侵检测工具,入侵检测工具的数据库必须定时更新这一事实使得实时监控成为了不可能,其本身不能够实时的监控磁盘操作和文件操作,并且缺少必要的日志信息。Xen-RIM for Xen virtual machines使用LSM(Linux安全模块框架,是Linux内核的一部分)具有软件依赖性。XenAccess提供了监控磁盘操作的结构,但其功能单一,只能监控文件的创建和删除。随着虚拟化技术的发展和文件系统安全攻击的层出不穷,对文件操作监控提出了更高的要求:为了具有广泛的适用性,不要修改Xen;为了做出精确的分析,需要对文件操作细粒度的监控并获取尽可能丰富的信息;为了避免监控的滞后,实时监控是必要的。现有的监控技术不能同时满足上述要求。
发明内容
本发明在分析总结了现有基于Xen虚拟化平台的磁盘文件监控技术的缺点的基础上,针对虚拟化技术和系统安全的发展对文件系统安全提出的许多新的需求,提供一种实时,细粒度,实用性强的硬件虚拟化平台的磁盘文件监控系统,以及监控方法。
本发明所涉及的基于Xen硬件虚拟化的磁盘文件操作监控系统是基于Xen的硬件虚拟化平台,客户操作系统为Linux或者类Unix。具体包括4个模块:操作监控模块、信息发送模块、监听模块、安全模块。
监控模块部署在domU,实时监控domU中所有涉及改变磁盘文件内容及属性的操作并产生监控信息,通过信息发送模块发送给domO的监听模块,由监听模块记录相关信息;安全模块保证信息发送模块和监控模块运行时的安全,若受到攻击,向domO的监控者报警。
所述监控模块不需要修改Xen Hypervisor,domO和客户操作系统,以可装载模块的形式实现,无需编译内核,能够实时监控,只监控涉及改变磁盘文件内容及属性的操作,获取详细的行为信息;
所述信息发送模块和监听模块采用XenSocket机制实现domO和domU之间通信,XenSocket内部利用了Xen的共享内存机制,信息发送模块部署在domU的内核态以提高安全性,监听模块部署在domO的用户空间,类似于socket的客户端和服务端;
所述安全模块,不需要修改Xen Hypervisor,能够检测到监控模块和信息发送模块在运行时受到的恶意代码攻击;安全模块部署在的全级别较高的domO以避免自身受到攻击的威胁。
本发明应用上述系统实现基于Xen硬件虚拟化磁盘文件操作监控的方法,其过程如下:
(1)截获并替换客户操作系统中磁盘文件操作系统调用
1a)获取系统调用表地址;
1b)修改crO寄存器的系统调用表可写权限位,使系统调用表可写;
1c)确定替换系统调用的范围;
1d)编写新的系统调用替换原有系统调用,查询对应的系统调用号,修改相应的函数指针为新的函数。
(2)确定被监控文件的类型
2a)通过当前进程结构体struct task和文件描述符获取文件的struct file结构;
2b)根据文件的内核结构struct file找到对用的inode节点;
2c)根据inode中的i_mode字段确定监控文件的类型;
(3)确定操作进程是否有必要被监控
3a)获取inti_tast地址,遍历系统进程列表,创建bash环境下用户进程哈希表;
3b)可根据父子进程间的关系辨别是否是bash进程或者是bash子进程,将其存入哈希表;
3c)遍历哈希表,判断进程是否监控所有的bash下的进程活动,包括守护进程;
(4)根据操作类型、文件种类、进程等信息综合确定该行为是否需要监控
4a)创建监控逻辑表,包括四项:操作类型、文件种类、进程、是否需要监控,例如如下记录字段:读/写设备文件系统进程否;
4b)根据监控逻辑表,设计系统调用函数;
(5)获取行为信息:
5a)创建行为信息结构体,存储行为信息,具体包括:进程ID、用户ID、操作进程、操作进程的运行位置、目标文件绝对路径;
5b)通过进程结构体struct task获取进程ID、用户ID、操作进程;
5c)获取进程运行位置,过程如下:获取当前目录dentry,获取vfsmount结构的pwdmnt,判断是否为装载点,如果是则查找该dentry在父文件系统中的dentry,如果不是则继续向上查找上级目录的dentry并记录目录名直到根目录。
(6)获取操作目标绝对路径
判断参数类型,目标文件的表示分为字符串和文件描述符两种,根据查找路径算法获得绝对路径。
(7)发送信息
在系统调用函数中,将获取的行为信息利用XenSocket经前后端网络模型发送至domO。
(8)信息监听
在domO创建监听用户态守护进程,将接收到信息追加到日志文件。
(9)检测运行在domU的监控模块和信息发送模块代码在运行时是否受到攻击
9a)在domO创建用户态守护进程,调用XenAccess库的接口监视domU模块运行代码的内存区,获取原始数据;
9b)以轮询的方式监控domU模块的代码运行区,和原始数据进行哈希对比确定代码是否受到恶意攻击。
本发明与现有技术相比具有以下优点:
第一,由于本发明采用了截获系统调用的方式发现文件操作,并替换系统调用,在新的函数内部加入了监控逻辑和出发消息发送的功能,采用实时通知的方法,满足了实时监控的要求,克服了现有技术不能实时监控文件操作的缺点,增强了监控功能和实用性。
第二,由于本发明增加了行为信息获取功能和日志记录功能,不仅能够监控到磁盘文件操作,还能够根据当前的进程和用户信息获取该操作的详细信息,具体包括操作者,操作方式,程序的运行位置和目标文件的精确位置(处理了硬链接和符号链接),并提供日志记录,为将来的恶意行为分析提供丰富的信息。
第三,由于本发明针对的是Xen硬件虚拟化平台,Xen硬件虚拟化平台的一个重要的缺点是其放弃了半虚拟化的前后端通信模型,采用特权指令的陷入方式来处理网络I/O操作,这使得网络I/O的开销急剧上升,本发明通过在硬件虚拟化客户操作系统中安装PCI平台,网络前端驱动,块设备前端驱动,气球驱动,使得HVM可以利用半虚拟化的网络I/O机制通信,大幅度降低了性能的损耗。
第四,本发明在domO部署了安全模块来保障部署在domU中的监控模块和信息发送模块在运行时的代码安全,解决了以往监控设施代码在运行时被恶意攻击的问题,一旦监控模块或者信息发送模块代码受到攻击,安全模块会向domO报警,提高了监控系统的安全性和实用性。
附图说明
图1为本发明系统总体架构图;
图2为本发明磁盘文件操作截获示意图;
图3a)为本发明bash下进程组关系图,b)为本发明bash下进程关系图;
图4为本发明识别bash进程和子孙进程以及孤儿进程流程图;
图5为本发明由文件描述符获取文件类型图;
图6为本发明整体监控过程流程图;
图7为本发明获取执行路径流程图;
图8为本发明获取目标信息流程图;
图9为本发明HVM的半虚拟化I/O图;
图10为本发明信息发送模块和监听模块通信图;
图11为本发明安全模块原理图。
具体实施方式
下面结合附图对本发明作进一步的描述。
1、总体结构设计
基于Xen硬件虚拟化的磁盘文件操作监控系统由四个基本模块构成,分别是:监控模块,信息发送模块,监听模块,安全模块。
实现全虚拟Linux的磁盘文件操作监控,监控模块的部署位置决定了整个系统的优劣。将监控模块部署在domO,可以通过Xen的块设备前后端驱动、Xenbus和事件通道监控磁盘操作,操作前后端驱动和事件通道需要调用超级调用,每一次的超级调用都会引起ring3到ring0的切换,频繁的切换会增加系统开销代价;另一方面,由于通过块设备的前后端实现监控,监控不到不会引发I/O指令的文件操作,例如非文件读写操作。基于以上两点的考虑,将监控模块部署在domU可以有效地解决以上问题,同时,还能够免于修改domO和Xen。出于安全的考虑,将监控模块部署在domU可以有效的利用Xen提供的隔离性,一旦监控模块受到攻击,并不会导致domO受到威胁以至于威胁整个虚拟化平台。模仿Linux驱动可以根据需求安装和卸载,将监控模块设计成可加载模块,在需要时加载模块,同时也免去了重新编译内核。
信息发送模块和监听模块的设计采用了XenSocket机制实现domO和domU之间通信。XenSocket内部封装了Xen的共享内存机制,接口形式类似于socket,实现于socket的下层。信息发送模块部署在domU,特权级别较低,安全性较差,因此将其部署在内核态以提高安全性。监听模块部署在domO的用户空间。
假设domO是安全的,将安全模块部署在domU不能保证安全模块自身的安全,因此安全模块应该部署在的全级别较高的domO以避免自身受到攻击的威胁。整体系统架构如图1所示。
各模块功能:
监控模块:监控来自于HVM(硬件虚拟化客户操作系统)用户空间的磁盘文件操作,获取操作行为信息。
信息发送模块:实时发送操作行为信息。
监听模块:监听信息发送模块,接收操作行为信息。
安全模块:保障监控模块和信息发送模块的运行时安全。
2、监控模块具体实现
2.1)截获磁盘文件操作
在用户态,能够产生文件操作的动作有以下三种:shell命令,libc函数,系统调用。Linux命令以及shell脚本或者内建命令会调用libc函数中的文件操作函数,libc函数会调用系统调用操作文件,当然用户态也可以直接通过system_callx函数调用系统调用。无论哪种情况最终都会通过系统调用然后通过对应的内核例程完成文件操作。当然各个文件系统实现的接口可能不同,Linux虚拟文件系统层提供了抽象的操作,以便将通用文件对象与具体文件系统实现的底层机制关联起来,包括各种特殊文件,例如字符设备文件,块设备文件,管道文件等,无需再去区分不同种类文件系统的操作函数或者不同类别文件具体的操作函数,各个file实例都包含一个指向struct file_operations实例的指针,该结构保存了指向所有可能文件操作的函数指针。因此,虚拟文件系统是所有磁盘文件操作的必经之路。系统调用则调用了虚拟文件系统提供的文件操作接口完成操作。所以,截获系统调用可以捕捉到所有的文件操作,如图2所示。
首先获取系统调用表地址:CPU寄存器IDTR中高32位保存了中断描述符表的起始地址,用_asm_(″sidt%0″:″=m″(idtr));指令得到中断描述符表起始地址,从这条指令中得到的指针可以获得int 0x80中断服描述符所在位置,门描述符的高16位和低16位共同组成了32位system_call函数的地址。反编译一下system_call函数可以看到在system_call函数内,是用call sys_call_table指令来调用系统调用函数的。因此,只要找到system_call里的call sys_call_table(,eax,4)指令的机器指令就可以获得系统调用表的入口地址。找到系统调用表后,设置CRO寄存器16位为0,清除写保护位,修改系统调用表,替换系统调用。
2.2)磁盘文件操作的调用进程分析
domO对于硬件虚拟化客户操作系统的监控要求是:实时监控所有涉及改变磁盘文件内容及属性的操作。从发起磁盘文件操作的进程角度分析,总体分为两类:一类是系统进程,包括系统用户空间守护进程和系统内核线程,这些进程负责为系统提供服务,会经常调用读、写、创建、删除磁盘文件操作,也会读写某些非磁盘文件(设备文件)。这些进程对磁盘文件操作的调用不会对文件和文件系统安全产生威胁,因此不需要监控系统进程对磁盘文件操作的调用。另一类是用户进程,包括用户启动的所有进程,本发明的用户与系统交互界面是bash,所有用户的行为都在bash下进行,因此,需要监控所有在bash环境下启动的进程,包括两类:bash子孙进程和与bash脱离关系的孤儿进程。所有在bash下运行的进程在创建时都是bash的子进程。并非所有在bash下执行的程序都会创建一个新的进程。bash的内建命令不会创建新的进程,直接在bash的环境中运行,所以,bash进程本身也是监视对象。除过内建命令,其他的命令,脚本或者程序运行时,首先创建一个新的进程组,创建进程组的进程成为组长进程,在新建的进程组内创建新进程执行函数,所有bash下创建的进程(不包括守护进程)可能属于不同的进程组,但是同属于一个会话,前提是不调用setsid函数,因此具有相同的会话ID,如图3a)所示。以bash调用管道线ps|cat1|cat2为例,如图3b)所示。如果在bash下创建守护进程,调用进程调用setsid函数创建一个新的会话和进程组,自己成为进程组组长,失去了和bash之间的联系,父进程变成init。系统中有很多守护进程在系统启动阶段就已经运行了,为了区分bash会话下创建的守护进程和系统的守护进程,定义一个全局变量user_deamon哈希表用来存放所有bash会话下创建的守护进程及其子进程,初始化为空。当有守护进程创建时,查找其父进程是否在user_deamon中,若存在,表示是已存在的守护进程又创建的进程,将该进程放入user_deamon中,若不存在,表示不是bash会话下创建的守护进程或者不是已创建的bash会话下的守护进程创建的进程。整体识别bash进程和子孙进程以及孤儿进程的过程如图4所示。
2.3)磁盘文件种类分析:
终端作为与用户交互的平台会频繁的输入输出信息,也就是说系统会频繁的调用write函数向标准输出或者标准错误输出信息。这些操作不会影响文件系统的完整性。不仅是标准输出,所有对设备文件的写都不会对数据造成任何影响,包括字符设备和块设备。除此之外还有一些特殊的文件也不需要监控,例如写管道文件,socket文件等。普通用户对于这些特殊文件的读写创建删除等操作不会对磁盘上的数据造成改变,因此,这些特殊文件的一些操作不需要监控。由文件描述符识别文件种类的过程如图5所示。
文件对应的inode节点中的i_mode字段表示文件的类型。
2.4)磁盘文件操作分析
磁盘文件操作的主体是进程,动作是磁盘文件操作,客体是磁盘文件,决定对一个操作是否监控不能凭借某一个部分作出判断,必须根据这三者的结合作出判断,决定是否需要监控,下面以表格的方式给出部分进程,磁盘文件操作,磁盘文件的判定逻辑表:
文件类型 | 文件操作 | 是否监控 |
普通文件 | 创建,删除,写,截短,复制,更改属性, | 是 |
普通文件 | 读 | 否 |
目录文件 | 创建,删除,更改inode或者file属性。 | 是 |
目录文件 | 读,写 | 否 |
设备文件 | 创建,删除,更改inode或者file属性 | 是 |
设备文件 | 读,写 | 否 |
链接 | 创建,删除,截短,写,更改inode或者file属性 | 是 |
链接 | 读 | 否 |
管道/套接字 | 创建,删除,更改inode或者file属性 | 是 |
管道/套接字 | 读,写 | 否 |
结合监控逻辑判断表,给出具体流程如图6。
首先分析进程,捕获普通用户进程,然后确定操作行为,在对应的操作行为中判断文件类型,根据监控逻辑判断表做出判断。
2.5)磁盘文件操作行为信息获取
为满足细粒度的监控要求,同时为监控者提供丰富准确的行为信息,比便准确定位和分析恶意行为,本发明设计提供如下行为信息:
1进程信息:提供用进程ID号和进程名,说明行为的执行程序。
通过当前进程的进程控制块结构体指针CURRENT获取相关字段。
2用户信息:提供用户ID号以标识执行操作的用户。
通过当前进程的进程控制块结构体指针CURRENT获取相关字段。
3操作信息:说明进行了何种操作,例如文件的创建,删除,截短,写入等。
在替换的系统调用中识别操作类型,返回对应的字符串信息。
4执行路径:确定程序执行的位置,考虑到用户执行程序时会切换目录,提供程序执行时的绝对路径是必要的。
程序运行的绝对路径不一定就是程序以文件方式存放的绝对路径名,需要考虑目录的切换。具体获取过程:由当前进程控制块结构体中的fs指针获取目录信息结构体fs_struct,获取其中的dentry指针pwd,该指针指向当前目录的dentry结构,获取其中的vfsmount结构体指针,该指针所指结构体表示当前目录所在的已装载文件系统。查看该目录是否为文件系统装载点,如果是,根据mnt_parent指针查看是否存在父文件系统,如果是,获取mnt_mountpoint,即装载点在父文件系统中的dentry,并保存。按照以上步骤继续遍历父文件系统。如果不存在父文件系统或者不是装载点,根据dentry树向上遍历直到根dentry。在此过程中保存dentry中的路径名字符串。结束之后,倒置字符串。获取流程如图7。
5目标信息:提供发生变化的目标文件的绝对路径和文件名,有助于文件内容恢复和检查。
在从用户空间传入到内核空间的文件参数有两种表示方法:字符串和文件描述符。对于两种形式的参数需要分别处理。字符串形式的参数:首先调用getname()函数从用户空间拷贝文件名至内核空间;分析字符串格式,如果字符串中有“/”字符但没有“.”字符,表示当前字符串为绝对路径名,直接返回该字符串即可;如果字符串中有“./”子串或没有“/”字符,表示文件处于当前运行目录,调用图7所示的算法获取绝对路径,返回结果。如果字符串中有“../”子串,表示当前字符串起始于父目录,根据图5获取父目录dentry,调用图7所示算法,返回结果。文件描述符形式的参数:如图5所示路径,查找当前进程的文件描述符表获取文件的structfile结构,获取dentry结构体中的文件名字符串,转入字符串形式的形参的处理过程,省去拷贝字符串步骤。获取流程如图8。
6操作时间。
用内核函数获取当前日历时间rtc_get_trc_time(struct rtc_time*)。
3、信息发送模块和监听模块具体实现
信息发送和监听采用XenSocket机制通信,XenSocket是一个类unix域的socket,用来进行vm之间的高速通信。XenSocket的设计代替了在dom之间共享利用一个内存缓冲环的页面交换机制。这使得信息可以由一个dom写,另一个dom异步的读取。从效率上考虑,HVM使用了硬件虚拟化技术,特权指令的执行会陷入到根模式,执行完毕后,又切换到非根模式,开销比半虚拟化网络I/O模型明显增加,效率急剧降低。因此,本发明在硬件虚拟化操作系统中加装半虚拟化I/O模型,使得在硬件虚拟化操作系统中也可以使用半虚拟化的网络通信模型。
图9显示了在硬件虚拟化平台中实现半虚拟化I/O的模块结构图。为了在硬件虚拟机中使用半虚拟化的I/O设备,需要在硬件虚拟机中添加四个模块:网络前端,块设备前端,气球驱动,PCI平台。PCI平台(PCI Platform)是硬件虚拟化中其余三个模块的基础,它向硬件虚拟机提供了超级调用接口和事件机制。气球驱动(BalloonDriver)依赖于PCI平台,它为domO和硬件虚拟化domU提供共享内存机制。具有半虚拟化的基本机制后,虚拟网络前端(VIF)和虚拟块设备前端(VBD)就可以正常工作了。信息发送模块和监听模块类似于socket的客户端和服务端,结构如图10。
4、安全模块具体实现
安全模块部署在domO,实现为用户空间守护进程,调用XenAccess库提供的内存自省接口监视硬件虚拟化操作系统中信息发送模块和监控模块在运行时的内存,当硬件虚拟化操作系统中的模块加载时,调用xa_access_kernel_va函数遍历硬件虚拟化操作系统中可装载模块链表,找到监控模块和信息发送模块,计算代码段指针相对于struct module的相对偏移量,调用xa_access_kernel_va获取代码段内存,调用SHA-1哈希算法对该内存中的二进制值计算,并存储结果。采用轮询的方式,重复上述操作,将哈希结果和第一次存储的结果对比,如果相同,说明代码运行安全,否则说明HVM中的两个模块在运行时代码受到攻击。模块原理示意如图11。
Claims (4)
1.一种基于Xen硬件虚拟化的磁盘文件操作监控系统,其特征在于操作监控系统基于Xen的硬件虚拟化平台包括四个模块:监控模块、信息发送模块、监听模块和安全模块,监控模块部署在domU,实时监控domU中所有涉及改变磁盘文件内容及属性的操作并产生监控信息,通过信息发送模块发送给domO的监听模块,由监听模块记录相关信息;安全模块保证信息发送模块和监控模块运行时的安全;
所述监控模块不需要修改Xen Hypervisor,domO和客户操作系统,以可装载模块的形式实现,无需编译内核,能够实时监控,只监控涉及改变磁盘文件内容及属性的操作,获取详细的行为信息;
所述信息发送模块部署在domU,监听模块部署在domO的用户空间,信息发送模块和监听模块采用XenSocket机制实现domU和domO之间通信;
所述安全模块,不需要修改Xen Hypervisor,能够检测到监控模块和信息发送模块在运行时受到的恶意代码攻击;安全模块部署在的全级别较高的domO以避免自身受到攻击的威胁。
2.根据权利要求1所述的基于Xen硬件虚拟化的磁盘文件操作监控系统,其特征在于:通过在硬件虚拟化客户操作系统中加装半虚拟化I/O模型,具体安装有PCI平台,网络前端驱动,块设备前端驱动,气球驱动四个模块,PCI平台是硬件虚拟化中其余三个模块的基础,它向硬件虚拟机提供了超级调用接口和事件机制,气球驱动依赖于PCI平台,它为domO和硬件虚拟化domU提供共享内存机制,具有半虚拟化的基本机制后,虚拟网络前端和虚拟块设备前端就能正常工作,使得在硬件虚拟化操作系统中也可以使用半虚拟化的网络通信模型,大幅度降低了性能的损耗。
3.一种应用权利要求1所述系统实现基于Xen硬件虚拟化磁盘文件操作监控方法,其特征在于如下过程:
(1)截获并替换硬件虚拟化客户操作系统中磁盘文件操作系统调用:
1a)获取系统调用表地址;
1b)修改crO寄存器的系统调用表可写权限位,使系统调用表可写;
1c)确定替换系统调用的范围;
1d)编写新的系统调用替换原有系统调用,查询对应的系统调用号,修改相应的函数指针为新的函数;
(2)确定被监控文件的类型:
2a)通过当前进程结构体struct task和文件描述符获取文件的struct file结构;
2b)根据文件的内核结构struct file找到对用的inode节点;
2c)根据inode中的i_mode字段确定监控文件的类型;
(3)确定操作进程是否有必要被监控:
3a)获取inti_task地址,遍历系统进程列表,创建bash环境下用户进程哈希表;
3b)根据父子进程间的关系辨别是否是bash进程或者是bash子进程,将其存入哈希表;
3c)遍历哈希表,判断进程是否监控所有的bash下的进程活动,包括守护进程;
(4)根据操作类型、文件种类及进程信息综合确定该行为是否需要监控:
4a)创建监控逻辑表,包括四项:操作类型、文件种类、进程与是否需要监控;
4b)根据监控逻辑表,设计系统调用函数;
(5)获取行为信息:
5a)创建行为信息结构体,存储行为信息,具体包括进程ID、用户ID、操作进程、操作进程的运行位置以及目标文件绝对路径;
5b)通过进程结构体struct task获取进程ID、用户ID、操作进程;
5c)获取进程运行位置,过程如下:获取当前目录dentry结构,获取vfsmount结构的pwdmnt结构,判断是否为装载点,如果是则查找该dentry在父文件系统中的dentry,如果不是则继续向上查找上级目录的dentry并记录目录名直到根目录;
(6)获取操作目标绝对路径:
判断参数类型,目标文件的表示分为字符串和文件描述符两种,根据查找路径算法获得绝对路径;
(7)发送信息:
在系统调用函数中,将获取的行为信息利用XenSocket经前后端网络模型发送至domO;
(8)信息监听:
在domO创建监听用户态守护进程,将接收到信息追加到日志文件;
(9)检测运行在domU的监控模块和信息发送模块代码在运行时是否受到攻击:
9a)在domO创建用户态守护进程,调用XenAccess库的接口监视domU模块运行代码的内存区,获取原始数据;
9b)以轮询的方式监控domU模块的代码运行区,和原始数据进行哈希对比确定代码是否受到恶意攻击。
4.根据权利要求3所述的基于Xen硬件虚拟化磁盘文件操作监控方法,其特征在于如下过程:所述创建bash环境下用户进程哈希表是根据进程间的父子关系及会话关系信息建立的;所述的创建监控逻辑表能够有效避免无意义的监控;所述的获取操作目标绝对路径,采用与linux内核函数相反的方法,逆向解析了绝对路径;所述的发送信息,实现了在硬件虚拟化环境下运用半虚拟化I/O;所述的检测运行在domU的监控模块和信息发送模块代码在运行时是否受到攻击,监视可加载模块的运行代码,用以检测其在运行时是否受到攻击。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310326764.5A CN103399812B (zh) | 2013-07-22 | 2013-07-22 | 基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310326764.5A CN103399812B (zh) | 2013-07-22 | 2013-07-22 | 基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103399812A true CN103399812A (zh) | 2013-11-20 |
CN103399812B CN103399812B (zh) | 2016-04-13 |
Family
ID=49563445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310326764.5A Expired - Fee Related CN103399812B (zh) | 2013-07-22 | 2013-07-22 | 基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103399812B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156393A (zh) * | 2014-07-09 | 2014-11-19 | 深圳市中博科创信息技术有限公司 | 创建虚拟块设备的方法及分布式文件系统 |
CN104866407A (zh) * | 2015-06-23 | 2015-08-26 | 山东中孚信息产业股份有限公司 | 一种虚拟机环境下的监控系统及监控方法 |
CN105550575A (zh) * | 2015-12-03 | 2016-05-04 | 北京神州绿盟信息安全科技股份有限公司 | 一种未导出的函数地址和数据结构偏移的获取方法及装置 |
CN105653937A (zh) * | 2015-12-30 | 2016-06-08 | 北京神州绿盟信息安全科技股份有限公司 | 一种文件防护方法和装置 |
CN106203091A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 一种虚拟机逃逸检测方法及装置 |
CN103914332B (zh) * | 2014-04-14 | 2017-01-18 | 中国人民解放军国防科学技术大学 | 虚拟机客户操作系统内真实进程信息的探测方法 |
CN106528267A (zh) * | 2016-10-27 | 2017-03-22 | 广东铂亚信息技术有限公司 | 基于Xen特权域的网络通信监控系统及方法 |
CN107231352A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种面向Xen虚拟化环境的系统日志监控方法及装置 |
CN107479946A (zh) * | 2017-08-16 | 2017-12-15 | 南京大学 | 一种内核模块的交互行为监控方案 |
CN108920253A (zh) * | 2018-06-20 | 2018-11-30 | 成都虫洞奇迹科技有限公司 | 一种无代理的虚拟机监控系统和监控方法 |
CN109522186A (zh) * | 2018-11-19 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种基于Linux磁盘访问的监控方法及系统 |
CN109800570A (zh) * | 2018-12-29 | 2019-05-24 | 360企业安全技术(珠海)有限公司 | 一种虚拟化平台的安全防护方法及装置 |
CN110866248A (zh) * | 2018-11-28 | 2020-03-06 | 北京安天网络安全技术有限公司 | 一种勒索病毒识别方法、装置、电子设备及存储介质 |
CN110866245A (zh) * | 2019-11-13 | 2020-03-06 | 哈尔滨工业大学 | 一种维护虚拟机文件安全的检测方法及检测系统 |
CN111030973A (zh) * | 2019-03-29 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种基于标识文件定位攻击的方法、装置及存储设备 |
CN113448690A (zh) * | 2021-08-27 | 2021-09-28 | 阿里云计算有限公司 | 监测方法及装置 |
CN113553228A (zh) * | 2021-06-21 | 2021-10-26 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 轻量化的计算机状态监控系统及方法 |
CN113704179A (zh) * | 2020-05-21 | 2021-11-26 | 网神信息技术(北京)股份有限公司 | 文件监控方法、装置、计算机系统及存储介质 |
CN115664892A (zh) * | 2022-10-17 | 2023-01-31 | 麒麟软件有限公司 | 虚拟监控器下Linux虚拟网卡的实现方法 |
CN115840938A (zh) * | 2023-02-21 | 2023-03-24 | 山东捷讯通信技术有限公司 | 一种文件监控的方法及装置 |
CN116049131A (zh) * | 2022-06-10 | 2023-05-02 | 荣耀终端有限公司 | 文件管理方法、系统、电子设备及存储介质 |
CN116301471A (zh) * | 2023-05-18 | 2023-06-23 | 深圳前海环融联易信息科技服务有限公司 | 文件自动插入的实现方法以及文件自动插入方法 |
CN117591489A (zh) * | 2024-01-16 | 2024-02-23 | 麒麟软件有限公司 | 基于多系统隔离的虚拟文件共享系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216850A (zh) * | 2008-01-11 | 2008-07-09 | 清华大学 | 文件系统访问记录的动态采集方法 |
CN101661381A (zh) * | 2009-09-08 | 2010-03-03 | 华南理工大学 | 一种基于Xen的数据共享与访问控制方法 |
US20100318990A1 (en) * | 2009-06-12 | 2010-12-16 | International Business Machines Corporation | Method and apparatus for scalable monitoring of virtual machine environments |
-
2013
- 2013-07-22 CN CN201310326764.5A patent/CN103399812B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216850A (zh) * | 2008-01-11 | 2008-07-09 | 清华大学 | 文件系统访问记录的动态采集方法 |
US20100318990A1 (en) * | 2009-06-12 | 2010-12-16 | International Business Machines Corporation | Method and apparatus for scalable monitoring of virtual machine environments |
CN101661381A (zh) * | 2009-09-08 | 2010-03-03 | 华南理工大学 | 一种基于Xen的数据共享与访问控制方法 |
Non-Patent Citations (1)
Title |
---|
赵威: "Xen虚拟化网络I/O优化方法", 《中国优秀硕士学位论文全文数据库》, no. 7, 15 July 2012 (2012-07-15), pages 9 - 28 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914332B (zh) * | 2014-04-14 | 2017-01-18 | 中国人民解放军国防科学技术大学 | 虚拟机客户操作系统内真实进程信息的探测方法 |
CN104156393A (zh) * | 2014-07-09 | 2014-11-19 | 深圳市中博科创信息技术有限公司 | 创建虚拟块设备的方法及分布式文件系统 |
CN104866407A (zh) * | 2015-06-23 | 2015-08-26 | 山东中孚信息产业股份有限公司 | 一种虚拟机环境下的监控系统及监控方法 |
CN105550575B (zh) * | 2015-12-03 | 2018-10-02 | 北京神州绿盟信息安全科技股份有限公司 | 一种未导出的函数地址和数据结构偏移的获取方法及装置 |
CN105550575A (zh) * | 2015-12-03 | 2016-05-04 | 北京神州绿盟信息安全科技股份有限公司 | 一种未导出的函数地址和数据结构偏移的获取方法及装置 |
CN105653937A (zh) * | 2015-12-30 | 2016-06-08 | 北京神州绿盟信息安全科技股份有限公司 | 一种文件防护方法和装置 |
CN105653937B (zh) * | 2015-12-30 | 2019-03-26 | 北京神州绿盟信息安全科技股份有限公司 | 一种文件防护方法和装置 |
CN106203091A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 一种虚拟机逃逸检测方法及装置 |
CN106203091B (zh) * | 2016-06-30 | 2019-02-22 | 北京奇虎科技有限公司 | 一种虚拟机逃逸检测方法及装置 |
CN106528267A (zh) * | 2016-10-27 | 2017-03-22 | 广东铂亚信息技术有限公司 | 基于Xen特权域的网络通信监控系统及方法 |
CN106528267B (zh) * | 2016-10-27 | 2019-08-09 | 广东铂亚信息技术有限公司 | 基于Xen特权域的网络通信监控系统及方法 |
CN107231352A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种面向Xen虚拟化环境的系统日志监控方法及装置 |
CN107479946A (zh) * | 2017-08-16 | 2017-12-15 | 南京大学 | 一种内核模块的交互行为监控方案 |
CN107479946B (zh) * | 2017-08-16 | 2020-06-16 | 南京大学 | 一种内核模块的交互行为监控方案 |
CN108920253A (zh) * | 2018-06-20 | 2018-11-30 | 成都虫洞奇迹科技有限公司 | 一种无代理的虚拟机监控系统和监控方法 |
CN109522186A (zh) * | 2018-11-19 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种基于Linux磁盘访问的监控方法及系统 |
CN109522186B (zh) * | 2018-11-19 | 2021-11-05 | 郑州云海信息技术有限公司 | 一种基于Linux磁盘访问的监控方法及系统 |
CN110866248A (zh) * | 2018-11-28 | 2020-03-06 | 北京安天网络安全技术有限公司 | 一种勒索病毒识别方法、装置、电子设备及存储介质 |
CN110866248B (zh) * | 2018-11-28 | 2022-06-10 | 北京安天网络安全技术有限公司 | 一种勒索病毒识别方法、装置、电子设备及存储介质 |
CN109800570A (zh) * | 2018-12-29 | 2019-05-24 | 360企业安全技术(珠海)有限公司 | 一种虚拟化平台的安全防护方法及装置 |
CN111030973B (zh) * | 2019-03-29 | 2023-02-24 | 安天科技集团股份有限公司 | 一种基于标识文件定位攻击的方法、装置及存储设备 |
CN111030973A (zh) * | 2019-03-29 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种基于标识文件定位攻击的方法、装置及存储设备 |
CN110866245A (zh) * | 2019-11-13 | 2020-03-06 | 哈尔滨工业大学 | 一种维护虚拟机文件安全的检测方法及检测系统 |
CN110866245B (zh) * | 2019-11-13 | 2023-11-07 | 哈尔滨工业大学 | 一种维护虚拟机文件安全的检测方法及检测系统 |
CN113704179A (zh) * | 2020-05-21 | 2021-11-26 | 网神信息技术(北京)股份有限公司 | 文件监控方法、装置、计算机系统及存储介质 |
CN113704179B (zh) * | 2020-05-21 | 2023-12-05 | 奇安信网神信息技术(北京)股份有限公司 | 文件监控方法、装置、计算机系统及存储介质 |
CN113553228A (zh) * | 2021-06-21 | 2021-10-26 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 轻量化的计算机状态监控系统及方法 |
CN113448690A (zh) * | 2021-08-27 | 2021-09-28 | 阿里云计算有限公司 | 监测方法及装置 |
CN116049131B (zh) * | 2022-06-10 | 2023-10-13 | 荣耀终端有限公司 | 文件管理方法、系统、电子设备及存储介质 |
CN116049131A (zh) * | 2022-06-10 | 2023-05-02 | 荣耀终端有限公司 | 文件管理方法、系统、电子设备及存储介质 |
CN115664892A (zh) * | 2022-10-17 | 2023-01-31 | 麒麟软件有限公司 | 虚拟监控器下Linux虚拟网卡的实现方法 |
CN115840938A (zh) * | 2023-02-21 | 2023-03-24 | 山东捷讯通信技术有限公司 | 一种文件监控的方法及装置 |
CN116301471B (zh) * | 2023-05-18 | 2023-09-01 | 深圳前海环融联易信息科技服务有限公司 | 文件自动插入的实现方法以及文件自动插入方法 |
CN116301471A (zh) * | 2023-05-18 | 2023-06-23 | 深圳前海环融联易信息科技服务有限公司 | 文件自动插入的实现方法以及文件自动插入方法 |
CN117591489A (zh) * | 2024-01-16 | 2024-02-23 | 麒麟软件有限公司 | 基于多系统隔离的虚拟文件共享系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103399812B (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103399812B (zh) | 基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 | |
CN101819525B (zh) | 用于查找系统中应用的配置文件的方法和设备 | |
Ji et al. | Enabling refinable {Cross-Host} attack investigation with efficient data flow tagging and tracking | |
CN100375060C (zh) | 一种嵌入式系统及其实时内存监控处理方法 | |
CN102651062B (zh) | 基于虚拟机架构的恶意行为跟踪系统和方法 | |
CN104008329B (zh) | 一种基于虚拟化技术的软件隐私泄露行为检测方法及系统 | |
CN109583200B (zh) | 一种基于动态污点传播的程序异常分析方法 | |
CN105184166A (zh) | 基于内核的安卓程序实时行为分析方法及系统 | |
Palisse et al. | Data aware defense (DaD): towards a generic and practical ransomware countermeasure | |
CN101770551A (zh) | 一种基于硬件模拟器的处理隐藏进程的方法 | |
CN107004088B (zh) | 确定装置、确定方法及记录介质 | |
US8875114B2 (en) | Employing identifiers provided by an operating system of a processing environment to optimize the processing environment | |
CN103902885A (zh) | 面向多安全等级虚拟桌面系统虚拟机安全隔离系统及方法 | |
CN104598823A (zh) | 一种安卓系统中内核级rootkit检测方法及其系统 | |
CN101853200A (zh) | 一种高效动态软件漏洞挖掘方法 | |
CN111625833B (zh) | 一种高效的软件程序释放后重用漏洞判定方法和装置 | |
US20220035905A1 (en) | Malware analysis through virtual machine forking | |
US20130111018A1 (en) | Passive monitoring of virtual systems using agent-less, offline indexing | |
CN107368739A (zh) | 一种内核驱动的监视方法和装置 | |
CN108228319B (zh) | 一种基于多桥的语义重构方法 | |
CN113176926B (zh) | 一种基于虚拟机自省技术的api动态监控方法及系统 | |
Zuo | Defense of Computer Network Viruses Based on Data Mining Technology. | |
Knauth et al. | Vecycle: Recycling vm checkpoints for faster migrations | |
CN106970871A (zh) | 一种外挂程序检测的方法及装置 | |
Peng et al. | Micro-architectural features for malware detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160413 Termination date: 20210722 |
|
CF01 | Termination of patent right due to non-payment of annual fee |