我正在阅读这本CompTIA Security + SYO-201书,作者David Prowse声称:


无论选择哪个VM,该VM都无法越过在
位置设置的软件边界。例如,病毒在执行时可能会感染计算机,并传播到操作系统中的其他文件。但是,在VM中执行的病毒会通过
VM传播,但不会影响底层的实际操作系统。


因此,如果我正在运行VMWare Player并在我的虚拟机的操作系统,我完全不必担心主机系统受到威胁吗?

如果虚拟机与主机共享网络,并且启用了共享文件夹,该怎么办?

蠕虫是否仍然可以通过这种方式将自身复制到主机?如果操作系统是Windows并插入USB存储设备,用户是否仍然容易受到AutoRun的攻击?

虚拟机到底有多安全?它们能在多大程度上保护主机免受恶意软件和攻击?

评论

如果我是编辑,则将“希望”和“理论上”插入该报价中的几个选择位置。照原样,这绝对是错误的陈述。

从来宾操作系统到主机操作系统的实际攻击示例。 venom.crowdstrike.com

一个非常笼统的说法是主机和网络的安全性取决于所述主机/网络和客户端VM之间的接口的安全性。您应考虑安装最少的工具,最少的网络访问和最少的硬件设备,以最大程度地降低风险。如果仅在内存沙箱中运行VM,则可能会很安全。唯一要攻击的接口是遮阳板的CPU和内存子系统。您还将拥有一个非常无用的VM。例如。您需要一张软盘吗?

#1 楼

虚拟机肯定可以交叉。通常,您会将它们联网,因此任何具有网络组件的恶意软件(即蠕虫)都会传播到其寻址/路由允许的任何位置。普通病毒往往只在用户模式下运行,因此尽管它们不能公开交流,但它们仍可以建立隐蔽渠道。如果您共享CPU,则一台VM上的繁忙进程可以有效地将状态传达给另一台VM(这是您的典型时序秘密通​​道)。由于虚拟磁盘往往会对其进行硬性限制,因此存储隐蔽通道会更难一些,因此,除非您拥有一个可以过量使用磁盘空间的系统,否则这不会成为问题。
最有趣的方法保护虚拟机的安全称为分离内核。这是约翰·拉什比(John Rushby)1981年的论文的结果,该论文基本上指出,为了以等同于物理分离的方式隔离虚拟机,计算机必须以任何时候都无法存储任何资源的方式将其资源导出到特定的虚拟机。 VM之间共享状态。这会产生深远的影响,因为它要求以一种不可旁路的方式来设计底层计算机体系结构。
本文发表30年后,我们终于有了声称能够做到的产品它。 x86并不是最适合的平台,因为有许多指令无法虚拟化以完全支持“不共享”的想法。对于常见的系统来说,它也不是很实用,因为要有四个VM,则需要四个硬盘驱动器来悬挂四个磁盘控制器,四个视频卡,四个带有四个鼠标的USB控制器,等等。
2020年更新:所有近期基于硬件的漏洞(Meltdown,Spectre,Foreshadow,ZombieLoad,CacheOut,SPOILER等)漏洞都是VM始终能够进行通信的很好的例子,仅仅是因为它们共享硬件(缓存, TLB,分支预测,TSX,SGX)从未打算或准备进行分区和隔离。

评论


这种对于病毒作者的秘密交流有什么好处?听起来直到两台计算机都被感染,它才能被使用,但是在那之后为什么还要使用它呢?

–杰克·奥康纳(Jack O'Connor)
2014年1月8日在16:35

@ JackO'Connor:为了他们之间的交流。例如,考虑其中一个VM的网卡连接到Internet,但不连接到内部数据中心,而另一个VM的网卡连接到内部数据中心,而不连接到Internet。使用此隐蔽渠道,攻击者现在可以从Internet攻击DC并窃取数据。此外,一个虚拟机可能会使用此方法进行旁通道攻击另一台虚拟机,例如,一个受损的虚拟机(可能在Azure / EC2上)攻击另一台虚拟机以获得另一台虚拟机的SSL私钥。

–马特
2014年4月17日在7:33



如果虚拟机实际上并没有直接执行机器代码,而是对其进行解释,那么如果虚拟机可以与外部世界进行交互的唯一方式是从外部本身(例如外部)发起的话,那么使机器100%安全是否存在任何基本困难?将数据复制到虚拟机的“硬盘”的实用程序?)

