云计算的安全挑战—虚拟化安全

本文内容分为安全策略和虚拟化安全管理,重点讲介绍虚拟化安全

0x01
实施安全策略

安全策略是有效的安全防御机制的基础,公司如果在没有创建安全策略、标准、指南、流程等基础的情况下,首先实现了技术解决方案,会导致安全控制机制目标不集中

下图是安全策略的层析结构关系:

  策略通常被认为是最高层的文档,而标准、流程和指南则是较低层次的组成元素,当然这并不是说较高层次的策略就更重要,而是  说它应该在流程最初阶段创建,这样能对后面的细节元素有指导作用

  1.
策略的高级管理声明:在所有策略最先创建的,是一种通用的、高层策略,用于承认计算资源对业务模型的重要性,授权和管  理较低层次的标准、流程、指南的定义
  2.
管制策略:公司为满足法律、法规和其他法律要求所必须实现的安全策略
  3. 咨询策略:非强制性但强烈推荐实施的安全策略
  4.
信息策略:用于向用户提供信息,策略阅读对象可以是内部或外部群体

0x02
虚拟化安全管理

2.1
虚拟化背景知识

一个新技术,只有完全发展并实现以后,才能彻底了解其所带来的风险,虚拟化技术也不例外

虚拟化总的来说可以分为四类:

type1: 全虚拟化环境,虚拟机运行在与硬件直接交互的虚拟机监控器VMM上
type2:
同样是全虚拟化环境,不过虚拟机运行在宿主操作系统而不是VMM上
type3:办虚拟化环境,通过消除一些全虚拟化环境的模拟操作从而获得更佳性能
type4:包括HVM[Hybrid
Virtual Machine]和硬件辅助技术

虚拟化管理角色则分为三类:

虚拟化服务器管理员:负责安装和配置ESX服务器硬件、存储、物理和虚拟网络、服务控制台及管理应用程序
虚拟机管理员:负责创建和配置虚拟机、虚拟网络、虚拟机资源和安全策略、创建管理员、维护虚拟机等
来宾管理员:负责管理来宾虚拟机、连接虚拟机、增加系统更新、管理操作系统

2.2
虚拟化面临的威胁

事实上虚拟化系统一方面面临所有系统上都有的威胁,另一方面还有一些特有的威胁和脆弱性,虚拟机环境常见的一些漏洞如下:

(a)
共享剪切板:该技术能在虚拟机与宿主机之间进行数据交换,同时也未不同安全域中虚拟机恶意程序提供了数据传输方法

(b)
击键记录:对于支持击键记录和屏幕更新在虚拟终端进行数据传递的虚拟机技术,可以利用来对虚拟机内部加密终端传输监控

(c)
宿主机对虚拟机的监控:由于进出虚拟机的所有网络数据包都会经过宿主机,因此宿主机基本上可以完全控制虚拟机

(d)
对其他虚拟机的监控:如果虚拟机平台使用了将虚拟机与宿主机进行连接的虚拟交换机,就要可能使用ARP攻击等技术嗅探其他机器发生的数据包

(e) 虚拟机后门:虚拟机和宿主机之间的后面和隐秘通道同样十分危险

为了应对虚拟化安全风险,如下五条安全法则值得参考并实践:

rule1:
所有现存的对操作系统的攻击以完全相同的方式在运行
rule2:对于系统风险而言,虚拟机控制器引入了新的威胁因素
rule3:
在虚拟机中是实现功能隔离和内容隔离可以降低风险
rule4:将功能和资源集中在一个物理平台上会增加风险
rule5:在不可信宿主机上包含可信虚拟机比在可信宿主机上包含不可信虚拟机风险更高

  虚拟机的威胁级别可分为三级:  

异常终止:虚拟机进入死循环,管理员无法对其访问,可用性被破坏
部分受损:恶意进程能干扰虚拟机管理器,对监测点资源进行破坏
全部受损:虚拟机被完全控制,直接在宿主机上使用更高权限执行非授权命令

  虚拟机管理器的安全风险:

  hypervisor(虚拟机管理器)是虚拟机的一部分,支持宿主机资源共享和虚拟机隔离,因此hypervisor能提供的隔离能力和自身的安全性很大程度上决定了虚拟机的安全性  

