02 主机虚拟化安全

2019-09-26  本文已影响0人  武漂的小丙

主机虚拟化安全

1 主机虚拟化技术概述

1.1 基本概念

1.2 主机虚拟化实现方案

业界主流公司的方案如下:

1.2.1 VMware Workstation

VMware Workstation:基于主机的虚拟产品,可以运行在各种主流操作系统,主要功能包含:

启动过程:

VMX驱动将VMM加载到核心区域,并赋予VMM和VMX驱动Ring0特权级。其特点如下:

总结:

因为I/O是由虚拟机操作系统引发,因此执行结果将通过VMM传递回虚拟机。所以结果如下:

1.2.2 Microsoft Virtual PC

与VMware Workstation类似,但是缺点比较多,如下所示:

特殊功能:

1.2.3 Xen

Xen采用半虚拟化技术,需要对操作系统进行修改才能与虚拟机监视器协同工作,优点就是无需硬件支持就能以较高效率实现虚拟化。

1.2.4 KVM

KVM和Xen是两个比较接近的开源虚拟化实现方案,主要特点如下:

1.3 主机虚拟化特性

虚拟化技术应运而生的原因:

主机虚拟化带来的挑战:

主机虚拟化特性:

1.4 主机虚拟化的关键技术

1.4.1 CPU虚拟化

CPU虚拟化是VMM的核心部分,由于内存和I/O操作的指令都是敏感指令,因此对于内存虚拟化和I/O虚拟化的实现都是依赖于CPU虚拟化而完成的。

虚拟化层需要对虚机进行管理和控制,如果虚拟化层运行在Ring0特权级上,那么客户操作系统只能运行在低于Ring0的特权级别。客户机操作系统中的某些特权指令(中断处理或内存管理指令),如果么有运行在Ring0特权级,会出现语义冲突导致指令不能够正常执行。针对该问题有如下两种解决方案:

1.4.2 内存虚拟化

虚拟机看到的物理内存是经过虚拟机监视器进行管理的“虚拟”物理内存,内存的类型分为如下三种:

同理这三种内存地址空间也分别称为:

虚拟机逻辑地址与真实物理机的机器地址之间的映射是通过内存虚拟化中的内存管理单元来完成的,内存虚拟化的主要方法有两种:

1.4.3 I/O虚拟化

1.4.4 虚拟机实时迁移

实时迁移是指保证虚拟机上服务正常运行的同时,使虚拟机在不同的物理主机上进行迁移。

实时迁移的作用:

1.5 主机虚拟化的优势

有了虚拟化技术,一些基础设备可以被资源化,经过抽象后提供给上层的计算单元,使得上层计算单元以为自己运行在独立的内存空间中,享有独立的网络、存储资源用于服务;且以下特性带来的具体优势:

虚拟化的市场发展被分为了四个阶段:

总而言之,主机虚拟化的优势主要体现在两个方面:

服务器虚拟化是虚拟化技术中出现时间最早的技术分支,也是最为成熟的领域。讲一个服务器虚拟化成若干服务器使用。服务器虚拟化技术的多实例、强隔离、高性能、封装好等特性保证了它能有效的运用在实际的环境中,主要优点可总结如下:

2 主机虚拟化的主要威胁

通常对虚拟机的攻击方式是以下一种或多种方式的结合:

2.1 虚拟机信息窃取和篡改

2.2 虚拟机逃逸

正常的情况下,一个程序运行在虚拟机里,应该无法影响其他虚拟机。但是由于技术的限制或虚拟化软件的一些bug,在某些情况下,虚拟机里运行的程序会绕过隔离限制,进而直接运行在宿主机上,这就是虚拟机逃逸。

虚拟逃逸造成的影响包括:

2.3 Rookit攻击

Rootkit:完全控制主机并拥有了管理员权限被称为“root”了主机,然后能有“root”一台主机并不意味着能持续的控制它,管理员完全能够发现主机遭受入侵并采取应对措施,Rootkit的含义就是“能维持root权限的一套工具

2.4 分布式拒绝服务攻击

