[发明专利]一种基于VMI的文件系统细粒度监控方法有效

专利信息
申请号: 201710681503.3 申请日: 2017-08-10
公开(公告)号: CN107391234B 公开(公告)日: 2020-07-03
发明(设计)人: 李金库;付丽嫆;苏继鹏;马建峰 申请(专利权)人: 西安电子科技大学
主分类号: G06F9/455 分类号: G06F9/455;G06F21/55;H04L29/06
代理公司: 西安通大专利代理有限责任公司 61200 代理人: 徐文权
地址: 710065 陕*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 vmi 文件系统 细粒度 监控 方法
【权利要求书】:

1.一种基于VMI的文件系统细粒度监控方法,其特征在于,包括以下步骤:

(1)用虚拟机管理器启动虚拟机;

(2)在虚拟机管理器层面向虚拟机添加系统调用监控规则,传入与文件操作相关的系统调用号作为监控参数;

步骤(2)包括以下步骤:

(2.1)暂停虚拟机运行;

(2.2)传入要监控的文件系统调用号0x0、0x1、0x2、0x3、0x50、0x52、0x53、0x54、0x59、0xa1和0x107作为监控参数,添加系统调用监控规则;

(2.3)恢复虚拟机运行;

(3)在虚拟机管理器层面开启系统调用监控功能;

(4)虚拟机正常运行中出现操作码异常,虚拟机产生系统中断,产生操作码异常的程序陷入虚拟机管理器,虚拟机将控制权移交虚拟机管理器;

(5)虚拟机管理器判定引起异常的指令类型,如果是SYSCALL指令,跳转到步骤(6),否则跳转到步骤(12);

(6)虚拟机管理器搜集跟系统调用相关的VCPU上下文信息,虚拟机管理器模拟虚拟机SYSCALL指令执行,并获得系统调用相关信息;

(7)虚拟机管理器读取RAX寄存器的值并记录系统调用发生的时刻,判定RAX的值,如果是与文件操作相关的系统调用,则解析系统调用相关参数;

步骤(7)包括以下步骤:

(7.1)读取RAX寄存器的值并记录系统调用发生的时刻,如果RAX=0或1,则执行步骤(7.2);如果RAX=2,则执行步骤(7.3);如果RAX=3,则执行步骤(7.4);如果RAX=80,则执行步骤(7.5);如果RAX=82,则执行步骤(7.6);如果RAX=83,则执行步骤(7.7);如果RAX=84,则执行步骤(7.8);如果RAX=89,则执行步骤(7.9);如果RAX=161,则执行步骤(7.10);如果RAX=263,则执行步骤(7.11);

(7.2)若RAX=0,文件系统调用是读系统调用;若RAX=1,文件系统调用是写系统调用,依据Linux文件系统调用表,需要解析文件描述符fd、文件缓冲区和缓冲区大小,步骤如下:

(7.2a)文件描述符fd的值被保存在寄存器RDI中,通过地址转换,访问物理内存,获得文件描述符fd;

(7.2b)指向文件缓冲区的指针被存放在寄存器RSI中,通过地址转换,访问物理内存,获得指向文件缓冲区的指针,访问指向文件缓冲区的指针,获得文件缓冲区内容;

(7.2c)缓冲区大小被存放在寄存器RDX中,通过地址转换,访问物理内存,获得缓冲区大小;

(7.2d)跳转到步骤(8);

(7.3)文件系统调用是打开或创建文件系统调用,依据Linux文件系统调用表,需要解析文件名、文件的flag信息、文件的mode参数,步骤如下:

(7.3a)指向文件名的指针被存放在寄存器RDI中,通过地址转换,访问物理内存,获得指向文件名的指针,访问指向文件名的指针,获得打开或创建的文件名;

(7.3b)文件的flag信息被保存在寄存器RSI中,通过地址转换,访问物理内存,获得文件的flag信息;

(7.3c)文件的mode参数被保存在寄存器RDX中,通过地址转换,访问物理内存,获得文件的mode参数;

(7.3d)跳转到步骤(8);

(7.4)文件系统调用是关闭文件系统调用,依据Linux文件系统调用表,需要解析文件描述符fd,具体步骤如下:

(7.4a)文件描述符fd的值被保存在寄存器RDI中,通过地址转换,访问物理内存,可获得文件描述符fd;