–超级猫
14年4月30日在19:34

“要拥有四个虚拟机,您需要四个硬盘驱动器挂在四个磁盘控制器上,四个[etc ...]”。这听起来像是缺少了虚拟机。

–休·艾伦(Hugh Allen)
2015年2月6日在2:40

没有完全“不共享”的系统。即使每个VM都有专用的网卡,硬盘驱动器等,您仍将共享主板。而且,如果您的VM实际上有自己的主板,那么您再也无法真正调用系统VM。

– Lie Ryan
18年4月30日在23:53

#2 楼

多年来,已经发布了一些白皮书,描述了研究人员设法从VM感染主机OS的方式。通常,正确地将这些漏洞视为VM供应商的安全漏洞,并将其视为此类漏洞。自从我第一次看到这些论文以来,英特尔在允许分离VM和虚拟机管理程序方面进行了一些重要的处理器指令集改进。

我最近看到的几个漏洞更多地基于“ vmtools”部分。这是您安装的软件,以使来宾OS更加高效地运行(对于VMWare,这是即时捕获光标以及在不通过网络在来宾和主机之间共享的功能)。这是用于感染的特殊软件途径;

一些恶意软件显示出能够检测到它们正在VM中执行并因此改变其行为的能力,这在一定程度上加剧了恶意软件研究人员试图使用VM作为测试恶意软件的方法。不过,我不知道现在有多普遍。

评论


我听说他们通常在调试器中运行恶意软件,为导致VM特定行为的分支设置断点,并在评估后更改该条件的结果。但这在当今并不普遍,因为许多有趣的目标已虚拟化。

–陈凯文
2014年7月10日15:11

“这是一种用于感染的特殊软件途径;不要安装工具,没有漏洞。”即使未安装工具,攻击者也可以安装它们。要正确地关闭攻击媒介,您需要关闭工具所使用的API。

– Peter Green
16年12月21日在18:15

#3 楼

来宾到主机代码执行的示例可以在Cloudburst利用中找到。有一个视频演示了该过程,Immunity的一篇论文详细介绍了它们在Windows Vista SP1上的VMware Workstation 6.5.0 build118166,Windows Vista SP1上的VMware Workstation 6.5.1 build126130和(甚至更可怕的)VMware ESX Server 4.0上的成功。 0 build133495。

这可能提供很少的安慰,但是我从未听说过它在野外使用,并且该漏洞利用始于2009年。该书于2010年出版,因此作者应清除该说法。

#4 楼

虚拟机就是一台逻辑上独立的虚拟机,因此虚拟机上必须具有与裸机系统相同的安全层。如果虚拟机使用正常的通道访问主机,那么使用虚拟机将不会阻止它。

虚拟化的真正好处是能够将VM回滚到未受影响的状态,以及更好地管理可用资源的能力。

如果采取了适当的步骤来保护主机,虚拟化将非常安全。将ESX / VM服务器管理保持在不同逻辑网络上,而不使用VM-host接口工具等做法将使攻击者大部分时间都不会注意到计算机是虚拟的这一事实,更不用说如何访问主机了。

此外,还有一些影响VM主机的漏洞利用程序(我在VMWare和Hyper-V中已经使用过这些漏洞)。目前,我只知道主机Hyper-v的DoS攻击(请参阅此内容),但是我敢肯定还有其他发现。 VMWare也有其历史(例如,这是基于VMWare工具的,但仍然适用)。

根据您在做什么,有些在线工具可能会带走您需要在自己的计算机上进行分析。以下是一些值得一看的网站:
-Threatexpert.com
-anubis.iseclab.org
-virustotal.com

评论


附言如果您想测试您的沙盒环境,请访问恶意软件域列表.com,但是要注意,只有当您想要感染一些新的,有趣的恶意软件时才使用它:-)

– Ormis
2011年4月13日在18:41

+1,但可以在theinvisiblethings.blogspot.com上找到这些领域公认的领导者Joanna Rutkowska

–AVID♦
2011年4月13日在18:55

x86上的VM并非逻辑上完全独立的计算机。阅读en.wikipedia.org/wiki/…和usenix.org/events/sec2000/robin.html,您会发现存在17条无法虚拟化的指令。

–马辛
2011年4月14日13:40在