a.
恶意虚拟机管理器:hypervisor不论对宿主机还是虚拟机系统都有很大程度的控制,而一个针对它的rootkit可以启动恶意的rogue
hypervisor及创建隐通道向系统中导入非授权代码,还可以将自身插入内存中并将主机曹组系统降格为虚拟机
b.
hypervisor的外部修改:入股hypervisor自身安全防护性较差,则外部入侵者可以通过hypervisor直接对虚拟机进行修改
c.
虚拟机逃逸:攻击者通过逃脱hypervisor从而在虚拟机的物理主机上执行任意代码

  关于虚拟机逃逸技术,可以参考:  

  CLOUDBURST A VMware Guest to Host Escape Story,
Blackhat 2009

  Pentesting Virtualization, Blackhat 2010

  Virtunoid: A KVM Guest ! Host privilege escalation
exploit,Blackhat 2011

  Advanced Exploitation of Xen Hypervisor Sysret VM Escape
Vulnerability, VUPEN,2012

  在CLOUDBUSRT一文中,利用的是虚拟机中显示设备SVGA Ⅱ[Super Video Graphics
Array]。在VMware中,虚拟GPU使用仿真PCI设备的形式,设备驱动会提供给常用的Guest虚拟机[Windows下支持3D加速],一个用户级的设备仿真程序负责处理对PCI配置和SVGA设备I/O空间的访问。下图分别为SVGA的架构和虚拟图形栈:

  

  

  内存映射I/O:内存映射I/O(MMIO)和端口映射I/O(PMIO)是实现CPU和外设输入/输出的两个补充方法

  a. 每个I/O设备都监管CPU的地址总线并响应任何分配给设备的地址空间的访问
  
b. 端口映射I/O对执行I/O使用一个特殊的CPU指令类

  下面左图为简化的I/O关系图,右图为SVGA设备的属性:

               
             

SVGA
FIFO:SVGA设备异步地通过为上锁的FIFO序列处理命令,这个序列会占据大量FIFO内存区域[若干M]。在为加速的2D渲染下,FIFO命令用于标记帧缓存[Frame
Buffer]中发生改变的区域,在3D渲染下FIFO则扮演体系结构无关的SVGA 3D渲染协议的传输层。

  利用SVGA进行虚拟机逃逸分为2D和3D两个层面,这里只简单讲一下2D层面的一些东西,3D层面的可以去看看CLOUDBURST A VMware Guest to Host Escape Story
  
SVGA的2D操作有许多命令,以复制命令SVGA_CMD_RECT_COPY为例,它可以将帧缓存中一个矩形从x1,y1复制到x2,y2处,虽然也有边界检查,但是可以bypass,成   功bypass后就成了如下图所示的情况:

  越过边界后可以使用SVGA任意读写,其基础是Guest机可以在帧缓存中进行读写操作,而帧缓存又被映射到  了主机的内存中。SVGA_CMD_RECT_COPY的bug意味着我们可以copy主机进程内存到Frame
Buffer中  并对它进行读操作 [默认可以无限制读取],还可以将数据写入帧缓存中并copy到主机进程的内存中 [默认受  限的任意写], 只能写到frame
buffer之前的页中,有些情况下可以利用,取决于帧缓存前映射的是什么

  SVGA_CMD_DRAW_GLYPH:该命令将符号[glyph]画到帧缓存中,前提是svga.yesGlyphs=”TRUE”,  这里glyph被复制的地方没有进行对x,y的边界检查

  在帧缓存被映射到主机内存中的情况下,SVGA_CMD_DRAW_GLYPH的bug便意味着:

  我们可以在主机进程内存中的任何地方写入任意数据——写地址是frame buffer基址的相对地址
[在ESX中十  分稳定,还可以结合SVGA_CMD_RECT_COPY使用],完全exploitable

  SVGA FIFO的3D操作问题详见上文所引用之文档,现在看一下具体利用的流程:

  Step1:泄露主机中Frame
Buffer的基址,进一步的数据泄露都和它有关
  Step2:获取VMware的版本指纹,通过PE/ELF头知道
  Step3:Exploit,Leak/Overwrite/Trigger/Leak/Overwrite/Trigger
--done!

  从这里得出的结论是虚拟机并不能作为一个附加安全层,一个正确的bug,如能导致信息内存泄露、内存读写,ASLR等防护机制都能被突破

   在Pentesting
