I know it is impossible to completely prevent a host from accessing the data of a virtual machine (as noted here, here and here), but I think there is value in making it harder to do so. Bare metal servers aren't always an option, and they are much more expensive.
Here is the threat model I have in mind:
- Buy a VPS from a fairly small company, maybe even one managed by a single person
- Harden the VPS as much as reasonably possible
- Rogue government entity demands all the server's data
- The company may not have the time, knowledge or resources to circumvent the hardening
- The company provides only the encrypted data to the government entity
Of course, said government entity could simply demand direct access to the host machine, but even then, it may still require them a good amount of time to figure it out, by which point the VPS owner may have caught on to what's happening and wiped it clean.
This leads me to my question. Given the typical steps a system administrator may take to obtain data from a virtual machine, what could one do to make this process harder?
Edit: Here is what I have done so far: encrypt the boot partition (GRUB bootloader supports encryption), encrypt the root partition, encrypt the home directory w/ unmounting on logout, use linux-hardened, disable USB via kernel parameters (I am unsure if this helps?)