逻辑上分开并不意味着技术上分开。即使无法虚拟化所有指令,机器的应用程序仍然是不同的逻辑实体。部署它们的人需要保持这种心态,不要因为抽象而承担安全性。另外,请记住为VMWare做基础...,尝试使用与要测试的来宾OS不同的主机OS,查看隔离选项,并确保正确构建网络。因此,@ Marcin我理解您要说的话,但是我相信我的评论仍然有效(只是虚拟化!=安全)。

– Ormis
2011年4月21日在18:01

#5 楼

Security +资料的意思是,到目前为止,恶意软件无法利用虚拟机是虚拟机并以某种方式攻击虚拟机管理程序来逃脱虚拟机的沙箱。其他机制,例如跨共享网络的传播,就像它们是不同的物理盒子一样。

评论


不幸的是,您的回答实际上是错误的。我不确定它是否在2011年为人所知,但现在绝对是。 vupen.com/blog/…通过insinuator.net/2013/05/analysis-of-hypervisor-breakouts

–ajm475du
2014年12月15日下午13:03

#6 楼

正如此漏洞所证明的那样,它们并不完全安全:

VENOM,CVE-2015-3456,是一个安全漏洞,会影响一些常见的计算机虚拟化平台,尤其是Xen,KVM,VirtualBox和本机QEMU客户端。

此漏洞可能使攻击者摆脱了受影响的虚拟机(VM)来宾的限制,并可能获得对主机的代码执行访问权限。有关该漏洞的更多详细信息
可以在这里找到。

评论


请注意,假设它不是以root身份运行,则使用QEMU的chroot选项可以缓解CVE-2015-3456。该漏洞所做的只是损害用户空间QEMU前端,而不损害内核空间Xen / KVM后端。另外,我认为它根本不会影响VirtualBox。特别是QEMU的fdc驱动程序中的漏洞。 VirtualBox不共享该代码。据说影响KVM和Xen的唯一原因是因为这两个很少单独使用,而是充当QEMU的后端。尽管仍然使用KVM,但像kvmtool而不是QEMU之类的东西不会受到影响。

–森林
17/12/22在2:25



#7 楼

我认为作者的主张并不完全正确。实际上,虚拟化领域中有两种类型的管理程序。系统管理程序是创建和运行虚拟机的计算机软件,固件或硬件。这些类型是:



Type-1管理程序

Type-2管理程序

Type-1管理程序直接运行在主机的硬件上控制硬件并管理来宾操作系统。因此,它们有时被称为裸机管理程序,而Type-2管理程序就像其他计算机程序一样在常规操作系统上运行。 VMWare或VirtualBox是Type-2虚拟机管理程序的示例,因为它们在主机OS中作为程序运行。

对于Type-2虚拟机管理程序,有一个RoboLinux项目,该项目具有一个称为Stealth VM的独特功能。 Stealth VM软件安装程序,可让您构建在安全Linux分区中运行的Windows 7克隆。该系统受到恶意软件的保护,您下载的所有内容都将包含在虚拟机中,并且该文件供必须拥有特定Windows程序的用户使用,只需单击两下鼠标,便可以轻松还原为新操作系统。

有Qubes OS,它是在Linux和Xen上开发的,以Type-1虚拟机管理程序为例。 Qubes OS采用一种称为“隔离安全”的方法,在这种情况下,这意味着将您在计算机上所做的事情安全地隔离在不同的VM中,这样一台VM受到威胁就不会影响其他VM。与Type-2虚拟机管理程序不同,它具有安全的VM间文件传输系统来处理共享文件夹的风险。从理论上讲,根据开发人员的说法,该组织比Type-2虚拟化更为安全。

简而言之,作者应指出哪个虚拟机管理程序或虚拟系统。

参考文献:


https://en.wikipedia.org/wiki/超级管理程序
https://www.qubes-os.org /
http://www.robolinux.org
http://www.xenproject.org/
http://www.hacker10.com/computer-security/vpn-ready-linux-distribution-robolinux/


评论


您的意思是Qubes是Type-1虚拟机管理程序的一个例子吗?

– TNT
16 Mar 23 '16 at 4:58

是的(我应该有笔误;现在我编辑了thx),也可以在他们的网站上找到该信息。 “相比之下,Qubes使用称为Xen的“ Type 1”或“裸机”虚拟机管理程序。Type1 Hypervisor不在操作系统内部运行,而是直接在硬件的“裸机”上运行。这意味着攻击者必须具备能力破坏虚拟机管理程序本身以破坏整个系统,这要困难得多。”来自qubes-os.org/tour/#what-is-qubes-os

