我想在我们的KVM虚拟化平台中加密我们的VM磁盘,并参考:https://libvirt.org/formatstorageencryption.html#StorageEncryption。
我们可以通过简单的步骤来完成:
<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以获取所有内容。
有什么方法吗?
或者这种威胁根本不存在。
谢谢。
如果攻击者在本地主机上具有root访问权限,那么您已经丢失了。即使libvirt将其秘密加密到磁盘上,攻击者也可以从libvirtd内存中获取解密密钥。或者他们只能访问来宾VM内存以直接获取LUKS主密钥。
libvirt磁盘加密主要用于在磁盘映像存储在网络存储(NFS等)时保护磁盘映像。在这种情况下,它可以防御网络MITM攻击者或来自NFS服务器管理员的攻击。当主机断电时,它可以保护存储在本地主机上的映像 - 假设主主机根FS也是加密的。
唯一超出范围的是保护本地virt主机上的root。