如果libvirt存储卷加密将密钥存储在hyper本身上,那么如果攻击者具有物理访问权限,那么如何保护密钥本身

时间:2019-03-27 02:15:29

标签: libvirt

我想在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将秘密的值存储为对hyper的/ etc / libvirt / secrets进行base64编码的base64编码,如果攻击者具有对hyper的物理访问权限,则他可以轻松获得秘密值。

我认为黑客无法远程进入,但是如果具有物理访问权限,则任何人都可以重置root密码,然后登录hyper以获得所有信息。

有什么方法吗?

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

谢谢。

2 个答案:

答案 0 :(得分:1)

如果攻击者在本地主机上具有root用户访问权限,则您已经迷路了。即使libvirt对磁盘上的机密进行了加密,攻击者也可以从libvirtd内存中获取解密密钥。或者他们也可以访问访客VM内存以直接获取LUKS主密​​钥。

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

唯一超出范围的是防止在本地virt主机上出现root。

答案 1 :(得分:-1)

即使不是很简单,网络MITM也无法真正停止,因为那时也有多种方法来获取解密密钥。

与非普通(例如重复),mitm攻击,网络或本地/(远程)相比,这确实是不行的。