![强化虚拟机](https://linux22.com/image/581707/%E5%BC%BA%E5%8C%96%E8%99%9A%E6%8B%9F%E6%9C%BA.png)
我有一个基于 CentOS 的产品,希望将其作为虚拟机 (VMWare、XEN 和 KVM) 进行分发,最近我一直在评估保护 VM 所需的步骤。VM 的数据不应让除授权人员以外的任何人访问,因为它包含敏感数据,我的意思是应始终要求输入 root 密码,否则将拒绝访问。
使用 XEN 可以通过以下方式访问机器:
- 通过使用 Dom0 编辑引导加载程序,从而破坏任何引导加载程序保护:xe-edit-bootloader -u -p 1
- 通过将 init=/bin/sh 添加到 VM 启动选项
使用 VMWare,您可以在其他系统上安装映像并访问文件。
可能还有其他方式可以访问机器,我的问题是,我应该考虑哪些其他方式,以及如何防止它们,包括我上面列出的那些?
答案1
好吧,只要人们有“物理”访问权限(在这种情况下意味着他们有虚拟机),总会有办法解决 - 单用户模式,或者像 konboot 这样的工具。
我认为处理此问题的唯一可行方法是加密整个硬盘 - 您会遇到一些性能问题,但由于您需要密码才能访问数据,因此单用户模式不会有什么用处,安装映像也不会有什么用处。
这应该可以处理大多数攻击媒介,除了一些特殊的攻击媒介 - 例如,受感染的主机可能会转储内存内容(如果存在这样的情况)
答案2
我真的没有找到一种方法可以阻止最终用户在未加密的情况下查看磁盘上的数据,即使这样也会有解决方法(否则他们将无法实际使用虚拟机)
我看到的解决方案是自动化一种方式,以便为使用您产品的每个用户定制产品,或者以一种方式通用化虚拟机,让最终用户必须设置适当的凭据并自行管理机器。您无需了解您的产品是什么,但实际上您无法完全阻止他们安装磁盘映像并绕过保护,而且您实施的任何措施都很可能让合法的最终用户不得不处理更多负担。
基本上,您需要在设计解决方案时考虑到最终客户能够并且将会看到这些信息,因此您不能将机密信息放入您正在分发的产品中。根据该用户的站点自定义解决方案,或通过在设置时设置密码和凭据来强制他们管理它。