(7.4b)跳转到步骤(8);

(7.5)文件系统调用是改变当前工作目录的系统调用,依据Linux文件系统调用表,需要解析目录名,步骤如下:

(7.5a)目录名的值被保存在寄存器RDI中,通过地址转换,访问物理内存,获得指向目录名的指针,访问指向目录名的指针,获得目录名;

(7.5b)跳转到步骤(8);

(7.6)文件系统调用是文件或文件夹重命名系统调用,依据Linux文件系统调用表,需要解析旧名称和新名称,具体步骤如下:

(7.6a)指向旧名称的指针被存放在寄存器RDI中,通过地址转换,访问物理内存,获得指向旧名称的指针,访问指向旧名称的指针,获得旧名称;

(7.6b)指向新名称的指针被存放在寄存器RSI中,通过地址转换,访问物理内存,获得指向新名称的指针,访问指向新名称的指针,获得新名称;

(7.6c)跳转到步骤(8);

(7.7)文件系统调用是创建文件夹系统调用,依据Linux文件系统调用表,需要解析文件夹名和文件夹的mode参数,具体步骤如下:

(7.7a)指向文件夹名的指针被存放在寄存器RDI中,通过地址转换,访问物理内存,获得指向文件夹名的指针,访问指向文件夹名的指针,获得创建的文件夹名;

(7.7b)文件夹的mode参数被保存在寄存器RSI中,通过地址转换,访问物理内存,获得文件夹的mode参数;

(7.7c)跳转到步骤(8);

(7.8)文件系统调用是删除文件夹系统调用,依据Linux文件系统调用表,需要解析删除的文件夹名,步骤如下:

(7.8a)指向删除的文件夹名的指针被存放在寄存器RDI中,通过地址转换,访问物理内存,获得指向删除的文件夹名的指针,访问指向删除的文件夹名的指针,获得删除的文件夹名;

(7.8b)跳转到步骤(8);

(7.9)文件系统调用是读文件链接状态系统调用,依据Linux文件系统调用表,需要解析文件路径、文件缓冲区和缓冲区大小,具体步骤如下:

(7.9a)文件路径的值被保存在寄存器RDI中,通过地址转换,访问物理内存,获得指向文件路径的指针,访问指向文件路径的指针,获得文件路径;

(7.9b)指向文件缓冲区的指针被存放在寄存器RSI中,通过地址转换,访问物理内存,获得指向文件缓冲区的指针,访问指向文件缓冲区的指针,获得文件缓冲区内容;

(7.9c)缓冲区大小被存放在寄存器RDX中,通过地址转换,访问物理内存,获得缓冲区大小;

(7.9d)跳转到步骤(8);

(7.10)文件系统调用是改变根目录的系统调用,依据Linux文件系统调用表,需要解析目录名,具体步骤如下:

(7.10a)目录名的值被保存在寄存器RDI中,通过地址转换,访问物理内存,获得指向目录名的指针,访问指向目录名的指针,获得目录名;

(7.10b)跳转到步骤(8);

(7.11)文件系统调用是删除文件系统调用,依据Linux文件系统调用表,需要解析文件描述符、文件路径和标志位flag,具体步骤如下:

(7.11a)文件描述符的值被保存在寄存器RDI中,通过地址转换,访问物理内存,获得文件描述符;

(7.11b)指向文件路径的指针被存放在寄存器RSI中,通过地址转换,访问物理内存,获得指向文件路径的指针,访问指向文件路径的指针,获得文件路径;

(7.11c)标志位flag被存放在寄存器RDX中,通过地址转换,访问物理内存,获得标志位flag;

(7.11d)跳转到步骤(8);

(8)虚拟机管理器解析发出系统调用程序的PID号;

(9)虚拟机管理器解析发出系统调用程序所在的目录;

(10)虚拟机管理器解析发出系统调用程序的名称;

(11)虚拟机管理器读取寄存器RAX的值,解析系统调用的返回值;

(12)虚拟机管理器将控制权交还虚拟机;

(13)虚拟机管理器判断文件系统调用监控是否关闭,如果是,跳转到步骤(14),否则跳转到步骤(5);

(14)用户发出关闭系统调用监控的指令,由虚拟机管理器执行。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710681503.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top