A team of five academics and security researchers has published a research paper today detailing a new side-channel attack that effective against operating systems like Windows and Linux.
The attack is also different because it doesn’t target microarchitectural design flaws in CPUs or other computer components, but targets the operating system itself, hence the reason it is hardware-agnostic.
Attack targets OS page caches
More precisely, the attack targets “page caches,” a technical term used to describe a portion of the memory where the operating system loads code that’s currently used by one or more applications, such as executables, libraries, and user data.
These page caches are pure-software caches being controlled at the OS level, rather than classic hardware caches, which are dedicated memory that the CPU can use to improve its computational speed.
“Some of these [page] caches have very specific use-cases, such as browser caches used for website content; other [page] caches are more generic, such as the page cache that stores a large portion of code and data used,” said the research team in their paper.
The side-channel attack described by the research team works by first abusing mechanisms included in the Windows and Linux operating systems that allow a developer/application to check if a memory page is present in the OS page cache. These two mechanisms are the “mincore” system call for Linux and the “QueryWorkingSetEx” system call for Windows.
Researchers then use their ability to interact with the OS (through a malicious process running on the system) to create page cache eviction states that release old memory pages out of the OS page cache. As the OS page cache system writes the evicted data to disk, triggers various errors, or loads new pages into the page cache, researchers say they can deduce what data was being processed in the OS page cache, even by other processes/applications.
Furthermore, another added benefit is that unlike most previous side-channel attacks, this new attack can also recover large quantities of data at a time, making it ideal for real-world attacks.
Researchers say their “side-channel permits unprivileged monitoring of some memory accesses of other processes, with a spatial resolution of 4 kB and a temporal resolution of 2 μs on Linux (restricted to 6.7 measurements per second) and 466 ns on Windows (restricted to 223 measurements per second).”
Translated into lay terms, this “allows capturing more than 6 keystrokes per second, enough to capture keystrokes accurately,” researchers said.
Attack can be hardware-agnostic or remote
The side-channel attack described in their paper can be used to bypass security sandboxes, redress (reshape) user interfaces, and capture keystrokes.
All of the attacks listed above are possible in “local” exploitation scenarios, where an unprivileged process runs malicious code on a targeted computer.
The attack can also be modified to work in a “remote” exploitation scenario, where an attacker bombards a remote PC with malicious code to retrieve data from its memory.
However, remote attacks aren’t as efficient because they can’t bypass sandboxes and because they require fine-tuning based on the victim’s hardware (they are not hardware-agnostic as the local attacks).
Patches for Windows and Linux are in the works
The research team, which includes some of the brightest minds in IT security, including some of the people behind the Spectre/Meltdown vulnerabilities, have contacted OS vendors prior to disclosing their findings.
Microsoft has already fixed the way Windows deals with page cache reads in a Windows Insiders build, while discussions on how to deal with Linux patches are still ongoing. Both OS teams are expected to fix the issues at the heart of this side-channel attack in the future.
“We didn’t test macOS,” Daniel Gruss, one of the researchers told ZDNet in an email today. “We don’t know whether they expose any such interface that we used in our hardware-agnostic attacks, but certainly, as they also use a page cache, they would also be vulnerable to timing-based page cache attacks.”
This article tried to describe this attack in simple terms. For our technical readers, more details about this new side-channel attack are available in the research paper titled “Page Cache Attacks” that was published earlier today on ArXiv.