Virtualization
中,作者对虚拟化的攻击分为侦查、攻击和pwn三个阶段,还提供了一个Metasploit中的工具VASTO

  在侦查阶段首先需要判断是否处在虚拟机中,如果是在本地则很容易通过Mac地址和查看进程得知,如果是远程侦查则需要想办法知道Hypervisor在哪,获取网络服务和指纹信  息。对于虚拟机版本vmware_version,可以通过SOAP
API调用获得,这在大多数VMware产品中都是适用的:


[...]
<RetrieveServiceContent xmlns=\"urn:internalvim25\">
<_this type=\"ServiceInstance\">
ServiceInstance
</_this>
</RetrieveServiceContent>
[...]

  攻击的整个过程参照下右图的五个步骤:

  首先,客户端自动更新的特性使得要获取client.xml:

  <ConfigRoot>

  <clientConnection id = "0000">
<authdport>902</authdport>
<version>3</version>
<patchVersion>3.0.0</patchVersion>
<apiVersion>3.1.0</apiVersion>
<downloadUrl>https://*/client/VMware-viclient.exe</downloadUrl>
</clientConnection>
 </ConfigRoot>

还可以利用vmware_vilurker的vilurker模块实现代码执行,可以作为一个中间人攻击的代理
CVE-2009-3733使得可以以root身份进行路径遍历,读取任意文件,案例可见乌云:乐视网路径遍历

 另外在这个5元组过程中还可以进行会话窃取,端口扫描等...CVE-2010-0686...CVE-2010-2667...

  

  2.3
虚拟机的安全忠告

  如下是一些对绝大多数计算机系统都有效的安全机制,对虚拟化系统而言仍是最佳实践

  a)
宿主机操作系统安全加固:使用强密码、禁用不必要的服务和程序、对访问实施完整的认证、具备独立防火墙、经常升级打补丁

  b)
限制对物理主机的物理访问:机房做隔离和严格访问控制、BIOS中除主硬盘外禁止从其他设备其他、对外部接口进行控制...balabala...

  c) 使用加密通信:HTTPS、VPN、TLS、SSH...

  d)
禁用后台任务:当出现资源竞争时禁用、限制低优先级进程或迁移到其他服务器

  e)
更新补丁:及时更新和打补丁,由于打了补丁后需要重启系统,而且可能会产生不可预计的后果,最好了解一下这些最新补丁相关信息

  f) 对虚拟机进行周边防御:虚拟机同样需要部署防火墙和入侵检测系统

  g) 实现文件完整性检查 --Tripwire

  h) 维护备份——镜像备份

  2.4
虚拟机相关安全技术

  a. 虚拟机加固 >> (1) 对虚拟机资源消耗进行限制  (2)
合理配置虚拟网卡和存储  (3) 禁用或移除不必要的设备与服务                                  (4)
确保通过虚拟网络设备进行的共享组件得到足够的隔离与保护  (5)
为虚拟化基础设施保存细粒度的、详细的审计日志  

b. 虚拟机管理器安全加固 >> 重点关注hypervisor
c.
监控器的根安全 >> 确保监控器的安全,使虚拟机客户环境中不存在权限级别允许其对主机系统进行干扰
d.
每个虚拟机中只实现一个主要功能
e. 对虚拟机端口进行防火墙防护
f. 加固主机域
g. 为机密虚拟机使用独立网卡
h.
断开不使用的设备

I. 其他标准或指南

Virtualization Security and Best Practices   VMware Infrastructure 3 Security Hardening    Virtual Machine Security Guidelines

http://csrc.nist.gov  http://www.sans.org

云计算的安全挑战—虚拟化安全,布布扣,bubuko.com

时间: 2025-01-19 22:41:50

云计算的安全挑战—虚拟化安全的相关文章

制造业云计算面临的挑战及发展趋势

制造业云计算面临的挑战及发展趋势 随着云计算的发展,越来越多的云应用开始融入到制造企业的日常业务,从管理信息化到研发信息化,再到IT基础设施,云计算无孔不入,不知不觉的"钻入"到企业IT应用的方方面面,使我们不得不发出感慨,我们这个时代已经被"云"入侵了.. 一.云计算对于制造业的价值 在云计算概念刚刚提出之时,我们完全没有预料到云计算会给制造企业的IT应用带来如此大的变革,在今天看来,这些变革体现在制造业信息化应用的方方面面: 在研发信息化领域:由基于工作站或PC

云计算,SDN,虚拟化三者关系

