既然说到了云,当然还需要谈谈虚拟化。虚拟化技术在系统组织,降低系统操作代价,改进硬件资源的效率、利用率以及灵活性方面扮演着主要的角色。然而,虚拟化技术本身不仅面临着传统网络已有的安全威胁,还面临着自身引入的安全问题。
BUT,由于虚拟化技术带来的资源分割独立的优势,它也在构建安全策略中扮演着重要的角色。
一、主机虚拟化的安全威胁
1. 虚拟机信息窃取和篡改
这个实际上是说Hypervisor脆弱性引入的安全威胁,因为Hypervisor本身的脆弱性不可避免。
是否记得曾经虚拟化过的邮件服务器或者薪酬支付系统?如果拥有访问虚拟化工作环境管理员权限,就可以轻松地进入该虚拟化工作环境,并且窃取所有的数据,而又不会留下任何痕迹。从数据中心偷走一个物理服务器是非常困难的,并且也很容易被人发现。但是无论在任何位置都可以通过网络偷窃一台虚拟机,把该虚拟机装在闪存盘中就可以轻易地带走。
2. 虚拟机逃逸
虚拟机逃逸指的是攻击者在已控制一个VM的前提下,通过利用各种安全漏洞攻击Hypervisor。典型案例:蓝色药丸、CloudBurst。
逃逸的后果:
- 安装Hypervisor级后门;
- 拒绝服务攻击;
- 窃取数据;
- 控制其他VM;
3. Rootkit攻击
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootkit的三要素就是:隐藏、操纵、收集数据。
Rootkit 本身不会像病毒或蠕虫那样影响计算机的运行。攻击者可以找出目标系统上的现有漏洞。漏洞可能包括:开放的网络端口、未打补丁的系统或者具有脆弱的管理员密码的系统。在获得存在漏洞的系统的访问权限之后,攻击者便可手动安装一个 Rootkit。这种类型的偷偷摸摸的攻击通常不会触发自动执行的网络安全控制功能,例如入侵检测系统。
4. 分布式拒绝服务攻击
分布式拒绝服务(DDoS,Distributed Denial of Service)攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。 这种攻击方式可分为以下几种:
- 通过使网络过载来干扰甚至阻断正常的网络通讯;
- 通过向服务器提交大量请求,使服务器超负荷;
- 阻断某一用户访问服务器;
- 阻断某服务与特定系统或个人的通讯。
5. 侧信道攻击
芯片在运行的时候,由于数据或者逻辑的不同,内部的晶体管通断是有区别的,通过这个区别来确定程序内部的数据或者指令,就是侧信道攻击。获取这个区别有很多方法,比如在芯片的GND引脚处获取电压,通过探针去截取芯片辐射的变化等等。
侧信道攻击近几年也在智能硬件的攻击上被使用,比如2016年,就有人使用SPA(另一种侧信道攻击方法)攻击了一个智能保险箱。其实,侧信道攻击对于运算单一,时钟频率低(时钟频率低这点很重要)的设备中的加密攻击是很有效的。
二、主机虚拟化安全的解决方案
1. 虚拟化安全防御架构
作为整个虚拟化安全架构的一部分,IT部门应该把重点放在三个虚拟化方面:
- 按照位置分开虚拟机;
- 按照服务类型分开虚拟机;
- 在整个虚拟机生命周期内实施有预见性的安全管理;
这三个方面将帮助IT部门保护其虚拟基础设施抵御当前的威胁,并且帮助IT部门缓解未来的攻击威胁。
2. Hypervisor安全机制
目前主流的虚拟化软件如Xen、VMware和KVM等均存在安全漏洞,主要体现在以下三个方面:一是随着Hypervisor功能的增多,其代码量也不断增加,这就会在一定程度上增加安全漏洞的数量;二是Hypervisor自身可信性的问题,恶意攻击者可能会将恶意软件在Hypervisor中执行,破坏Hypervisor的完整性;三是Hypervisor的防御能力,若在Hypervisor中对物理资源或访问策略的设置存在不合理之处时,Hypervisor的安全性就会大大降低。
- 自身安全保障:构建轻量级Hypervisor,较少TCB(Trusted Computing Base);基于可信计算技术的完整性保护。。
- 提高Hypervisor防御能力:虚拟防火墙;合理分配主机资源;保障远程控制台安全(连接数为1,禁止拷贝和黏贴);根据需要分配权限(先分配角色,不带权限,用户需要什么权限,再分配)。
3. 虚拟机隔离机制
- 安全隔离模型:硬件协助的安全内存管理SMM;硬件协助的安全I/O管理SIOM;
- 访问控制模型:sHype,Shamon;
4. 虚拟可信计算技术
过虚拟监控机提供的隔离和监控机制,缓解软件可信动态度量的理论危机,为在操作系统和软件应用层建立可信计算环境提供一套解决方案。主要思路是通过虚拟技术提供的隔离机制将实体运行空间分开;通过监控机制动态度量实体的行为,发现和排除非预期的互相干扰。其主要的难点是细化隔离粒度,减少系统的开销,提高度量效率。
过可信计算提供的可信度量、可信存储和可信报告机制,净化终端的计算环境,搭建终端之间的可信连接,构建诚实、互相信任的虚拟空间。主要思路是,通过可信度量机制保障虚拟机的动态完整性,通过可信报告机制实现不同虚拟环境的可信互通,通过可信存储机制保障数据迁移、存储和访问控制的解决方案。一方面,利用可信计算技术实现对虚拟机的安全保障;另一方面,将可信计算融入基于虚拟机技术的应用业务中,例如云计算等,为上层服务提供更好的安全支撑。
5. 虚拟机安全监控
通过安全资源池的虚拟安全能力或者在租户网络内部署虚拟安全能力两种方式,提供预防类安全服务,包括系统漏扫、配置基线核查和web漏洞扫描等,只需安全能力与扫描对象网络可达,即可扫描租户虚拟机的配置和漏洞情况,并根据扫描结果提供相应建议。
- 内部监控:被监控的虚拟机中插入一些钩子函数,典型代表Lares、SIM,可以直接截取系统级语义;
- 外部监控:依赖Hypervisor的截获,典型代表Livewire,需要语义重构(低级语义如二进制语义重构出高级语义如操作系统级语义);
6. 虚拟机自省技术
虚拟机自省是从虚拟机外部获取客户虚拟机操作系统内部状态信息的技术,该技术打破了传统安全防护技术的瓶颈,受到了安全领域的广泛关注。它是一种在虚拟机外部监测虚拟机运行状态的技术,从2003年提出以来,虚拟机自省得到了国内外学者的研究。近些年来,不仅出现了各式各样的原型系统,还涌现出诸如LibVMI等优秀的开发工具包,基于虚拟机自省的应用也越来越多。
虚拟化概念最早起源于20世纪60年代,虚拟化技术可以实现在一个服务器上运行多个操作系统,初衷是为了更为充分地利用价格昂贵的大型机。经过半个世纪的发展,虚拟化技术已成为计算机领域的一项传统技术,并且成为了云计算的核心技术。从虚拟化到云计算,IT产业实现了跨地域资源的动态调度,可以说虚拟化技术为云计算奠定了良好的基础。但随着云计算的广泛应用,作为其核心技术的虚拟化技术的安全性也成为了业界关注的焦点问题。为了切实保障虚拟化环境的安全,需深入了解虚拟化存在的安全隐患,掌握虚拟化安全攻击的原理,并有针对性地部署安全机制来抵御安全威胁。
最后絮叨两句,安全运维和运维安全是两个概念。运维是工程师对各种安全设备和软件进行运维保障系统安全,而运维安全相比之下是涵盖了整个云计算系统和安全有关的方方面面。
【本文是51CTO专栏作者“绿盟科技博客”的原创稿件,转载请通过51CTO联系原作者获取授权】