Virtual machine used to steal crypto keys from other VM on same server
arstechnica.com
arstechnica.com
EDIT: post was to a cryptoanalyst's dissection of the research, as was pointed out in the comments. I'll take that over a journalist blogger, though!
Rather than try and hack the nailed down, up to date with patches, regulary checked/scanned/etc payment processing VM with lots of credit card info directly it's easier to pick off the forgotten about unpatched VM on the same host that someone spun up to do a bit of testing and then promptly forgot about.
IOW, if you're in control of it, don't run really important stuff on VMs shared with a whole bunch of 'other' VMs, or make sure that everything you run on a specific VM host is equally secure.
There's something about running your services on the same physical hardware as a bunch of other, potentially malicious, parties that just gives me the heebie-jeebies.
2. This is why cloud providers offer the option of dedicated provisioning where you can use the cloud APIs but ensure that your VMs run on hosts dedicated to your organization.
VMs have been used in the Real World for going on five decades now, in the form of VM (formerly CP) on IBM System/360 mainframes et seq.
The threat model may have changed, but I don't even know if that's necessarily true.
How practicable is this? You've got to be on the same physical machine for this to work. Is that easily engineered for, say, EC2? Even if you can't control whether on you're the same machine, is it possible to get any information on the VMs that you're sharing it with?
From the abstract: Using the Amazon EC2 service as a case study, we show that it is possible to map the internal cloud infrastructure, identify where a particular target VM is likely to reside, and then instantiate new VMs until one is placed co-resident with the target. We explore how such placement can then be used to mount cross-VM side-channel attacks to extract information from a target VM on the same machine. Scared yet?
b) If there are more that just the attacker and the victim on the same machine (core), it is very likely to add a lot of noise to the side channel (attack) signal since it will be busy "dirtying" the cache that the side channel attack is being carried out on. Very likely this will prevent the attack from being successful.
Seriously if you were doing "high-security" task why would you be doing them on a VM which allowed co-residency anyway?
(1) Prime: Read B at s-byte offsets in order to ensure it is cached.
(2) Trigger: Busy-loop until the CPU’s cycle counter jumps by a large value. (This means our VM was preempted by the Xen scheduler, hopefully in favor of the sender VM.)
(3) Probe: Measure the time it takes to again read B at s-byte offsets.
The idea is that if the co-resident VM's level of activity will increase the time it takes to read B (because the other VM cleared the CPU cache).
When they first published this, they noted that stealing cryptographic keys in a context like EC2 seemed impractical, saying "In practice, cryptographic cross-VM attacks turn out to be somewhat more difficult to realize due to factors such as core migration, coarser scheduling algorithms, double indirection of memory addresses, and (in the case of EC2) unknown load from other instances and a fortuitous choice of CPU configuration (e.g. no hyperthreading)."
It's really cool to see that they finally successfully implemented it.
Are other hypervisors vulnerable to this exploit?