In January of this year, Google's Project Zero security team revealed it had discovered an entire class of memory-based attacks against x86-based CPUs that they called Spectre and Meltdown.
Following that report, the microprocessor industry, but Intel especially, has tried to come up with a workable fix to this problem. The responses have been met with mixed results at best. (See Intel's 9th Gen Processors Offer Protections Against Spectre & Meltdown .)
Now, however, a team of researchers at MIT think that they have come up with a way to create x86 CPUs that can overcome these side-channel vulnerabilities using a method that they call Dynamically Allocated Way Guard (DAWG). It's described in a new paper.
The groaning nerd pun involved here is that Intel's current way of doing things is called Cache Allocation Technology (CAT).
The Spectre and Meltdown attacks are based on vulnerabilities that have been present in CPU designs since 1995. Since getting information from the CPU's memory -- like what to do next -- is slower than the speed at which the CPU operates, designers let the CPU get ahead of itself and execute code that may or may not be actually needed. If the program did need those instructions executed, then they were already performed.
This increased the CPU performance.
However, these side-channel attacks can infer the execution flow that a program takes by observing the state and timing of a shared (public/private) cache.
In CAT, an attacker sharing a page with the victim may observe the victim's use of shared addresses by measuring whether a load to a shared address results in a cache hit. This is key to the attack.
DAWG changes this by endowing an associative structure, such as code and the data in hardware, with protection domains to provide strong isolation. Unlike existing mechanisms such as CAT, DAWG disallows hits across protection domains.
Additionally, DAWG concentrates on the cache state exfiltration channel to enforce isolation. It accomplishes this by isolating the visibility of any state changes to a single protection domain, so any transmitter in the victim's domain cannot be connected to the same channel as any receiver in the attacker's domain.
In theory, this prevents any communication -- a leak -- of data from the victim to the attacker.
This also means that the hits and misses of a program running in one protection domain are unaffected by program behavior in different protection domains.
The researchers tried this stuff out in simulations. They found that DAWG, with memory shared across protection domains, behaves identically to CAT and the baseline with private data. They also found that there was virtually no performance difference between secure DAWG partitioning, and insecure CAT partitioning in the absence of read-sharing across domains.
They also found that the benchmarks that they used showed little performance difference when used on real hardware for most data sizes.
The researchers do admit DAWG has its limitations, and additional techniques will be required to block exfiltration channels that are different from the cache channel.
But this is a start. It directly addresses the root problem involved in Spectre and Meltdown at the hardware level rather than putting up some sort of code fence around it.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.