首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何确保我的服务器没有虚拟化?

我如何确保我的服务器没有虚拟化?
EN

Unix & Linux用户
提问于 2012-02-04 16:26:17
回答 6查看 412关注 0票数 6

如何确保我的Linux服务器运行在一个非虚拟化的真实机器上?

这就是我正在考虑的情景:

  1. 我在机架服务器上安装了一些发行版,
  2. 我在数据中心租了一些架子放在那里,
  3. Mallory (“攻击者”)去数据中心断开我的服务器,
  4. 马洛里拍下了磁盘的图像
  5. Mallory以客人身份在KVM盒上运行磁盘映像。

假设,为了这个问题,攻击者

  • 修改了KVM或任何类似的虚拟机管理程序,以模拟我的服务器运行的完全相同的硬件,
  • 知道所有已知的逃逸-管理程序或检测-管理程序攻击,并已修补管理程序,以抵消他们(所以没有红色药丸和类似的)。

因此,我的问题是:是否有可靠的方法来确保操作系统运行在物理盒(或一个精确的物理盒)上,而不依赖于虚拟化缺陷(比如红丸)?

或者反过来:是否有证据证明这样的探测永远是可能的?

澄清:这是一个假设性的问题,而不是关于当前技术的讨论。目前,很容易检测到我是否处于虚拟化环境中,只需使用imvirt及其已知的虚拟化故障/缺陷集合即可。我想知道从理论的角度来看,像“完美虚拟化”这样的东西是否已经被讨论和发现是可能的还是不可能的。

EN

回答 6

Unix & Linux用户

回答已采纳

发布于 2012-02-06 02:01:37

假设攻击者制造了一台完全模仿您的硬件的虚拟机。在这种假设下,根据定义,您无法检测到您的代码正在虚拟机中运行。

如果虚拟机实际上运行在实际的硬件上,那么您应该能够从外部检测到它,因为虚拟化的开销可能会带来一些额外的响应延迟。这种开销可能不会比其他网络开销明显。如果虚拟机在更快的硬件上运行,理论上它可以提供完美的仿真。

在实践中,要提供完美的硬件仿真是非常困难的。(这是操作系统和驱动程序开发人员所希望的,不幸的是,模拟器并不完美。)当然,这在理论上是可能的,但对攻击者来说有更便宜的攻击方法。您假设的是物理访问;攻击者可以安装一个隐藏的rootkit,或者在PCI或RAM总线上放置一个间谍:这比为周围的所有硬件开发完美的仿真器要便宜。或者,更有可能的是,马洛里会利用软件漏洞,提交密码,或者作为最后手段使用扳手密码分析,如果她真的被打扰了

复制数据并植入rootkit是迄今为止最简单的攻击方法。您可以在一定程度上通过在服务器中使用TPM来防止这种情况。TPMs被设计成很难复制,如果使用正确的话(注意:这很难!)目前还没有现成的操作系统从TPM信任的根源来验证整个操作系统的完整性。)TPM可以保护操作系统及其数据的完整性和机密性。

票数 3
EN

Unix & Linux用户

发布于 2012-02-04 20:17:22

从理论上讲,我认为如果有人制造一台模仿计算机所有物理部件的虚拟机是可能的。通过“模仿”,我知道它会有处理器,它报告它是一个特定的物理处理器,一个芯片组,报告它是一个特定的芯片组,一个BIOS,磁盘等等。

我认为,从纯粹的技术角度来看,这是可行的。另一方面,从实际的角度来看,这可能永远不会做到。为什么有人要投入大量的金钱和人力来提供一台虚拟计算机,完美地模仿某个特定的硬件版本如此短暂的东西?当他们完成构建虚拟解决方案时,硬件将不再使用。

票数 2
EN

Unix & Linux用户

发布于 2012-02-04 18:47:59

总之不行。没有任何保证。然而,据我所知,目前还没有任何虚拟化解决方案可以接受运行中的内核并在虚拟化环境中使用它。Mallory字符需要安装客户虚拟化内核才能在vm中运行它。因此,最简单的检查方法是检查内核运行的情况。

我的回答是否定的,因为作为一个安全问题,我认为这是一个如何确定Mallory是如何阻止您找出内核正在运行的问题,因为我认为有一天可能会有一个解决方案来解决用于虚拟化的不同内核的问题。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/30851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档