内存转储 - 引起虚拟化关注的原因?

信息安全 攻击 虚拟化 记忆
2021-08-22 20:15:03

最近,我开始探索对虚拟机的一般威胁。我脑海中闪现的第一个问题是主机是否可以将其整个内存转储到文件中,并检查内存以读取 VM 内存映像的内容。

由于虚拟化本质上导致来宾和主机共享相同的 RAM,我猜这是可能的。

=====================
|           |VM|    |
=====================

假设内存看起来像这样。总共 8GB 中的 1GB 内存用于 VM。因此,如果我转储 RAM,我应该能够查看 VM RAM 的内容。

Q1。这是一种可能吗?http://www.symantec.com/business/support/index?page=content&id=HOWTO31321展示了如何获取内存转储

Q2。这是威胁吗?(我猜没有)。但是,如果有人提出一个想法,那就太好了。

Q3。一个更有趣的场景 - 虚拟机能否以某种方式抢占主机的内存?即是否有任何已知的对 VMWare 或其他记录此类攻击的软件的攻击?

3个回答

这可能吗?
是的,这是可能的。主机系统可以访问 VM 的内存,这允许主机读取 VM 内部的任何内容,包括内核模式内存。相当多的 VM 解决方案允许将来宾实例转储到文件或挂起(即休眠的 VM 版本)。

这是威胁吗?
请注意,VM 的内存不会完全存储在主机的物理内存中,而是可能部分存储在交换文件中。这意味着客户操作系统的部分内存存储在主机的磁盘上,即使在客户操作系统终止后,松弛空间分析也成为潜在的攻击。如果攻击者窃取了磁盘或在主机上获得了文件读取权限,他也可以访问挂起的 VM 的图像。如果攻击者可以攻破主机,他还可以在 VM 进程上发出任意内存读取和写入,从而允许窃取和操纵数据。

虚拟机能抢到主机的内存吗?应该不能
VM 通过创建处理器和内存控制器的虚拟化版本来工作。这个虚拟硬件接受正常的内存访问中断并将它们转换为虚拟地址空间。例如,来宾操作系统的内核可能希望访问位于 的物理内存,但虚拟机实际上将该地址转换为,因此虚拟机完全不知道该转换。7a22d6aavm.swap+0x7a22d6aa

这种攻击需要违反内置于 VM 中的隔离机制。这些隔离机制非常强大,因为它们必须包含整个操作系统以及它可能运行的任何软件/驱动程序。隔离通常使用 VT-x 等 CPU 扩展在硬件级别实现。但是,VM 系统是软件,软件总是有 bug。过去存在漏洞,VM 上的软件能够攻击主机,通常是通过用于共享文件和剪贴板功能的操作系统间通信机制。

主机当然可以获取 VM 完整状态的副本,包括 VM 视为 RAM 的内容。这称为“快照”,它是一个理想的功能。

您可以将主机系统想象成内核的内核。无法保护 VM 免受其主机的侵害,就像操作系统无法保护其免受恶意损坏的 CPU 的侵害一样。如果您的安全模型从托管系统调用虚拟机保护,那么您的安全模型从一开始就注定要失败。

(虽然这样的事情可能存在于完全同态加密的上下文中,但目前的研究状态还远未提供该领域可用的任何东西,更不用说高效了。)

在另一个方向:虚拟机应该被主机包含,并且无法逃脱它,到达其他虚拟机或主机本身。现在,当然,这是理论,但在实践中会出现安全漏洞

我对这个和以前的答案有一点不同的想法。

这可能吗?如果可能的话,这是一种威胁吗?

这可能会也可能不会。

从技术上讲,这应该是可能的,因为虚拟化程序在您控制的操作系统内运行。因此,应该可以转储操作系统特定区域的内存。如果有可能,那么我认为这并不是真正的安全威胁,因为主机应该对在其中运行的虚拟环境具有完全访问权限。

但我认为实际上不可能直接(不使用管理程序提供的快照等功能)。这样做的原因是因为您的管理程序在环 -1上运行,这比环 0的操作系统(特定于内核)具有更多特权. 因此,管理程序有权拒绝对特定内存区域的操作系统的内存访问权限。