如果libvirt存储卷加密存储超级本身的密钥,如果攻击者具有物理访问权限,如何保护秘密本身

问题描述 投票:0回答:1

我想在我们的KVM虚拟化平台中加密我们的VM磁盘,并参考:https://libvirt.org/formatstorageencryption.html#StorageEncryption

我们可以通过简单的步骤来完成:

  1. 创造一个秘密
  2. 创建加密卷
  3. 在VM定义中,指向秘密uuid,就像
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vg/test-vm01'/>
      <target dev='vda' bus='virtio'/>
      <encryption format='luks'>
        <secret type='passphrase' uuid='ebb28309-fb26-4a2a-a5a8-e25adea4bc8c'/>
      </encryption>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>

但是,实际上,libvirt将秘密的值存储为base64编码在/ etc / libvirt / secrets上的超级,如果攻击者拥有超级物理访问权限,他就可以轻松获得秘密值。

我认为黑客无法远程访问,但如果有物理访问权限,任何人都可以重置root密码,然后登录hyper以获取所有内容。

有什么方法吗?

或者这种威胁根本不存在。

谢谢。

libvirt
1个回答
1
投票

如果攻击者在本地主机上具有root访问权限,那么您已经丢失了。即使libvirt将其秘密加密到磁盘上,攻击者也可以从libvirtd内存中获取解密密钥。或者他们只能访问来宾VM内存以直接获取LUKS主密​​钥。

libvirt磁盘加密主要用于在磁盘映像存储在网络存储(NFS等)时保护磁盘映像。在这种情况下,它可以防御网络MITM攻击者或来自NFS服务器管理员的攻击。当主机断电时,它可以保护存储在本地主机上的映像 - 假设主主机根FS也是加密的。

唯一超出范围的是保护本地virt主机上的root。

© www.soinside.com 2019 - 2024. All rights reserved.