The invention discloses a memory forensics method, virtual machine for XenServer platform includes: acquiring the host physical memory information stored as memory image file; obtain the host kernel symbol table file; physical address for vmcoreinfo_xen content; according to the physical address for vmcoreinfo_xen content, parsing out the kernel symbols of the virtual address and domain_list pgd_l4; the pgd_l4 virtual address into a physical address; obtaining structure address; the structure to obtain the corresponding virtual machine according to the relationship between the structure of the virtual machine implementation; physical address conversion; access to the memory contents of the virtual machine to determine the physical and virtual machine operating system version of the virtual machine to determine the operation; the system, based on virtual machine operating system version of the different analysis method using the corresponding memory physical memory analysis.
【技术实现步骤摘要】
一种面向XenServer平台的虚拟机内存取证方法
本专利技术涉及一种面向XenServer平台的虚拟机内存取证方法。
技术介绍
相对于传统基于文件系统的取证,内存取证研究起步较晚,始于2005年夏季著名的DFRWS(DigitalForensicResearchWorkshop,数字取证研究工作组)发起的针对Windows系统的内存取证分析挑战赛,以鼓励内存取证分析研究和相关取证工具开发。DFRWS于2008年又发起了针对Linux系统的内存取证分析挑战赛。之后,几乎每年的DFRWS大会都有内存取证分析的讨论议题。此外,著名黑客大会(BlackHat,DefCon,ShmooCon等)从2006年也开始举办内存取证分析专题研讨会。工业界和政府部门同样关注内存取证分析研究。美国联邦调查局FBI下属的RCFL(RegionalComputerForensicsLaboratory)自2006年开始了内存取证研究。2012年,美国国防部高级研究计划署DARPA发起了对隐匿恶意软件的内存取证分析专题研讨。美国国土安全部DHS为应对网络犯罪而进行了恶意软件内存取证研究。与此同时,相关内存取证工具相继出现,比如Guidance公司的WinEn、HBGary公司的FastDump、Mantech开发的MDD、AgileConsulting开发的Nigilant32等。可以看到,在对宿主机的物理内存获取和分析方面,已经有较多的研究,也取得了一定的成果,通过获取和分析宿主机的物理内存,可以获得宿主机大量的在线数据。目前,虚拟化技术已经广泛地融入了我们的生活,并具有巨大的市 ...
【技术保护点】
面向XenServer平台的虚拟机内存取证方法,其特征是,包括:步骤(1):获取宿主机的物理内存信息存为内存镜像文件;步骤(2):获取宿主机中的内核符号表文件;所述内核符号表文件,包括:vmcoreinfo_data的值和paddr_vmcoreinfo_xen的值;步骤(3):从内存镜像文件中搜索vmcoreinfo_data内容;将vmcoreinfo_data的内容的地址与步骤(2)中获取的vmcoreinfo_data的值进行对比,获取到这两个值的差值,即为DIRECTMAP_VIRT_START的值;步骤(4):在内核符号表文件中搜索获取paddr_vmcoreinfo_xen的值,将paddr_vmcoreinfo_xen的值和DIRECTMAP_VIRT_START的值进行做差运算,得到paddr_vmcoreinfo_xen的物理地址,根据paddr_vmcoreinfo_xen的物理地址在内存镜像文件中指向的值获取到vmcoreinfo_xen内容的物理地址;步骤(5):根据vmcoreinfo_xen内容的物理地址获取vmcoreinfo_xen的内容,从中解析出内 ...
【技术特征摘要】
1.面向XenServer平台的虚拟机内存取证方法,其特征是,包括:步骤(1):获取宿主机的物理内存信息存为内存镜像文件;步骤(2):获取宿主机中的内核符号表文件;所述内核符号表文件,包括:vmcoreinfo_data的值和paddr_vmcoreinfo_xen的值;步骤(3):从内存镜像文件中搜索vmcoreinfo_data内容;将vmcoreinfo_data的内容的地址与步骤(2)中获取的vmcoreinfo_data的值进行对比,获取到这两个值的差值,即为DIRECTMAP_VIRT_START的值;步骤(4):在内核符号表文件中搜索获取paddr_vmcoreinfo_xen的值,将paddr_vmcoreinfo_xen的值和DIRECTMAP_VIRT_START的值进行做差运算,得到paddr_vmcoreinfo_xen的物理地址,根据paddr_vmcoreinfo_xen的物理地址在内存镜像文件中指向的值获取到vmcoreinfo_xen内容的物理地址;步骤(5):根据vmcoreinfo_xen内容的物理地址获取vmcoreinfo_xen的内容,从中解析出内核符号的虚拟地址domain_list和pgd_l4;其中,domain_list指向虚拟机所对应的domain结构体;pgd_l4指向转换domain结构体中各虚拟地址需要的页目录基地址;步骤(6):将pgd_l4的虚拟地址转换为物理地址,查看宿主机中的物理内存分布,寻找Hypervisor代码和数据所在的内存地址段,对比pgd_l4的虚拟地址和内存地址段,取内存地址段的24位及24位以上的数值,与pgd_l4虚拟地址的0-23位结合,组合成一个新的地址,即为pgd_l4的物理地址;步骤(7):根据pgd_l4物理地址对domain_list进行地址转换,获取domain_list指向内容对应domain结构体地址;步骤(8):根据domain、vcpu、ach_vcpu、hvm_vcpu、arch_vmx_struct结构体之间的关系来获取虚拟机对应的vmcs_struct结构体;步骤(9):从vmcs_struct结构体中获取ept指针和guestcr3;实现虚拟机物理地址的地址转换;步骤(10):获取到虚拟机物理内存内容后,进行虚拟机操作系统版本的判定;虚拟机操作系统确定后,根据虚拟机操作系统版本的不同使用相应的内存分析方法进行物理内存分析。2.如权利要求1所述的面向XenServer平台的虚拟机内存取证方法,其特征是,所述步骤(2)的内核符号表文件包括:/proc/kallsyms文件或者/boot/System.map文件。3.如权利要求1所述的面向XenServer平台的虚拟机内存取证方法,其特征是,所述步骤(3)的步骤为:步骤(301):搜索“OSRELEASE=”,若搜索到的内容包含有“SYMBOL(_stext)=”或“SYMBOL(swapper_pg_dir)”内容,且操作系统的版本信息中含有“xen”字符串,则说明搜索到的内容为vmcoreinfo_data的内容,将vmcoreinfo_data的内容的地址与在步骤(2)中获取到的vmcoreinfo_data值进行对比,获取到这两个值的差值,即为DIRECTMAP_VIRT_START的值。4.如权利要求1所述的面向XenServer平台的虚拟机内存取证方法,其特征是,所述步骤(7):大页模式下,0至20位记为Offset;待转化的地址的21至29位记为Directory,30至38位记为DirectoryPtr,39至47位记为PML4,48至63位记为SingExtended;大页模式下,通过以下方法进行地址转换:取pgd_l4寄存器的12位至51位、低12位均取为0,将其与PML4乘以8后的数值相加,得到第一地址,获取第一地址在物理内存镜像对应的内容记为B1;取B1的12位至51位、低12位均取为0,将其与DirectoryPtr乘以8之后的数值相加,得到第二地址,获取第二地址在物理内存镜像对应的内容记为B2;取B2的12位至51位、低12位均取为0,将其与Directory乘以8之后的数值相加,得到第三地址,获取第三地址在物理内存镜像对应的内容记为B3;取B3的21位至51位、低21位均取为0,将其与Offset相加,得到的数据为的虚拟地址转化为物理地址之后的数值。5.如权利要求1所述的面向XenServer平台的虚拟机内存取证方法,其特征是,所述步骤(7):小页模式下,0至11位记为Offset、12至20位记为Table,待转化的地址的21至29位记为Directory,30至38位记为DirectoryPtr,39至47位记为PML4,48至63位记为SingExtended;小页模式下通过以下方法进行地址转换:取pgd_l4寄存器的12位至51位、低12位均取为0,将其与PML4乘以8后的数值相加,得到第四地址,获取第四地址在物理内存镜像对应的内容记为A1;取A1的12位至51位、低12位均取为0,将其与DirectoryPtr乘以8之后的数值相加,得到第五地址,获取第五地址在物理内存镜像对应的内容记为A2;取A2的12位至51位、低12位均取为0,将其与Directory乘以8之后的数值相加,得到第六地址,获取第六地址在物理内存镜像对应的内容记为A3;取A3的12位至51位、低12位均取为0,将其与Table乘以8之后的数值相加,得到第七地址,获取第七地址在物理内存镜像对应的内容记为A4;取A4的12位至51位、低12位均取为0,将其与Offset相加,得到的数据即为的虚拟地址转化为物理地址之后的数值。6.如权利要求1所述的面向XenServer平台的虚拟机内存取证方法,其特征是,所述步骤(8)的步骤包括:步骤(801):将domain结构体地址转换为物理地址,获取domain结构体中指向vcpu结构体指针;步骤(802):根据vcpu结构体指针获取vcpu结构体地址,在vcpu结构体中包含指向下一个vcpu结构体的链表指针“structvcpu*next_in_list”,根据链表,获取全部正在运行的虚拟机对应的vcpu结构体;所述获取vcpu结构体包含arch_vcpu结构体内容;步骤(803):获取arch_vcpu结构体中包含的hvm_vcpu结构体内容;步骤(804):获取hvm_vcpu结构体中包含的arch_vmx_struct结构体内容;步骤(805):获取arch_vmx_struct结构体中包含的指向vmcs_struct...
【专利技术属性】
技术研发人员:张淑慧,王连海,刘广起,杨淑棉,徐淑奖,韩晓晖,邹丰义,
申请(专利权)人:山东省计算中心国家超级计算济南中心,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。