内存数据获取方法、装置及存储介质制造方法及图纸

技术编号:35360961 阅读:12 留言:0更新日期:2022-10-29 17:58
本申请公开了一种内存数据获取方法、装置及存储介质,属于虚拟化技术领域。计算机设备的硬件资源被划分为REE侧和TEE侧,处理器将REE侧进行地址映射的第一页表共享给TEE侧,在TEE侧的目标SP中运行VMI程序,根据目标虚拟地址、第一页表和第二页表,通过目标SP中运行的VMI程序获取REE侧的目标VM的内存数据,第一页表是指将虚拟地址映射为中间地址的页表,第二页表是指将中间地址映射为物理地址的页表。由于目标SP中运行的VMI程序在获取目标VM的内存数据的时候使用的是REE侧共享的页面,并没有占用目标VM的页表,因此不会存在监控盲点,同时目标VM无法感知目标SP的存在。时目标VM无法感知目标SP的存在。时目标VM无法感知目标SP的存在。

【技术实现步骤摘要】
内存数据获取方法、装置及存储介质


[0001]本申请实施例涉及虚拟化
,特别涉及一种内存数据获取方法、装置及存储介质。

技术介绍

[0002]计算机设备的硬件资源能够被划分为富执行环境(Rich Execution Environment,REE)侧和可信执行环境(Trusted Execution Environment,TEE)侧。REE侧包括多个虚拟机(Virtual Machine,VM),VM用于处理用户相关数据,但是REE侧的安全性低于TEE侧,VM很容易被恶意攻击,导致用户数据的安全性较低。因此,需要获取VM的内存数据,以对VM进行监控,从而避免VM被恶意攻击。
[0003]虚拟机自省(virtual machine introspection,VMI)技术是业界关注的安全监控方案,也即是,通过VMI技术获取VM的内存数据,以对VM进行监控,能够避免VM被恶意攻击。相关技术提出了一种关于VMI技术进行内存数据获取的方法,该方法引入了沉浸式执行环境(Immersive Execution Environment ImEE)系统,且目标VM的扩展页表(Extended Page Table,EPT)所包括的一个或多个页表项被修改,被修改的页表项指向VMI程序。ImEE系统能够使用目标VM的虚拟地址,通过运行VMI程序,从EPT中直接确定对应的物理地址。这样,能够快速、高效地读取目标VM的内存数据,而且由于虚拟地址能够提供一些语义信息,所以ImEE系统能够有效地检测到目标VM是否被恶意攻击。r/>[0004]然而,由于VMI程序占用了EPT的一部分页表项,这些页表项被修改后所对应的数据为VMI程序的代码和数据,而不是目标VM的代码和数据,也即是,这些页表项原本所对应的目标VM的代码和数据并没有监控到,这样就会存在监控盲点。

技术实现思路

