一种基于物理页地址分析的虚拟机内存隔离性检测方法技术

技术编号:18861348 阅读:38 留言:0更新日期:2018-09-05 14:39
本发明专利技术公开了一种基于物理页地址分析的虚拟机内存隔离性检测方法,包括以下步骤:获取虚拟机物理页基地址集合;获取虚拟机物理页读写权限;对比虚拟机物理内存信息。本发明专利技术针对目前对虚拟化产品的内存隔离性检测方法空白的问题,提出了一种虚拟机内存隔离性检测方法,可为虚拟化产品内存隔离的安全测试、安全审查等提供技术支持。

A method of memory isolation detection for virtual machine based on physical page address analysis

The invention discloses a virtual machine memory isolation detection method based on physical page address analysis, which comprises the following steps: acquiring the virtual machine physical page base address set; acquiring the virtual machine physical page read and write permission; and comparing the virtual machine physical memory information. Aiming at the blank problem of memory isolation detection method for virtualized products, the invention proposes a virtual machine memory isolation detection method, which can provide technical support for security testing and security review of memory isolation for virtualized products.

【技术实现步骤摘要】
一种基于物理页地址分析的虚拟机内存隔离性检测方法
本专利技术涉及虚拟机安全
,尤其涉及一种基于物理页地址分析的虚拟机内存隔离性检测方法。
技术介绍
云计算是一种将池化的集群计算能力通过互联网向内外部用户提供弹性、按需服务的互联网新业务和新技术。虚拟化技术是云计算一项重要的基础性技术,通过虚拟机管理程序VMM(VirtualMachineMonitor)或称为Hypervisor(系统管理程序),访问宿主机上的所有硬件设备。当宿主机启动并调动Hypervisor时,它会加载所有虚拟机上的操作系统,同时给每个虚拟机分配适量的网络CPU、磁盘和内存等物理资源。由VMM或Hypervisor负责协调这些硬件资源的访问,同时也在虚拟机之间实施安全防护。云计算环境中多个用户共享资源,多个虚拟资源很可能被绑定到相同的物理资源上。从安全角度出发,虚拟机之间的资源应严格隔离,对此,国家相关标准规范作了明确要求。但是,如何测试、评价虚拟机内存隔离性,目前欠缺相应的技术手段和方法。在对虚拟化产品安全检测、云服务安全审查等测评活动中涉及虚拟机内存隔离性时,测评(评价)人员采用的方法通常包括两种:一是文档检查,查看是否采取了相关技术手段确保不同虚拟机之间的内存隔离;二是试验测试,典型做法是在物理机上新建虚拟机实现对物理内存的满占,再尝试新建虚拟机,如果失败则认为实现了内存隔离。上述两种方式显然不够严谨、不够科学,对于是否实现虚拟机之间的内存隔离不能提供明确、确实的证据。
技术实现思路
本专利技术所要解决的技术问题是:面向虚拟化产品的内存隔离性检测难的问题,提供一种基于物理页地址分析的虚拟机内存隔离性检测方法,实现对虚拟机内存占用的底层透视检测,绘制虚拟机内存物理地址的分布图,寻找是否存在内存交叉重叠区域,对虚拟机是否确实进行内存隔离进行技术检测。本专利技术提供的一种基于物理页地址分析的虚拟机内存隔离性检测方法,包括以下步骤:获取虚拟机物理页基地址集合;获取虚拟机物理页读写权限;对比虚拟机物理内存信息。进一步,所述获取虚拟机物理页基地址集合的步骤包括:获取虚拟机内存的虚拟地址空间;根据所述虚拟地址空间获取所述物理页基地址。进一步,所述获取物理页基地址的步骤包括:获取页全局目录项物理地址;获取页中间目录项物理地址;获取页表项物理地址。进一步,所述获取虚拟机物理页读写权限的步骤包括:读取vm_area_struct结构体中的vm_flags标志;或者读取页表项标志位。进一步,所述读取页表项标志位获取虚拟机物理页读写权限的步骤包括:获取各页表项的R/W标志位,其中,R/W=0代表只读,R/W=1代表读写;若R/W=0,则停止读取,判断其所指向的所有物理页为只读;若R/W=1,则继续遍历,直到获取所有物理页属性,若各级页表项均满足R/W=1,则判断该物理页的读写权限为既可以读又可以写,否则,判断该物理页的读写权限为只读。进一步,所述对比虚拟机物理内存信息的步骤包括:在获取两台虚拟机内存的真实物理地址的基础上,对比两台虚拟机的物理内存地址是否有重叠区域,若没有,则判断为内存隔离;若有,进一步获取该重叠区域的读写权限,并检测该两台虚拟机对该重叠区域是否只有只读权限;若是,则判断为内存隔离成功,否则,判断为内存隔离失败。进一步,当虚拟化产品存在多台虚拟机时,随机选择虚拟机进行两两比较,若有一比较结果提示内存隔离失败,则判断为该虚拟化产品内存隔离失败。通过采用以上的技术方案,本专利技术的有益效果是:针对目前对虚拟化产品的内存隔离性检测方法空白的问题,提出了一种虚拟机内存隔离性检测方法,界定了虚拟机内存隔离的含义,为开展内存隔离检测奠定了基础;形成内存隔离检测的具体方法,并给出了内存隔离检测的具体实现途径,可为虚拟化产品内存隔离的安全测试、安全审查等提供技术支持。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1为本专利技术的虚拟机内存隔离性检测方法流程图;图2为获取虚拟机内存的虚拟地址空间方法流程图;图3为以三级页表映射机制来得到物理页基地址的过程示意图;图4为虚拟机物理页读写权限的获取方法示意图。具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。在qemu-kvm虚拟化环境下,一个虚拟机VM相当于宿主机操作系统上的一个qemu进程,根据这一点来讲,“虚拟机内存隔离检测”等同于“对应的宿主机进程内存隔离检测”。进程内存隔离,指不同的进程所对应的真实物理内存之间不存在交叉或者重复的状态。然而由于进程间共享内存或者KSM(内核相同页合并)等技术的使用,进程所对应的真实物理地址之间存在重叠的现象。因此,在这里对虚拟机内存隔离做如下的定义:(1)进程之间不重叠的内存要做到真实的物理空间上的隔离;(2)进程之间重叠的内存,确保进程对其拥有只读权限,做到逻辑隔离。据此,虚拟机A和虚拟机B之间的内存隔离检测方法就是:分别遍历出虚拟机A和B所对应的所有内存的真实物理的地址,分别记为集合pa(A)和pa(B),如果pa(A)和pa(B)之间没有交集,则虚拟机A和B处于内存隔离状态;如果pa(A)与pa(B)之间存在交集,得到该交集的物理地址,查询虚拟机A和B对该部分物理内存的权限设置,保证虚拟机A和B对该部分物理内存只有读权限,否则,报警出现内存不隔离的现象。由于物理内存是以固定大小的页(比如:4KB)为单位进行分配的,而且每个物理页中包含的物理内存的读写权限都是一样的,于是上述的集合pa(A)和pa(B)中可以不用遍历所有的物理地址,只要分别存储相应虚拟机使用的物理页的基地址即可。如图1所示,本专利技术的一种基于物理页地址分析的虚拟机内存隔离性检测方法,包括:获取虚拟机物理页基地址集合;获取虚拟机物理页读写权限;对比虚拟机物理内存信息。前两个步骤的所用信息从Hypervisor获取,实现对虚拟机内存占用的底层透视检测能力。在一个实施例中,该虚拟机内存隔离性检测方法的具体过程如下:1、虚拟机物理页基地址集合的获取(1)虚拟机虚拟地址获取虚拟机是宿主机上的一个用户态进程,于是虚拟机物理页也就是该进程的物理页。基于Linux的进程内存空间的映射机制,涉及到两种内存地址空间:虚拟地址空间和物理地址空间,虚拟地址通过分页机制映射到物理地址,因此,要想获得进程的物理地址,需要首先获得其虚拟地址。如图2所示。在一个实施例中,虚拟地址获取步骤如下:第一步,在获得虚拟机对应的task_struct进程结构体后,得到mm_struct内存描述符。第二步,在mm_struct结构体中找到vm_area_struct结构体。通过vm_area_struct链表遍历出该进程使用的所有内存虚拟地址空间。其中,task_struct:进程结构体,内核用来管理某个进程,唯一对应每个进程。mm_struct:进程的虚拟地址空间描述符,唯一对应每个进程。描述了进程所使用的所有虚拟地址空间,该结构体中保存了进程内存地址空间多级页表映射过程中所使用的页全局目录首地址pgd。本文档来自技高网...