分布式拒绝服务攻击(DDoS)是在传统的DoS攻击基础上产生的一类攻击方式,单一的DoS攻击一般采用一对一的方式,当攻击目标的各项性能指标(CPU、内存和网络带宽)不高时,效果是明显的,但是随着计算机与网络技术的发展,计算机的各项性能大幅提升,同时又出现了千兆级别的网络,这使得DoS攻击能力明显力不从心,因此分布式拒绝服务(DDoS)应运而生。

在低网速时代,黑客占领攻击用的傀儡机,总会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少、效果越好;而现在电信骨干节点之间的连接都是以G为级别,这使得攻击可以从更远的地方或者其他城市发起,傀儡机位置可以分布在更大的范围,选择起来更灵活,攻击者也因此拥有更多的傀儡机,攻击规模可以比从前更大。

DDoS攻击的后果主要有:

2.5 侧信道攻击

侧信道攻击是由Kocher等人于1996年首先提出,针对密码算法实现的一种攻击方式:

这种利用侧信道信息进行密码分析的攻击方法被称为侧信道攻击,

针对侧信道攻击,安全芯片可以提供大量的解决方案,如采用混淆时序、能耗随机等手段使黑客无从辨别,也就难以解密。

3 主机虚拟化安全的解决方案

主机虚拟化安全解决方案需要从不同层面解决。

3.1 虚拟化安全防御架构

1568079520693.png

如上图所示,可以从物理硬件到宿主机、虚拟监视器再到虚拟机的安全加固方案,从而增强虚拟化环境的安全性,一定程度上抵御虚拟化平台的攻击威胁。

​ 随着虚拟可信计算技术的发展,可以为每个虚拟机配置一个虚拟可信根,通过虚拟可信根来保障虚拟机的安全运行

3.2 宿主机安全机制

入侵者如果能够访问物理宿主机,就可以对虚拟机展开各种形式的攻击:

防止虚拟机遭受攻击、保护宿主机安全,目前完善且行之有效的安全机制绝大多数传统计算机系统已经具备,如:

这些传统的安全技术对于虚拟机和宿主机系统依然有效。

以入侵检测为例,在对宿主机进行安全防护方面,根据检测对象的不同可以部署不同类型的入侵检测系统以进行针对性的检测,如HIDS、NIDS。

3.3 Hypervisor安全机制

Hypervisor:

Hypervisor的主流技术包括VMware、Xen、KVM、Virtual Box等。

如今业界研究重点主要分为两个方面,即Hypervisor自身安全加固和Hypervisor防护能力提升。

3.3.1 Hypervisor自身安全加固

(1) 构建轻量级Hypervisor

尽量简化Hypervisor的设计,降低其实现的复杂度,是Hypervisor自身安全加固的一个重要方向

典型的轻量级Hypervisor应用有:

目前构建轻量级Hypervisor的主要方法:

主要难点在于分离之后如何继续保持Hypervisor的特性和功能,这是需要进一步研究的课题

(2)保护Hypervisor的完整性

另一个重要方向是利用可信计算技术,对Hypervisor的完整性进行度量和报告,保证Hypervisor的可信性。主要技术包括两个部分:

这种方式可以从根本上提高虚拟化平台的安全性和可信性,保护Hypervisor的完整性,确保Hypervisor安全可信。

3.3.2 提高Hypervisor的防护能力

上述的构建轻量级的Hypervisor或是利用可信计算技术保护Hypervisor的完整性,技术实现难度均较大,有些甚至需要对Hypervisor进行修改,不适用于虚拟化大规模部署的环境。利用传统的安全防护技术,增强Hypervisor的防御能力将更加容易实现:

(1)构建虚拟防火墙

(2)主机资源合理分配

默认情况云平台上所有的虚拟机对物理机提供的资源具有相同的使用权限,若没有有效的管理,则某些虚拟机可能会占用过的的资源导致其他虚拟机资源匮乏,影响其他虚拟机正常运行。解决从两个方面:

(3)细粒度的权限访问控制

普通用户如果具备了管理员权限,可能进行如下操作威胁云平台安全:

有必要细粒度的分配用户的权限,确保用户只能获取其所需的权限,降低特权操作给Hypervisor带来的安全风险。

3.4 虚拟机隔离机制