[0005]本申请实施例提供了一种内存数据获取方法、装置及存储介质等,能够一定程度上避免监控盲点的情况。下面通过多个方面介绍本申请,应理解的是,以下各方面的实现方式和有益效果可以相互参考。
[0006]第一方面,提供了一种内存数据获取方法,在该方法中,计算机设备的硬件资源被划分为REE侧和TEE侧,REE侧包括一个或多个VM,TEE侧包括一个或多个SP,TEE侧部署有VMI程序,该方法包括:处理器将REE侧进行地址映射的第一页表共享给TEE侧,第一页表是指将虚拟地址映射为中间地址的页表。处理器在目标SP中运行VMI程序,目标SP是指一个或多个SP中用于获取目标VM的内存数据的SP,目标VM是指一个或多个VM中的任一VM。处理器根据目标虚拟地址、第一页表和第二页表,通过目标SP中运行的VMI程序获取目标VM的内存数据,第二页表是指TEE侧和REE侧共享且用于将中间地址映射为物理地址的页表,目标虚拟地址是指待获取的内存数据对应的虚拟地址。
[0007]第一页表是指将虚拟地址映射为中间地址的页表,第二页表是指TEE侧和REE侧共享且用于将中间地址映射为物理地址的页表,因此,在REE侧和TEE侧共享第一页表和第二
页表之后,TEE侧的目标SP能够根据第一页表和第二页表确定目标VM的虚拟地址对应的物理地址,进而能够快速、高效地获取目标VM的内存数据。而且,目标SP中运行的VMI程序不会占用目标VM的页表,也即是,第一页表或者第二页表中的页表项并不会被修改为指向目标SP中运行的VMI程序,这样就不会存在监控盲点,同时,目标SP中运行的VMI程序在REE侧还能够很好地进行隐藏,目标VM无法感知目标SP的存在。
[0008]为了对目标VM进行更好地监控,REE侧的目标SP不仅要获取目标VM在用户空间的数据,还需要获取目标VM在内核空间的数据。为了能够获取到目标VM在用户空间的数据以及在内核空间的数据,REE侧和TEE侧均还包括第一基址寄存器和第二基址寄存器,第一基址寄存器为用户空间对应的基址寄存器,第二基址寄存器为内核空间对应的基址寄存器。也就是说,第一基址寄存器指向用户空间中进行虚拟地址到中间地址映射的页表,第二基址寄存器指向内核空间中进行虚拟地址到中间地址映射的页表。这样,在待获取的内存数据为用户空间的数据的情况下,处理器将REE侧的第一基址寄存器所指向的页表作为第一页表共享给TEE侧的第一基址寄存器。在待获取的内存数据为内核空间的数据的情况下,处理器将REE侧的第二基址寄存器所指向的页表作为第一页表共享给TEE侧的第二基址寄存器。
[0009]由于处理器能够工作在REE侧,也能够工作在TEE侧,且处理器能够在REE侧和TEE侧来回切换。当处理器工作在REE侧时,TEE侧的硬件资源是被禁止访问的。但是当处理器工作在TEE侧时,处理器既能够访问TEE侧的硬件资源,又能够访问REE侧的硬件资源。而且本申请实施例是通过TEE侧的目标SP来获取REE侧的目标VM的内存数据,所以,在本申请实施例中处理器工作在TEE侧。这样,处理器就能够访问REE侧的第一基址寄存器和第二基址寄存器,从而确定第一基址寄存器所指向的页表以及第二基址寄存器所指向的页表,进而在待获取的内存数据为用户空间的数据的情况下,将第一基址寄存器所指向的页表作为第一页表共享给TEE侧,在待获取的内存数据为内核空间的数据的情况下,将第二基址寄存器所指向的页表作为第一页表共享给TEE侧。在其它一些实施例中,处理器也可以不经过前述两种“情况”的判断直接将第一基址寄存器和/或第二基址寄存器的页表共享给TEE侧。
[0010]其中,基址寄存器用于存储内存入口地址,从而指向该内存入口地址对应的数据(该数据在本实施例中指的是页表数据)。因此,处理器将REE侧的第一基址寄存器所指向的页表作为第一页表共享给TEE侧的第一基址寄存器的实现过程包括:将TEE侧的第一基址寄存器中存储的地址修改为REE侧的第一基址寄存器中存储的页表入口地址,以将REE侧的第一基址寄存器所指向的页表作为第一页表共享给TEE侧的第一基址寄存器。
[0011]同理,处理器将REE侧的第二基址寄存器所指向的页表作为第一页表共享给TEE侧的第二基址寄存器的实现过程包括:将TEE侧的第二基址寄存器中存储的地址修改为REE侧的第二基址寄存器中存储的页表入口地址,以将REE侧的第二基址寄存器所指向的页表作为第一页表共享给TEE侧的第二基址寄存器。
[0012]在本申请一些实施例中,TEE侧的用户空间和内核空间中均部署有VMI程序。这样,在待获取的内存数据为用户空间的数据的情况下,处理器将REE侧的第一基址寄存器所指向的页表作为第一页表共享给TEE侧的第一基址寄存器之后,还需要将TEE侧的第二基址寄存器指向TEE侧的内核空间中部署的VMI程序,并以内核态权限在目标SP中运行第二基址寄存器指向的VMI程序。在待获取的内存数据为内核空间的数据的情况下,处理器将REE侧的
第二基址寄存器所指向的页表作为第一页表共享给TEE侧的第二基址寄存器之后,还需要将TEE侧的第一基址寄存器指向TEE侧的用户空间中部署的VMI程序,并以内核本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存数据获取方法,其特征在于,计算机设备的硬件资源被划分为富执行环境REE侧和可信执行环境TEE侧,所述REE侧包括一个或多个虚拟机VM,所述TEE侧包括一个或多个安全隔离区SP,所述TEE侧部署有虚拟机自省VMI程序,所述方法包括:处理器将所述REE侧进行地址映射的第一页表共享给所述TEE侧,所述第一页表是指将虚拟地址映射为中间地址的页表;所述处理器在目标SP中运行所述VMI程序,所述目标SP是指所述一个或多个SP中用于获取目标VM的内存数据的SP,所述目标VM是指所述一个或多个VM中的任一VM;所述处理器根据目标虚拟地址、所述第一页表和第二页表,通过所述目标SP中运行的所述VMI程序获取所述目标VM的内存数据,所述第二页表是指所述TEE侧和所述REE侧共享且用于将中间地址映射为物理地址的页表,所述目标虚拟地址是指待获取的内存数据对应的虚拟地址。2.如权利要求1所述的方法,其特征在于,所述REE侧和所述TEE侧均还包括第一基址寄存器和第二基址寄存器,所述第一基址寄存器为用户空间对应的基址寄存器,所述第二基址寄存器为内核空间对应的基址寄存器;所述处理器将所述REE侧进行地址映射的第一页表共享给所述TEE侧,包括:当所述待获取的内存数据为所述用户空间的数据,所述处理器将所述REE侧的所述第一基址寄存器所指向的页表作为所述第一页表共享给所述TEE侧的所述第一基址寄存器。3.如权利要求2所述的方法,其特征在于,所述TEE侧的所述用户空间和所述内核空间中均部署有所述VMI程序;所述处理器在目标SP中运行所述VMI程序,包括:所述处理器将所述TEE侧的所述第二基址寄存器指向所述TEE侧的所述内核空间中部署的所述VMI程序;所述处理器以内核态权限在所述目标SP中运行所述第二基址寄存器指向的VMI程序。4.如权利要求1所述的方法,其特征在于,所述REE侧和所述TEE侧均还包括第一基址寄存器和第二基址寄存器,所述第一基址寄存器为用户空间对应的基址寄存器,所述第二基址寄存器为内核空间对应的基址寄存器;所述处理器将所述REE侧进行地址映射的第一页表共享给所述TEE侧,包括:当所述待获取的内存数据为所述内核空间的数据,所述处理器将所述REE侧的所述第二基址寄存器所指向的页表作为所述第一页表共享给所述TEE侧的所述第二基址寄存器。5.如权利要求4所述的方法,其特征在于,所述TEE侧的所述用户空间和所述内核空间中均部署有所述VMI程序;所述处理器在目标SP中运行所述VMI程序,包括:所述处理器将所述TEE侧的所述第一基址寄存器指向所述TEE侧的所述用户空间中部署的所述VMI程序;所述处理器以内核态权限在所述目标SP中运行所述第一基址寄存器指向的VMI程序。6.如权利要求1

