Google Research: No Simple Fix For Spectre-Class Vulnerabilities
Chip makers’ focus on performance has left microprocessors open to numerous side-channel attacks that cannot be fixed by software updates - only by hard choices.
February 19, 2019
Side-channel attacks such as the Spectre family of vulnerabilities are more widespread threat than previously thought - affecting all microprocessors that employ the performance-enhancing feature of speculative execution, and defeating all software-based attempts at fixing the vulnerabilities, according to Google researchers.
In a deep analysis of the issue published late last week, Spectre is here to stay: An analysis of side-channels and speculative execution, a group of five Google computer scientists built a generalized abstract model of the microarchitectures used in modern processors, and found that any optimizations to the architecture are observable and thus open to side-channel attacks.
To prove the point, they showed that it is possible to create a "universal read gadget" that can read any data with very few limitations. Implementing the gadget in JavaScript, C++, and WebAssembly, the scientists were able to glean a minimum of 10 bytes per second - and up to 1,000 bytes per second - of data from protected memory.
"As a result of our work, we now believe that speculative vulnerabilities on today's hardware defeat all language-enforced confidentiality with no known comprehensive software mitigations," the researchers concluded.
The research builds on the original efforts by independent research groups in late 2017 that found that two broad classes of flaws—Meltdown and Spectre—could allow attackers the ability to access areas of a processor's memory that had been thought to be protected.
Meltdown, a hardware design weakness in Intel x86 processors, allowed attackers to read memory reserved by the operating system kernel. Spectre, a separate design weakness in any processor that implements speculative execution, allows attackers to read other applications protected memory. Speculative execution is a performance feature of modern processors where if there are two choices or branches, both potential sets of code are loaded before it's known which will be needed.
The practice saves time and makes processors more efficient, but as researchers have found, relied on the poor assumption that attackers could not manipulate the speculative execution process.
"This class of flaws are deeper—at the microarchitectural level of the processors—and more widely distributed—in essentially every high-performance processor—than perhaps any security flaw in history, affecting billions of CPUs in production across all device classes," the Google team wrote.
The problem is that chip makers have competed on a single metric for the past four decades—performance, says Paul Kocher, an independent cryptography researcher and one of the authors of the original Spectre paper. Because chip designers assumed that speculative execution could not be maliciously manipulated, they did not worry about its security.
The result is that chip manufacturers find themselves with some hard choices, he says.
"There are easy solutions to Spectre if maximum performance isn't required," Kocher says. "The problem is that the mainstream CPU industry has historically been driven by performance benchmarks. If maximizing performance and backward compatibility are non-negotiable requirements, then Spectre and related side-channel attacks are a messy problem."
Chrome Fix
Google's research highlighted four different variants of the speculative-execution attack and then investigated three mitigations to potentially fix the issues: disabling the speculation feature, adding noise to a processor's timer function, and adding additional safety checks to speculation. However, all three potential solutions had limitations.
The research led Google to change its defensive strategy for its Chrome browser. The company shipped early mitigations, including timer mitigations, in Chrome 64 to 67. Yet, because the research has shown that such mitigations are only partially effective and require comprehensive changes to the code, the company switched tactics.
"In recognition of the fact that software mitigation is still an open problem for virtual machines, and that mitigations would also need to be applied to all of the millions of lines of C++ code in the browser, Chrome's defensive strategy shifted entirely to site isolation, which sandboxes code from different origins in different processes, thus relying on hardware-enforced protection," the researchers said in the paper.
The solution may be to create multi-core processors with some core architected for performance and other cores architected for security, Kocher says.
"One variant on this approach I like is to have separate cores optimized for performance versus security," he says. "This approach helps with other security issues beyond Spectre, since there are many other security/performance trade offs that would be handled differently for 'safer' cores. … While this approach can be frustrating for people who want maximum performance and security simultaneously, I don't believe it's possible to have both."
In the end, the current situation is the result of chip designers overlooking a fundamental security issue for decades, Google's research team says.
"Computer systems have become massively complex in pursuit of their seemingly number-one goal of performance," the researchers wrote. "Our models, our mental models, are wrong; we have been trading security for performance and complexity all along and didn't know it. It is now a painful irony that today, defense requires even more complexity with software mitigations, most of which we kno to be incomplete."
Related Content:
Join Dark Reading LIVE for two cybersecurity summits at Interop 2019. Learn from the industry's most knowledgeable IT security experts. Check out the Interop agenda here.
About the Author
You May Also Like