虚拟化出现之前,计算机之间的访问只能是通过网络实现,安全机制基本上是网络层面的防护。

虚拟化出现之后,一个物理节点部署有上百或更多虚拟机,这些虚拟机使用的都是Hypervisor提供的虚拟资源,硬件资源由所有虚机共享使用。一台虚拟机可能通过某种方式访问本来属于另一台虚拟机的资源,从而给云用户带来安全威胁。如果无法检测和分析这种攻击行为就会给云平台造成严重的威胁。

3.4.1 同一宿主机的虚拟机之间的隔离

(1)Hypervisor提供的安全隔离机制

(2)sVirt标签技术

3.4.2 不同宿主机的虚拟机之间的隔离

不同宿主机的虚机之间的隔离实际上就是通过物理主机之间的隔离,这种隔离其实就是传统的物理隔离,由于虚拟机之间的访问必须要通过网络,一般会采取划分VLAN、设立防火墙等技术保证虚拟机之间的隔离。

3.5 虚拟可信计算技术

虚拟可信计算技术将可信计算的思想与虚拟技术结合,通过可信计算技术保障虚拟化平台的安全

3.5.1可信计算概述

可信计算就是在进行运算的同时进行安全防护,使计算结果总是和预期的一样,计算过程可测可控、不被干扰,从而保证平台的可信。实现方式如下:

从工作方式上看:

可信计算平台包括以下几个部分:

1568211404506.png
- 内核模式进程:核心软件是TPM设备驱动程序模块,直接驱动TPM的软件模块,由TPM的签入式操作系统确定
- 用户模式进程:核心软件是TSS设备驱动程序接口(TDDI)和TSS核心服务接口(TCSI)
  - TDDI:是一个与TPM设备驱动程序进行交互的API库,以方便与TPM交互
    - 如向TPM发送数据或者从TPM接收数据
    - 查询TPM的状态等
- TSS核心服务(TCG Core Service,TCS):主要个功能是管理TPM的资源
  - 上下文管理
  - 密钥和证书管理
  - 事件管理
  - TPM参数块产生等
- 用户程序层:核心软件是TSS服务提供者(TCG Service Provider,TSP)
  - 给应用提供最高层的API函数
  - 以共享对象和动态链接库的方式被应用程序调用
  - 是应用程序可方便的使用TPM
1568214142959.png
- 度量

  - 可信计算技术以BIOS Boot Block和TPM芯片为根,
  - 其中BIOS Boot Block是可信度量根RTM
  - TPM芯片是可信存储根RTS和可信报告根RTR
  - 从BISO Boot Block出发,经过BIOS,到OSloader,再到OS,构成了一条信任链
  - 沿着这个信任链,一级度量一级,从而确保整个平台系统资源的完整性
  - 对信任链的度量采用度量其中软硬件程序数据完整性的方法:
  - 对系统数据完整性的度量,采用密码学Hash函数来检测系统的数据完整性是否受到破坏
  - 需要系统处于良好状态时(通常系统初始化完成时),以其Hash值作为度量基准值并将其进行安全存储
  - 在系统启动时,重新计算Hash值,并与基准值比较,如果不同,系统完整性被破坏

- 存储

  - TPM芯片只保留了有限的存储空间
  - 为了节省存储空间,TPM采用了一种扩展计算Hash值的方式来进行信任链的度量,通过一个平台配置寄存器(Plat configure Register, PCR)来迭代计算存储存储信任链中各对象的Hash值,即将现有值与新值相连,再次计算Hash值并被作为新的度量值存储到平台配置寄存器PCR中

  $$
  PCR.hashValue_i = Hash(PCR.hashValue_{i-1}||NewValue)
  $$

  

  - 除了PCR值,还将各种资源的配置信息和操作记录作为日志存储到磁盘中,磁盘空间大且便宜可以记录较为详细的日志
  - 存储在PCR中的Hash值与存储在磁盘中的日志是互相关联印证的
    - PCR在TPM芯片内部,安全性高
    - 日志在磁盘上,安全性低
    - 但彼此关联印证关系,即时攻击者篡改了磁盘上的度量日志,通过TPM中的PCR值也可以发现这种篡改

