在虚拟化环境中的安全性方面,我不是专家。
但是我经常看到的一个问题是:如果主机操作系统被黑客入侵并且攻击者获得了管理权限,会发生什么?
如何保护(公共)云中的 VM 免受此类威胁?
据我所知,确实存在加密存储层或加密 VM 的 RAM 等解决方案。不幸的是,我从未见过描述如何应用这些技术的教程。是否有关于如何在不求助于提供商的专有解决方案之一的情况下执行此操作的说明?
在虚拟化环境中的安全性方面,我不是专家。
但是我经常看到的一个问题是:如果主机操作系统被黑客入侵并且攻击者获得了管理权限,会发生什么?
如何保护(公共)云中的 VM 免受此类威胁?
据我所知,确实存在加密存储层或加密 VM 的 RAM 等解决方案。不幸的是,我从未见过描述如何应用这些技术的教程。是否有关于如何在不求助于提供商的专有解决方案之一的情况下执行此操作的说明?
虽然 Thomas Pornin 正确地指出,信任受到攻击的主机的唯一方法是在实践中使用完全同态加密,但您可以尝试解决此要求。
潜在的攻击者可以完全控制 CPU、内存和磁盘。因此,不可能对可能不受您控制的 VM 中的有价值数据进行任何计算。另一方面,通常没有必要。如果您想将您的虚拟机用作数据库或存储/备份服务,虚拟机永远不需要访问未加密的信息。您可以将文件或条目存储在数据库中,存储加密文件或文件名的哈希值,例如按文件大小排序或检索客户端提供文件名作为哈希值的某个文件。
这种方案限制了您可以对数据执行的操作,但如果加密良好,攻击者就不可能窃取您的数据。在最坏的情况下,他们可以修改它,因此您需要加密签名以防止数据被篡改。
一个流行的例子是boxcryptor,它使用加密容器将文件安全地存储在不同的云提供商处。另一个是duplicity,它允许使用 rsync 和 GnuPG 进行加密备份。
通过例如 truecrypt 或 Bitlocker 加密 VM 本身的存储不会显着提高安全级别。如果虚拟机关闭,它可能会阻止攻击,但一旦你运行它,操作系统就需要密钥来访问加密卷,此时潜在的攻击者也可以获取密钥。
如果宿主是敌对的,那么抵抗是徒劳的。
主机可以读取 VM 的磁盘、RAM 和 CPU 状态。只有完全同态加密才能拯救你,但它还不起作用(科学还没有发现一个有效的解决方案;但这只是十亿左右的一个因素,因此我们仍然可以期待......稍后)。
其他人在说绝对(理论上)。是的,如果攻击者可以访问主机操作系统,那么理论上你的虚拟机就不再被认为是安全的。然而,要在实践中做到这一点,它需要一些非标准的黑客工作,这意味着这是针对YOU的有针对性的攻击,因为会有很多其他的虚拟机不会被加密,并且比你的虚拟机更容易成为目标。云中的全盘加密将在其他虚拟机的人群中保护你,但如果你被专门针对,你就死定了。没有绝对安全的系统,只是访问它的困难不同。磁盘加密增加了难度。如果您想要更好的安全性,请运行自己的主机,但前提是您有能力,否则情况可能会更糟。
您在这里的问题是同一个老问题 - 可以访问物理框的攻击者,或者在这种情况下是主机,可以访问您的 VM。
如果您将事物外包,这是您需要考虑的风险之一——您使用与供应商的合同为您提供所需的保证。