5任一所述的方法,其特征在于,所述REE侧和所述TEE侧均还包括第三基址寄存器,所述REE侧的所述第三基址寄存器和所述TEE侧的所述第三基址寄存器均指向所述第二页表;
所述处理器根据目标虚拟地址、所述第一页表和第二页表,通过所述目标SP中运行的所述VMI程序获取所述目标VM的内存数据,包括:所述处理器在所述目标SP中运行所述VMI程序的过程中,通过内存管理单元MMU根据所述第一页表确定所述目标虚拟地址对应的中间地址,以及根据所述TEE侧的所述第三基址寄存器所指向的所述第二页表确定所述中间地址对应的物理地址;所述处理器通过所述目标SP中运行的所述VMI程序获取所述物理地址对应的内存数据。7.如权利要求6所述的方法,其特征在于,所述通过MMU根据所述TEE侧的所述第三基址寄存器所指向的所述第二页表确定所述中间地址对应的物理地址,包括:在所述中间地址所在的页表项存储在安全内存的情况下,通过所述MMU获取所述中间地址所在页表项中的非安全NS位;如果所述NS位为第一数值,则通过所述MMU根据所述TEE侧的所述第三基址寄存器所指向的所述第二页表确定所述中间地址对应的物理地址。8.如权利要求6所述的方法,其特征在于,所述通过MMU根据所述TEE侧的所述第三基址寄存器所指向的所述第二页表确定所述中间地址对应的物理地址,包括:在所述中间地址所在的页表项存储在非安全内存的情况下,通过所述MMU根据所述TEE侧的所述第三基址寄存器所指向的所述第二页表确定所述中间地址对应的物理地址。9.如权利要求1

8任一所述的方法,其特征在于,所述TEE侧还包括第四基址寄存器,所述第四基址寄存器指向第三页表,所述第三页表是指供所述VMI程序正常运行而进行中间地址到物理地址映射的页表;所述处理器在目标SP中运行所述VMI程序,包括:所述处理器根据所述第四基址寄存器所指向的所述第三页表,在所述目标SP中运...

【专利技术属性】
技术研发人员:章张锴赵思齐陈谋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1