【技术保护点】
1.一种基于物理页地址分析的虚拟机内存隔离性检测方法,其特征在于,包括以下步骤:获取虚拟机物理页基地址集合;获取虚拟机物理页读写权限;对比虚拟机物理内存信息。

【技术特征摘要】
1.一种基于物理页地址分析的虚拟机内存隔离性检测方法,其特征在于,包括以下步骤:获取虚拟机物理页基地址集合;获取虚拟机物理页读写权限;对比虚拟机物理内存信息。2.根据权利要求1所述的一种基于物理页地址分析的虚拟机内存隔离性检测方法,其特征在于,所述获取虚拟机物理页基地址集合的步骤包括:获取虚拟机内存的虚拟地址空间;根据所述虚拟地址空间获取所述物理页基地址。3.根据权利要求2所述的一种基于物理页地址分析的虚拟机内存隔离性检测方法,其特征在于,所述根据所述虚拟地址空间获取所述物理页基地址的步骤包括:获取页全局目录项物理地址;获取页中间目录项物理地址;获取页表项物理地址。4.根据权利要求1所述的一种基于物理页地址分析的虚拟机内存隔离性检测方法,其特征在于,所述获取虚拟机物理页读写权限的步骤包括:读取vm_area_struct结构体中的vm_flags标志;或者读取页表项标志位。5.根据权利要求4所述的一种基于物理页地址分析的虚拟机内存隔离性检测方法,其特征在于,所述读取页表项标志位获取虚拟机物理...

【专利技术属性】
技术研发人员:张玲马晓旭饶志宏牛长喜王伟金鑫
申请(专利权)人:中国电子科技网络信息安全有限公司
类型:发明
国别省市:四川,51

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

1