- 3
- 0
- 约1.47万字
- 约 13页
- 2017-12-26 发布于广东
- 举报
第十八届全国信息保密学术会议(IS2008)论文集
徐志大
中南计算机通信研究所
摘要:2006年中期以来,许多安全研究人员积极热衷于基于AMD和Intel
x86处理器硬件辅助虚拟能力的rootkit技术,引发大量激动人心、极其神秘的研究
工作。因而,这种技术的实现架构、探测方法及每种HVMrootkit的生存能力得以
广泛探讨,并取得了一定进展。
关键词:虚拟技术rootkit管理程序
1 引言
近年来,软件实现的虚拟机技术快速发展,应用需求越来越大。软件级的虚
拟机技术需要在系统中开辟复杂的工作区域,无法彻底解决自身的许多问题,要
实现更为高效和低成本的虚拟机技术,只有借助于硬件结构体系的改良和支持,
实现硬件级的虚拟机技术。因此,世界两大计算机CPU厂商AMD和Intel在新一
代CPU中引入芯片级虚拟化辅助技术,通过扩展处理器指令,增加相应机制,为
虚拟技术提供硬件支持,为基于管理程序的x86系统虚拟化铺平道路。
对于这种新技术,一直在涉猎前沿技术的黑客们自然会进行研究。在2006年
Dai
美国拉斯维加斯的黑帽会议上,研究员JoannaRutkowska和DinoZovi首次公开
提出硬件辅助虚拟机(HVM)rootkit概念【】’2】,但当时未提供实现细节,引发同
EdgarBarbosa介绍了针对“蓝色药丸(BluePill)”的检测方法汹]。不久,在root.
kit.tompl上出现在Intel上实现的HVM
AMD上实现的Blue
Pill代码放在BluePillProiect.org【41上,供公众下载。
在纯软件和基于硬件实现的虚拟机技术体系结构中,主要涉及两种软件:
OS)的
控制处理器和其他硬件,在单一物理机器上控制多个客户操作系统(guest
·336·
硬件辅助虚拟机(HVM)rootkit的实现与探测
有效运行,通过拦截和模拟客户操作,为每个客户虚拟一个完整的计算机系统
(内存、CPU和所有外部设备)。
客户软件:每台虚拟机(VM)是一个客户软件环境,支持由OS和应用软件
组成的栈。VMs相互独立,在同样的接口上使用物理平台提供的处理器、内存、
存储器、图形卡和I/O。
本文首先从编程角度简要介绍AMD和Intel硬件辅助虚拟技术,描述基于这
种技术的HVMrootkit,提出在AMD多核x86处理器上构建HVMrootkit的框架。
rootkit
然后,讨论探测方法,评估每种HVMrootkit的生存能力。最后,分析HVM
的鉴识问题及在主机安全防护中的应用。
2 AMD虚拟技术
手册[51中称为“安全虚拟机(SVM)”技术,是作为一组异常实现的,它拦截可
能影响管理程序或客户的任何指令或CPU事件。AMD—V新定义了指令、寄存器
与控制标志,实现更具特权的模式,即“ring-1”,高于以前x86体系结构实现的
最高特权模式“ring0”。称为虚拟机控制块(VMCB)的数据结构实现对异常的
控制,不在处理器内核中共享。
管理程序安全加载器。另外,扩展了MOV指令,直接读写CR8控制寄存器(任
务优先级寄存器),加速与SVM相关的性能。最后,为支持SVM,也对许多现有
AMD64指令行为进行了修改。总的来说,新定义的指令主要用于构建管理程序及
在主机与客户之间交换(AMD称为称为“世界交换(worldswitch)”)。
在AMD64体系结构程序员手册”’中描述了VMCB。它由两个区组成。第一个
enable
mask)。掩码确定什么条件引
区含有控制位,包括拦截使能掩码(intercept
起#VMEXIT。第二个区维持客户状态。Save状态区保存段寄存
原创力文档

文档评论(0)