- 报告:

  - 在完成度量和存储之后,客体需要访问时,可以提供报告,供访客判断平台的可信状态
  - 向访客提供的报告内容包括PCR值和日志
  - 为了确保报告内容的安全,还必须采用加密,数字签名和认证技术,即平台远程证明

3.5.2 虚拟可信计算

虚拟可信计算基本框架如下所示:

1568216825274.png

3.6 虚拟机安全监控

​ 云管理方要尽可能的获取更多的关于VM运行状态的信息,从而保证每一台虚拟机健康运行,继而保证整个云计算平台的安全可靠。云用户也需要了解自己虚拟机的运行状态。因此虚拟机监控是必不可少的。

3.6.1 安全监控架构研究

目前存在两种主流的虚拟机安全监控架构:

3.6.2 安全监控的分类

从虚拟机安全监护实现的角度来看,基于虚拟化安全监控的相关研究可以分为两大类:

- 安全工具部署在一个隔离的虚拟机中,该虚拟机所在的环境在理论上被认为是安全的,称为**安全域**。如:Xen的管理虚拟机
- 被监控的客户操作系统运行在目标虚拟机内,该目标系统部署一种至关重要的工具-钩子函数,用于拦截某些事件
  - 进程创建
  - 文件读写等
- 由于客户操作系统不可信,这些钩子函数需要特殊保护,钩子函数在加载到客户操作系统时,向Hypervisor通知其占据的内存空间,使Hypervisor中的内存保护模块能够根据钩子函数所在的内存页面对其进行保护
- Hypervisor还有一个跳转模块,作为目标虚拟机和安全域之间通信的桥梁
- 为了防止攻击者篡改,钩子函数和跳转模块必须是自包含的,不能调用内核的其他函数,同时必须简单,方便内存保护模块保护
1568812166955.png
- 相同的是:外部监控架构中安全工具和客户操作系统的部署和内部监控一样,分别位于两个彼此隔离的虚拟机中,增强了安全工具的安全性
- 不同的是:外部监控架构的监控点部署在Hypervisor中,它不仅是安全域中的安全工具和目标虚拟机之间的通信的桥梁,还用于拦截目标虚机中发生的时间,并重构出高级语义,然后传递给目标虚拟机
- 因为Hypervisor位于目标虚拟机的底层,监控点可以观测到目标虚拟机的状态(如CPU的信息、内存页面),所以安全工具能够对目标虚拟机进行检测
- 两种基本功能;
  - 事件拦截:拦截虚拟机中发生的某些事件,从而触发安全工具对其进行检测;因为Hypervisor在虚拟机下层只能获取低级语义,而监控工具是针对操作系统层的语义,两者存在语义鸿沟;
  - 语义重构:由低级语义(二进制)重构出高级语义(操作系统级语义),与客户操作系统的类型和版本密切相关,且目前没有一种完全之策彻底解决语义重构的问题

3.7 虚拟机自省技术

​ 基于虚拟机监视器具有较高的权限较小的可信基以及良好的隔离性,将安全工具部署在虚拟机监视器中,来对虚拟机进行监控,将会很大程度提高安全工具本身的安全性。虚拟机自省(Virtual Machine Introspection,VMI)使这个设想成为可能。

3.7.1 虚拟机自省概述

虚拟机自省是通过获取虚拟机所依托的物理硬件级别的状态(如物理内存页、寄存器)和事件(如中断、内存读取),推导甚至控制虚拟机内部行为。这种技术在如下方面得到广泛应用:

早期通过在虚拟机中直接安装监控程序,对虚拟机的运行状态进行监控,这种方法监控程序易收到攻击

为了降低监控程序受攻击的可能性,监控程序开始以驱动的形式部署到虚拟机的内核。后来人们意识到可以将监控程序部署在VMM中对虚拟机进行监控,并且有诸多好处。

3.7.2 虚拟机自省的实现方式与难点

虚拟机自省以是否需要在虚拟机中安装代理或者对虚拟机监视器进行修改分为 两大类:

1568206564176.png 1568206583637.png

[图片上传失败...(image-f7e2bd-1568812948113)]

1568206627563.png

4 小结

上一篇 下一篇

猜你喜欢

热点阅读