在理想的世界中,一个程序运行在虚拟机里,他应该无法影响其他虚拟机。不幸的是,由于技术的限制和虚拟化软件的一些bug,这种理想世界并不存在。在某些情况下,在虚拟机里运行的程序会绕过底层,从而利用宿主机,这种技术叫做虚拟机逃逸技术。
本文将首先对虚拟化技术进行简单介绍,然后分析虚拟化技术引入的安全风险,并重点分析其中的虚拟机逃逸风险,最后针对虚拟机逃逸攻击给出对应的防范措施。
一、什么是虚拟机逃逸?
虚拟机逃逸指的是突破虚拟机的限制,实现与宿主机操作系统交互的一个过程,攻击者可以通过虚拟机逃逸感染宿主机或者在宿主机上运行恶意软件。
早在2016年举办的PwnFest黑客大会上(由Power of Community组织,在韩国首尔举办),研究人员唐青昊成功实现了VMware的虚拟机逃逸,这也是VMware首次在公开场合被攻陷,震惊世人。然后再2018年,长亭科技安全研究员张焱宇利用VMware虚拟化平台的3个漏洞,从一台Linux虚拟机内部进行攻击,仅用9分钟便成功获取ESXi宿主机系统的高权限并进行任意控制,展示了私有云系统所存在的安全问题,成功挑战世界级难度虚拟机逃逸。
虚拟化在许多公司里相当流行,因为在服务器整合和功耗方面,它们具有很大的优势。但漏洞利用工具的数量也正在日益高涨,每一个月都会增加不少。
二、虚拟机逃逸风险
虚拟化技术在设计或实现中不可避免地会引入一些漏洞,虚拟机里运行的程序可以通过漏洞利用,突破禁锢,掌控VMM和宿主机,实现虚拟机逃逸。虚拟机逃逸攻击打破了权限与数据隔离的边界,让攻击者不但能掌控Host,还能控制Host上所有的VM,并以此为跳板,攻击其他Host以及Host上的VM,因此,不得不说,虚拟机逃逸已成为云计算时代令人闻风丧胆的重大安全威胁。
在过去的十年里,所有主流的虚拟化软件,都曾爆出过虚拟化逃逸相关的漏洞。
三、 虚拟机逃逸攻击的防范
面对如此多的虚拟机逃逸事件,以及虚拟机逃逸攻击可能带来的巨大危害,防范虚拟机逃逸也就成为一个必须解决的问题,通过总结业界在防范方面经验,可以考虑的思路如下。
1. 及时更新漏洞补丁,消灭已知漏洞
2. 通过缓解措施,提升逃逸难度
3. 利用沙箱机制,实施多级防护
4. 通过用户行为分析,拦截未知威胁
综上所述,随着业界对虚拟机逃逸风险越来越重视,基于软件和硬件相结合的缓解措施,层层隔离的沙箱机制,以及基于机器学习的用户行为分析等措施的不断完善,虚拟机逃逸难度也将越来越难,虚拟化的环境也将越来越安全。
文章标题:解读“虚拟机逃逸”的问题分析与防范
文章链接:
http://shouzuofang.com/article/soiddo.html