云计算是一种按需分配.按使用量收费的使用模式,提供了一个可配置的资源共享池,用户可以通过网络访问,获取存储空间.网络带宽.服务器.应用软件等等服务. NFV,即网络功能虚拟化,Network Function Virtualization.通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理.从而降低网络昂贵的设备成本.可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署.弹性伸缩.故障隔离

云计算中心的网络虚拟化

云计算中心面对多租户的需求,需将不同租户的网络进行隔离,租户之间无法获取到不属于自己的网络流量,防止恶意租户的攻击.租户流量泄漏.同时还需满足虚拟机迁移的需求,实现网路通信的不中断. VLAN 传统的网络隔离方法,有VLAN方式.通过在数据帧上添加上VLAN标签(0-4096),并对网络交换机进行配置,规定交换机的哪些端口转发哪些VLAN标签的数据,完成虚拟网络的建设,实现不同租户数据的隔离. 不足:面临云计算虚拟化环境,物理服务器上可能运行着多个租户的虚拟机,导致会出现一个端口映射了多个VLA

云计算 视频教程 大数据 虚拟化 平台技术 搭建 培训课程 Hadoop

视频资料都逐个核对,清晰高质量,而且包含各种文档.软件安装包和源码!永久免费更新! 技术团队永久免费解答各种技术问题:Hadoop.Redis.Memcached.MongoDB.Spark.Storm.云计算.R语言.机器学习.Nginx.Linux.MySQL.Java EE..NET.PHP,节省您的时间! 获取视频资料和技术支持地址 ------------------------------------------------------------------------------

虚拟化与云计算

什么是虚拟化? 虚拟化的本质都是将现有的计算机资源通过虚拟化的技术分割成若干个计算机资源,这些计算机资源相互独立 最终目的是提高计算机的利用率和使计算机的灵活性最大化 虚拟化的目的 IT基础设施和资源管理方式的简化,帮助企业减少IT资源的开销.整合资源.节约成本. 虚拟化的分类 平台虚拟化 服务器虚拟化 软件虚拟化---寄居架构-----vmware workstation 硬件虚拟化---原生架构-----Hypervisor 桌面虚拟化 资源虚拟化 存储虚拟化 网络虚拟化 应用程序虚拟化 表

云计算与虚拟化概述-你不得不知的云计算与虚拟化基础知识

本文主要灵感来自老男孩架构师班-赵班长实战讲解KVM,以及speedy Cloud云公司CEO董伟(董总)云计算与虚拟化讲座,综合整理而来.--为表示感谢--特整理此文分享给大家. 1.1云计算概述 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用程序,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互. 在云计算之前的模式和技术 1.IDC托管 2.IDC租用 3.虚拟主机

了解云计算与虚拟化

(一)云计算介绍 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问,进入可配置的计算资源共享池,(资源包括网络.服务器.存储.应用软件.服务),这些资源能够被快速提供,需要投入很少的管理工作,或与服务供应商进行很少的交互. 1:云计算之前的使用模式 IDC 托管 IDC 租用 虚拟主机(买空间) VPS:虚拟专用主机 2:传统数据中心面临的问题 资源使用率低 资源分配不均 自动化能力差 3:云计算的优势 云计算是一种使用模式,不是一种技术 云计算的使用方式:通过网络访问

云计算

IDC市场增速云计算产生背景与概念云计算部署模式云计算商业应用模式 业务上云的复杂性与平滑过程可靠性或SLA的支持性工作负载可迁移性数据安全性厂商锁定看不到投资回报云计算的价值体现:智能资源调度基于策略的调度 实现负载均衡或通过热迁移节能减排没有超过服务器的阈值将二胎服务器关机以实现节能减排-------------------------------------------------------提高资源的利用率:资源共享.虚拟化前每台服务器利用率仅5%-10%,虚拟化后虚拟服务器的整合比通常

Neuron实现网络虚拟化

一 引子 数据中心虚拟化成为了趋势,最典型的场景莫过于:对数据中心的服务器进行虚拟化,来提高资源利用率,同时降低单位能耗. 但是,随着数据中心虚拟化程度的不断提高.虚拟化服务器规模的不断扩大,带来了巨大的管理压力.===>这就孕育了云计算诞生的条件. ps:在大规模虚拟化的基础上,实现了自动化管理和集中化管理,就是云计算的基本模型.这一点在互联网行业尤其重要. 云计算的超大规模带来了诸多亟需解决的问题,这些问题中,首当其冲的就是网络问题.而关于网络,云计算的超大规模带来的压力问题也并不代表全部,