Software Guard Extensions (SGX) are essentially an isolation mechanism. Like an RSA key, it tries to protect code and data from modification or disclosure, even if all privileged software is considered malicious.
Now, Intel added the SGX to its hardware starting with Skylake models in an effort to get a protective fence nailed down around data as it floats through the cloud.
The SGX Concept
The idea was that if you stored the keys inside this special enclave memory area, it would be encrypted and kept isolated from the rest of the chip through Intel’s hardware. Even if attackers got into the enclave somehow, they would find data encrypted and useless — or so Intel thought.
But five people at Graz University of Technology in Austria came up with a way to hose SGX. They devised an attack method that utilizes the first known SGX malware, which they also developed.
These researchers wrote a paper, titled “Malware Guard Extension: Using SGX to Conceal Cache Attacks,” that gets into the details of how they operate the malware. To make their point, they showed it working both in a native environment and across multiple Docker cloud containers.
The malware was a key-stealing proof of concept (PoC) that was directed at another co-located, secured enclave. The malware used SGX against itself, keeping its existence secret from other software processes by hiding inside of the SGX isolation.
Recovering the RSA Key
The researchers reported that the PoC malware was able to recover RSA keys by monitoring the cache access patterns of an RSA signature process in a semisynchronous attack. They found that a “Prime+Probe cache side-channel” attack could get 96 percent of an RSA private key from just one single trace, according to the paper.
SecurityWeek noted that the attack could extract the full RSA private key from 11 traces within five minutes of operation. Once the attackers have the private key, the enclave can be decrypted.
Researchers were able to come up with “highly accurate” timings within an enclave without access to the native time stamp counter. In fact, they reported that the method they used to replace the timer is even more accurate than if they had access to the native counter.
There is no easy mitigation for this problem. A comprehensive solution may require changes to the enclave, operating system and hardware itself. Until a resolution is found, this is a serious and ubiquitous vulnerability, and SGX is making it undetectable.