Inspired by this answer, I would like to know what are some common threats and mitigation techniques used to prevent one VM from leaking data to another via the shared storage infrastructure.
Possible vulnerable scenarios include
- EMC SANs that promote/demote data from SATA to FLASH based on IOPS
- A server that attempts to secure erase may not erase both locations of the promoted data
- VMs that allocate space on demand on an expanding VMDK
- Native OS APIs that can read raw partitions
- IO errors that act as an Oracle to expose secrets
- Storing the encrypted data and the key on the same VM (Bitlocker)
- A variant of row hammer (a shared memory exploit) for disk IO Blocks
Possible mitigations might include
- The server using a structured REST interface that hides subtle IO errors (e.g. I can't think of a way an Azure Cloud or Page blob can expose this)
- On disk encryption managed by the OS (Bitlocker)
- A hypervisor that automatically zeros out data upon release of the host
My goal is to come up with a checklist of sorts so I can investigate both the big names (Azure, Amazon, Rackspace, Google Apps, EMC, etc) but also independent niche shops for long tail scenarios.