病毒会不会逃出虚拟机?
作者 / Serendipity
本文来自知乎日报 https://daily.zhihu.com/story/9733872
当然可以逃得出去,别小瞧了现代黑客的技术。
其实虚拟机的本质也是运行在操作系统上的一个应用软件而已,和你打开的 chrome、QQ、网易云音乐、LOL 等没有什么大的区别,只不过这个应用软件会独立的运行另外一个操作系统而已。
因此,虚拟机实际上也不是能够和真实主机完全隔离,来保证绝对安全的,在一部分情况下还是会影响到主机的安全性,例如软件漏洞逃逸和硬件逃逸等等。
在虚拟机安全中,有个专业的名词就叫做虚拟机逃逸,指的是进程越过虚拟机范围,进入到宿主机的操作系统中,也就是题目中提到的病毒逃离虚拟机,对真实主机造成危害。
这种情况常有发生,例如:
Virtual machine escape fetches $105,000 at Pwn2Own hacking contest [updated]
17 年在温哥华举行的 Pwn2Own 黑客大赛,360 安全团队便通过利用 Edge 中的堆溢出漏洞,Windows 内核中的类型混淆漏洞以及 VMware 中的未初始化的缓冲区漏洞进行了黑客攻击,以逃避运行 Microsoft VMware Workstation 虚拟机的方式破坏了微软的 Edge 浏览器,拿走了 105,000 刀的奖金。
一般试图进行虚拟机逃逸的恶意软件都必须先瞄准特定虚拟机配置中的已知缺陷,并依赖于预先了解主机环境中的一部分信息。大多数现实世界的虚拟机逃脱的目标是 VirtualBox,比如:
另外,一些恶意代码会检测它是否在虚拟机环境中运行,目前已经公布了许多技术可以用来检测虚拟机。VMware 并不认为这是一个安全漏洞,所以也没有采取明确的技术措施,来避免检测。 但一些恶意代码会在虚拟机环境中有着不同的执行过程, 这也会加重一部分恶意代码分析师的工作负担。
与其他所有的应用软件一样, VMware 本身偶尔也会被曝出安全漏洞。而这些安全漏洞被利用,会导致宿主机操作系统崩溃,甚至在上面运行恶意的代码。尽管只有少数公共工具或论文显示了攻击 VMware 的技术,但是目前在共享目录特性中已经被发现了安全漏洞,而且也公开发布了利用拖放功能的攻击工具。
目前已经在共享文件夹功能或者共享工具中发现了很多公开的漏洞,它们都利用了 VMware Tools 的拖放功能。一个使用了文件夹共享功能的公开漏洞,可以使 Guest 系统在宿主系统上写任何文件,从而修改或者破坏宿主操作系统。
虽然这种特别的技术对当前版本的 VMware 无效,但在文件夹共享功能上已经发现了几个不同的安全漏洞,因此最好确保自己的 VM 软件有完整的补丁修复,或者通过在虚拟机中禁用文件夹共享功能,也可以阻止这种类型的攻击。
在以前的时候,恶意代码编写者也经常使用反虚拟机技术来逃避恶意代码分析,恶意代码可以使用这种技术探测自己是否运行在虚拟机中。如果恶意代码探测到自己在虚拟机中运行,它会执行与其本身行为不同的行为, 其中最简单的行为就是是停止运行。
这种反虚拟机技术给恶意代码分析者带来不少的难题。
不过随着虚拟化技术的使用不断增加,这种采用反虚拟机技术的恶意代码数量也在逐渐下降,因为无论是计算机管理员还是普通计算机用户都在使用虚拟机,所以即使目标主机是虚拟机,其也有攻击价值,黑客也不能够对其像之前一样视而不见了。