This article is more than 1 year old
Boffins foul VM sandboxes with CPU-sniffing hack
Elaborate attack watches CPU activity on co-located VM, retrieves crypto key
So much for your sandbox US researchers at RSA, the University of Wisconsin and the University of North Carolina have used a malicious virtual machine to extract a cryptographic key from another virtual machine running on the same hardware.
The finding, published here (PDF), will not be welcomed by virtualisation companies or cloud computing providers, as it shows that the logical isolation between virtual machines may not be as secure as promised. Hypervisor vendors and cloud providers alike constantly talk up security, asserting that despite virtual machines sharing physical resources there's no extra risk associated with this mode of computing.
The researchers' findings seem to both support and disprove those assertions.
Support comes from the fact the paper's report that the attack was not easy, as it required … “overcoming challenges including core migration, numerous sources of channel noise, and the difficulty of pre-empting the victim with sufficient frequency to extract fine-grained information from it.”
Security worries will be fuelled by the researchers' success and use of Xen as a test platform, as it is said to power AWS's and Rackspace's cloud offerings. The paper also points out that Xen powers some desktop virtualisation setups, hinting that desktop-on-desktop attacks also need to be considered.
The conditions for the test were as follows:
“Our threat model assumes that Xen maintains logical isolation between mutually untrusting co-resident VMs, and that the attacker is unable to exploit software vulnerabilities that allow it to take control of the entire physical node. We assume the attacker knows the software running on the victim VM and has access to a copy of it.”
With that rig in place, the researchers set about trying to sniff activity on the victim VM with what is described as an “access-driven attack in which the attacker runs a program on the system that is performing the cryptographic operation of interest.”
Such attacks work as follows:
“The attacker program monitors usage of a shared architectural component to learn information about the key, e.g., the data cache, instruction cache, floating-point multiplier, or branch-prediction cache. The strongest attacks in this class, first demonstrated only recently , are referred to as asynchronous, meaning that they do not require the attacker to achieve precisely timed observations of the victim by actively triggering victim operations. These attacks leverage CPUs with simultaneous multi-threading (SMT) or the ability to game operating system process schedulers; none were shown to work in symmetric multi-processing (SMP) settings.”
The paper delves into very technical detail about how the research team found ways to observe and decipher CPU behaviour, but eventually declares that using “a novel combination of low-level systems implementation and sophisticated tools such as classifiers and sequence alignment algorithms, we assembled an attack that was sufficiently powerful to extract ElGamal decryption keys from a victim VM in our lab tests.”
The paper often goes out of its way to point out the attack it describes is unusual and required a lot of effort to achieve. Even so, it will likely make virtualisation users just a little less confident that their sandboxes will always remain free of unpleasant contaminants. ®