–JackSparrow
16-3-24在19:24



#8 楼

有趣且相关的是,2016年的“ Pwn2Own”安全竞赛是其竞赛之一,从VMWare Workstation虚拟机逃脱。 (其他方法包括转义浏览器沙箱或接管物理计算机)。那应该给出一个想法:1)至少是合理的,2)如果很简单,那么我们就有一种方法可以听到它-只需检查结果即可:)

更一般地讲,从理论上讲,VM安全性可以逃脱在许多方面。例如-


来托管命令和API(例如VMware工具)的来宾
主机OS本身的可利用弱点不能通过在VM进程中运行而得到缓解(如果有的话)来宾OS调用被错误地判断为“安全”,并被来宾驱动程序直接传递给主机OS或设备驱动程序以提高速度,但存在漏洞利用。
供应商驱动程序或供应商代码中的错误(例如,主机驱动程序允许来宾操作系统的网络桥接;也许其中的错误可能允许在内核级别在主机上进行调用或代码。
主机上其他软件引起的漏洞(伪造的示例-如果本地防病毒软件拦截了所有网络来自主机的流量进行扫描,并将来宾流量作为其一部分进行扫描(而不是由于虚拟NIC设备而被忽略),那么a / v引擎对恶意制作的流量或数据包的漏洞可能能够允许来自VM的流量逃逸到主机)
用户配置错误(主机文件MA pped或安全性/隔离度不足,因此客人无法到达它们)。

该范围存在,并且一定流行,因此肯定会对其进行积极检查以进行攻击。如果没有漏洞利用,肯定会定期发现漏洞并需要修补。

#9 楼



物理隔离总是比使用逻辑隔离更健壮。在物理隔离的系统(服务器等)中,一个物理隔离的系统中的安全问题不会通过共享的管理程序或硬件在另一个物理隔离的系统中成为问题。当然,网络是需要解决的另一个媒介。



出于所有目的和目的,VM /管理程序(请参阅后面的说明)可以在VM之间提供足够的隔离。这也是使用云服务提供商(CSP)的基本前提,在云服务提供商中,多租户系统不仅使用虚拟服务器,而且还使用虚拟网络和存储来共享相同的硬件。某些基于虚拟机管理程序的系统已被批准用于在同一平台上提供不同分类级别的系统之间的隔离(https://en.wikipedia.org/wiki/NetTop)。


类型1(裸机)和类型2虚拟机管理程序之间的区别是重要的。类型2虚拟机管理程序的安全性不会比基础主机OS高。通常,它们也无法像类型1虚拟机管理程序那样对硬件进行相同的控制。


虚拟机管理程序的安全功能和正确运行的保证:
不同的虚拟机管理程序提出不同的主张。在虚拟机隔离和对虚拟机到物理硬件资源的控制方面。例如,ESXi声称具有“ VM域隔离”功能,并且已通过通用标准(CC)流程对其进行了独立评估,以评估其安全要求。如果您使用未经独立验证的虚拟机监控程序,那么您会误以为卖方可以做到他们声称的那样并且正确执行了。


所有复杂的软件都可能配置错误,暴露漏洞。使用CIS基准,供应商指南或DISA STIG配置虚拟机监控程序非常重要,以消除已知的配置漏洞。


所有软件可能都存在安全漏洞(实现漏洞),因此拥有一个漏洞管理程序来快速识别和修补此类漏洞也很重要。


总结:

请使用经过CC认证的Type 1虚拟机管理程序。
按照安全配置指南进行安全配置。
具有适当的安全漏洞管理程序。
具有适当的安全体系结构(网络和主机IDS),AV,安全监控,边界控制等。
对于任何集中式虚拟化侵权WMware vCenter之类的管理程序,确保管理器平台,管理器和管理的虚拟机管理程序实例接口的管理器是安全的。例如:vCenter部署在安全,强化的服务器上,具有强大的管理员权限。身份验证和访问控制。该平台在主机(AV / HIDS),网络级别(FW,NIDS / NIPS)受到保护,并且进行了安全监控(例如SIEM)。接口使用适当的传输中数据(DIT)加密,相互身份验证和适当的密钥管理(KM)。
要认识到虚拟隔离确实会带来相对于物理隔离的额外风险。但是,如果解决了上述问题,应该是可管理的。


#10 楼

专为在vms中运行而设计的漏洞以及针对底层主机内核中的bug的攻击是不可避免的。首先在流行的云平台中查找它们。