一种基于内存信息解决文件数据块语义鸿沟的方法

文档序号:9810626阅读:320来源:国知局
一种基于内存信息解决文件数据块语义鸿沟的方法
【技术领域】
[0001]本发明涉及一种解决磁盘块和文件之间存在巨大语义鸿沟的方法,具体的涉及一种基于内存信息解决文件数据块语义鸿沟的方法,属于计算机应用领域。
【背景技术】
[0002]目前虚拟机安全的趋势愈来愈倾向于无代理模式,以期获得更好的性能以及更便捷的部署方式。但在具体技术实现过程中,尤其是对于系统的运行状态,无代理监视与控制存在巨大的挑战:虚拟机外部可以截获到的事件与数据并不包含明确的语义信息,而安全所需要的恰恰是明确的系统语义,如何解决两者之间的鸿沟成为无代理技术应用的难题。
[0003]当前科研界对于解决内存语义信息作了比较多的研究,而文件操作语义信息的恢复相对较少,现有的一些做法是通过读取磁盘文件系统的元数据解析构建映射,这种方式存在如下一些问题:1.磁盘的访问速度远慢于内存,构建映射耗时长;2.磁盘上的数据是全集;3.磁盘与内存之间有缓存的存在。
[0004]然而,在实际运用中,申请人发现:内存信息中的数据是系统运行期间打开的文件;内存数据时效性更强。
[0005]为此,如何提供一种基于内存信息解决文件数据块语义鸿沟的方法,是本发明研究的目的所在。

【发明内容】

[0006]为解决现有技术的不足,本发明提供一种基于内存信息解决文件数据块语义鸿沟的方法,本发明结合系统内存中已打开的文件信息,快速、按需构建系统运行期间必须的映射集合,缩短构建时间的同时也提高了映射集合的使用效率;本发明聚焦于虚拟机文件事件的无代理检测,通过构建磁盘数据块与文件的映射,解决了虚拟机外部无代理模块侦测到的原始磁盘块读写数据与文件内容的语义鸿沟问题。
[0007]为解决现有技术问题,本发明所采用的技术方案是:一种基于内存信息解决文件数据块语义鸿沟的方法,包括虚拟机内部文件与虚拟机磁盘块映射构建、虚拟机内部文件与虚拟机磁盘块映射动态更新和虚拟机磁盘块操作与内部文件操作对应关系三个部分;
所述的虚拟机内部文件与虚拟机磁盘块映射构建包括:
①文件磁盘块映射接口模块获取用户虚拟机存在于宿主机中的物理内存页,并找到进程结构体链表的首地址,依据链表遍历每个进程结构体后执行下一步,
②在进程结构体中找到进程打开的所有文件信息,对于每个打开的文件,找到地址空间描述信息,从该部分的结构体中找出文件对应的磁盘块分布信息,
③找到的磁盘块分布信息,构建文件和磁盘块的映射关系,并存储到文件磁盘块映射集合;
所述的虚拟机内部文件与虚拟机磁盘块映射动态更新包括:
①虚拟机内部系统调用拦截模块找到虚拟机内部文件操作系统调用所在物理内存页,将该页置为不可执行,拦截住虚拟机内部文件系统调用,
②虚拟机内部系统调用拦截模块对应的文件结构体传递给文件磁盘块映射构建模块,由该模块从文件结构体解析出对应的磁盘块分布信息,从而更新映射关系到文件磁盘块映射集合;
所述的虚拟机磁盘块操作与内部文件操作对应关系包括:
①虚拟机磁盘块操作拦截模块拦截块设备后端驱动的1读写操作,并将虚拟机磁盘块号传递到文件磁盘块映射接口模块,
②文件磁盘块映射接口模块查询文件磁盘块映射集合,返回指定磁盘块号对应的文件路径。
[0008]进一步的,在虚拟机内部文件与虚拟机磁盘块映射构建的①中,所述的进程结构体在Linux下是task_struct, Windows下是EPR0CESS。
[0009]进一步的,在虚拟机内部文件与虚拟机磁盘块映射构建的②中,所述的空间描述信息在Linux下是address_space结构体。
[0010]进一步的,一种虚拟机监视器的控制方法,其特征在于包括以下步骤:
1)在虚拟机监视器管理域中安装虚拟机文件和磁盘块映射构建模块、文件系统调用捕获模块、接口提供模块;
2)文件和磁盘块映射模块基于虚拟机内存信息构建映射集合;
3)文件系统调用捕获模块捕获到文件创建、写入、删除事件,通知映射构建模块更新映射集合;
4)接口提供模块为其他组件提供接口,搜索映射集合,给出指定文件的磁盘块集合或者给出指定磁盘块所属的文件。
[0011]本发明的有益效果是:后续使用过程中搜索效率高;访问速度快,构建时间短;保持和系统真实运行状态同步。
【附图说明】
[0012]图1为本发明的步骤流程图。
【具体实施方式】
[0013]下面结合附图1对本发明做进一步分析。
[0014]本发明的核心是综合系统的内存信息和存储信息,基于虚拟机的内存数据,搜寻进程打开文件位于磁盘的数据块位置信息,构建打开的文件和磁盘数据块的映射,具体包括以下步骤:
1.搜寻系统中已打开的文件。读取指定虚拟机的内存,从内存中搜寻进程结构体链接表的入口,遍历系统中的进程,搜寻到每个进程打开的文件;
2.打开文件磁盘块信息获取。每个打开的文件都会在系统中存在一个结构体,记录了文件在内存中的表示,同时也记录了文件存储的块设备,以及块设备上的数据块位置信息。本发明解析内存数据,找到该文件结构体中的块设备信息、数据块位置信息;
3.构建系统打开文件和磁盘块的映射。依据上面两个步骤的结果,采用Hash表存储〈文件,磁盘块结合〉,可以成功构建系统当前已经打开的文件和磁盘块的映射; 4.动态更新映射集合。将创建文件、写入文件及删除文件系统调用的代码入口所在内存页设置为不可执行属性,一旦执行到这两个系统调用,则会被虚拟机监视器捕获到。无代理检测程序找到对应的文件、磁盘块信息,并更新映射集合。
[0015]
具体的,如图1所示,本发明在上述基础上提供的基于内存
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1