病毒可以爆发并从主机系统读取或写入数据吗?如果在我的VM中禁用它,它可以建立Internet连接吗?
VM是一个安全的环境,可以尝试查明病毒的作用吗?
分叉炸弹可以吗?如果我将内存减少到总真实内存的1/4,会“杀死”主机系统吗?它可以使用多少CPU时间/资源?
#1 楼
从理论上讲,来宾系统完全被VM隔离,甚至无法“看到”主机,更不用说攻击主机了。因此来宾无法脱离VM。当然,实际上,它偶尔会发生(网络存档链接)。攻击需要在VM实施或VM所基于的硬件功能中利用安全性问题(即造成严重后果的编程错误)。数据从VM出来的退出路径很少;例如,对于Internet访问而言,VM正在仿真一个虚拟网卡,该网卡仅处理最低级别的数据包,而不处理完整的TCP / IP-因此,大多数IP堆栈问题仍局限在VM自身内。因此,导致从VM突破的错误往往很少发生。VM可以有效地对付某些类型的攻击,例如叉炸弹。从主机系统的角度来看,VM是单个进程。来宾中的一个分叉炸弹将使来宾OS中的调度程序屈服,但是对主机而言,这完全是无害的。同样对于内存:VM模拟具有给定RAM数量的物理机,并且将需要大约一定数量的“实际” RAM来有效地对其进行备份。无论客户机做什么,VM都不会独占更多的RAM。 (您仍然希望将VM RAM大小限制为最多物理RAM大小的1/2,因为额外的“实际” RAM便于进行磁盘缓存;并且主机OS也希望使用其中的一些。)
评论
在此答案的底部,提供了一个列表,其中包含许多指向chroot / virtualbox漏洞的链接,并表明其中有无限个。它看起来并不罕见。请参阅:tor.stackexchange.com/questions/330/…
– Czarek Tomczak
16 Jan 18'在11:01
如果您查看他发布的链接,则该特定攻击需要将主机上的文件夹与虚拟环境共享。我不知道其他人,但是如果我要在VM中测试恶意软件,则不会与之共享主机环境中的文件夹。
–DaveTheMinion
17年2月17日在19:57
也许安全的方法是使用Linux主机OS之类的东西,并在“虚拟”框中使用Windows。这样,即使您共享一个文件夹,该恶意软件或病毒也无法传播到该文件夹之外,因为它是一个不同的操作系统(假设您在虚拟盒操作系统中禁用了联网)
–Nav
17年7月8日在13:20
如果某些恶意代码旨在破坏硬件(例如cpu或ram),那么真的安全吗?
– Victor VosMottor
20 Sep 6'15:53
#2 楼
免责声明:我将寻求一个相对较高的理解。如果您需要详细的指南,则超出范围。此外,还有其他方法(完全在软件中)来实现不适用于此虚拟机。我还专注于仅通过虚拟化机制“突破”,即不能在实际的硬网络主机上在PC到PC上发生。
我喜欢细节,所以这里我们一起去。首先,codeproject在x86 CPU的不同模式(实际,受保护和较长)以及虚拟化的使用方面具有一些出色的汇编程序参考。有一个Intel VT博客(我不确定Intel是否写这篇文章),最后Rootkit Arsenal的第一部分致力于解释x86,是一本很好的读物,其中包含演练和漂亮的图表。了解这一切需要耐心,所以我在这里要做的是对它的工作方式做一个非常简短的介绍。早期的16位实模式系统运行分段存储器模型。无法控制段的大小,并且这些段中的任何一个都没有保护开关。代码被加载到一段内存中并运行;它可能会跳到其他段,所以任何地方的任何代码都可以改变任何东西,包括产生一个TSR(终止并保持驻留)代码,该代码只是将IVT条目(中断向量表)指向其空间中的一个地址,在执行原件之前。基本上没有保护。没有。 Nada。
32位保护模式的兴起
保护模式会很快变得复杂。它分为三个部分-分段,分页和PAE。每个组件都需要一个数据表,该数据表告诉CPU该段,页面或帮助它扩展地址空间(PAE)。其中包括著名的环形标志(它们适用于段和页面),实现了进程隔离。分页是一种将数据从RAM加载到磁盘并创建虚拟内存等奇特事物的方法(请参见虚拟一词!我们到了!) />长模式消除了细分,仅要求PAE /分页结构。同样,为了完全简化实施OS的过程,分页由内存中的结构控制,然后通过特殊指令进行设置。瞧,通过正确的设置可以实现流程隔离。再次,我在轻描淡写...
给我虚拟化!虚拟化是相同的一般概念。虚拟机是使用虚拟机控制结构设置的,该结构规定了如何将其内存映射回物理内存,就像分页一样。至关重要的是,在某些条件下,将要求虚拟机向主机操作系统请求某种东西,例如进程隔离,某种软件中断。这些被称为VM出口,并向主机提供信息,例如出口时的寄存器状态。 Kinda就像系统调用一样。
恶意软件可以从虚拟机中爆发吗?
就VM而言,主机OS具有所有功能它自己的内存空间,并且可以随意对其进行感染/损坏/破坏。
就直接影响主机内存而言,虚拟机无法看到,因为它看不到它。主机必须将所需的内存映射到虚拟机空间。它还必须在该内存空间中实现从BIOS开始的所有功能。为了与某些主机设备进行某些任务通信,主机必须设置这些VM退出条件,而目标VM必须触发它们。发生这种情况时,控制权将转移给主机。
因此存在两个可能存在风险的区域:
主机为响应而采取的行动到VM出口。如果此处理过程中有任何错误,则可以说服主机执行不应执行的操作。
任何主机都可以访问来宾计算机的内存空间。请记住,在环0中运行的主机代码可以不停地跳入聚会并使其崩溃。碰巧的是,您可以设置来自来宾的来宾内存(令人惊讶)。
这将引导您进入利用机制。您需要在VM退出例程中遇到一个处理错误,然后才能说服该代码执行一些内存,理想情况下,您只是将这些代码从客户机vm放入页面中。完成后,与堪萨斯说再见。
正如汤姆·里克(Tom Leek)所说,虚拟机在防御叉子炸弹方面非常有效。与OS可以限制进程可以分配多少内存的方式类似,因此OS可以限制映射到VM的内存数量。耗尽,来宾操作系统认为它已耗尽物理内存;除非您实施VM出口来执行此操作,否则主机将不会为它分配更多资源,这将有些危险,而且我不认为这样做会完成。 br />不是特别的。这完全取决于那些VM出口的实现,或者取决于主机上的来宾读取内存,并且读取代码中有一个不错的错误。它还要求上述错误允许您以某种方式控制崩溃,从而可以强制执行主机所拥有的内存地址。 VM出口必须能够访问该内存。
我还没有介绍什么?
现有软件堆栈(例如TCPIP)上的附件。无论如何,这里的漏洞与您拥有两台实际的物理PC相同。
完全由软件实现虚拟化。
在任何其他类型的芯片上进行虚拟化。这适用于Intel VT兼容设置。
最后,我之前曾说过,进程隔离是沙盒的一种形式。阅读该答案和这个答案,您现在应该能够理解为什么我用这种方式定义它们。在x86中,进程隔离和虚拟机之间有着显着的相似之处。我所描述的是一个非常简单的高级视图。我发现了更多细节。这是Invisible Things Lab专门撰写的整篇论文。事实证明,他们的辩护谈话包含拒绝从环0执行对用户模式页面的访问的概念,从而阻止了虚拟机已直接将其放入内存的数据执行。事实证明,这是在Intel CPU中实现的,而Linux内核中目前存在补丁。因此,根据情况的发展,即使存在漏洞利用,这种性质的攻击也可能变得更加困难。
评论
不用说挑剔,但是许多处理器上也有虚拟8086模式,虚幻模式和探测模式。
–森林
17年12月16日在2:16
身体上的错别字我还没有涵盖什么? 1.不能更改需要包含6个字符。多么愚蠢的规则!
– JGFMK
19年5月17日在18:03
#3 楼
我已经在VM内进行了大量的恶意软件实验-主要是使用backtrack4从一台主机侵入另一台主机。我主要是VMware Workstation用户。最大的问题来自VM的网络连接可能转移回主机OS的可能性。您想完全禁用网络和/或使用无法访问主机的网络。
限制内存是一种很好的最佳做法。与您一样,我通常将其保持在大约四分之一。 CPU时间限制为内核数或(如果您的软件中具有更细粒度的控件)或为特定VM定义的CPU时间百分比。
确实存在能够突破虚拟环境的针对性攻击,并且可以通过商业途径获得,例如cloudburst @Hendrick提到的这种攻击,但这种攻击相对较少。保持虚拟化补丁的最新状态是一个很好的主意。
有关详细信息,请参见此处,此处和此处。
评论
要注意的另一部分是使用VMWare工具,这是通过虚拟化硬件与主机进行通信的标准方法。这只是另一条路,我不知道有什么伤脑筋。
– MToecker
2011年11月17日在23:05
好点子。除非我有明确的需求,否则我通常不安装VMware工具。
–蒂姆·百翰(Tim Brigham)
2011年11月18日,0:58
@MToecker,使用VMWare工具的一条路径是共享驱动器。如果您具有来宾内部对主机上文件的写访问权,则任何恶意软件也都具有写访问权。
–mikeazo
2011年11月18日,下午1:58
您的意思是“迄今为止没有突破虚拟化层的优先级”? Google在前两个匹配项中在共享文件夹实现中找到Exploit,在图形卡模拟中找到Exploit。我确信,在搜索上花费2分钟以上会导致更多的漏洞。
–亨德里克·布鲁默曼
11-11-18在7:17
我唯一看到的就是关于VMware工具的信息。感谢您提出cloudburst的东西。我会相应地更新。
–蒂姆·百翰(Tim Brigham)
2011年11月18日14:34
#4 楼
除了此处提供的有关病毒是否可以从VM中逸出的所有有用信息外,让我指出另一个要考虑的问题:恶意代码有可能检测其是否在内部执行是否使用虚拟机。这通常被称为虚拟机检测或“红色药丸”,并且有许多可用的技术。此外,某些病毒和其他恶意软件使用这些技术来检测它们是否正在VM中运行,如果是这样,请关闭其有效负载(避免采取任何恶意措施)。他们这样做是为了使人们更难进行反向工程或检测恶意软件。该恶意软件可能无法脱离VM,但与此同时,当它在VM内部运行时,它可能无能为力。如果您在VM中运行它,却发现它什么也没做,请确定它无害,然后决定在VM外运行它-您可能会拥有它。小心点。
#5 楼
你们的意思是,使Bios设置与您的计算机进行交互,这些将很容易被黑客操纵或破解。我想您在网上使用的软件是否会被黑客入侵。很简单,因为购买内存扩展比允许在线软件应用程序处理要好得多。这种想法只是某些观点。好吧,无论您信服与否,如今都无法在网上学习这些东西,您无法想象他们对全世界的数百万人说了这么多内容。评论
你想说什么我不明白请改写您的答案。
–cxxl
20/11/10在14:25
评论
虚拟机到底有多安全?错误的安全感?以及如何确保VirtualBox来宾不能脱离vm来访问主机??值得一提的是,从虚拟机中逃脱是很困难的,但检测到您所在的虚拟机则更简单(例如,检查主机用来与来宾中的VM客户端软件进行通信的选择的中断)。现在,许多恶意软件都会检查它们是否在VM中,如果存在,则什么也不做,从而使检测更加困难。
@Basic非常有趣!您能提供参考吗(例如新闻文章/报纸)?
当然。看到这里和这里。我的工作仅切向接触恶意软件,但我们与之集成的系统之一通过在VM中打开电子邮件附件(及类似附件)并监视发生的事情来工作。他们必须花很长的时间才能避免恶意软件在测试虚拟机中死掉的情况(也就是说,它会先检查它是否是一台虚拟机,然后再检查它是否看起来像正式版)。 >