A new side-channel attack that bypasses specific chips for a hardware-agnostic, operating system-based approach, has been published by a team of researchers. The attack — with a serious security punch but no sexy name — takes advantage of a fundamental feature of modern operating systems to gain access to data that programmers and users assume will be hidden.
The attack, published in a paper titled "Page Cache Attacks," is effective against Windows and Linux — and possibly other operating systems. Furthermore, it doesn't rely on obscure or malformed instructions to the hardware: It is based on simple system calls available to relatively low authority user accounts through the operating system.
One of the researchers who found the new vulnerability is Alex Ionescu, vice president of ADR strategy at CrowdStrike. He explains the ingredients required for a successful attack on a cache: "If you have the ability to a) force things into the cache and then, b) measure or check that they're in the cache, and then c) potentially force evict them out of the cache, then you have something interesting." The group of academic and industry researchers who found the new vulnerability realized that caches don't just live in hardware; as Ionescu says, "Caches are everywhere in life."
The power of this new vulnerability is that it can examine and then exfiltrate data across an entire page of the cache, and data that is there for a number of milliseconds. Since the attacking data-check itself takes only milliseconds, there's enough time to do things like read a number of keystrokes or the clear-text response to a query involving cryptographic keys.
After looking at the potential impact of the vulnerability, Craig Young, computer security researcher for Tripwire's VERT (Vulnerability and Exposure Research Team), wrote in an email to Dark Reading, "The team has demonstrated how a fundamental concept in modern OS architecture can be abused to create covert data channels between isolated processes, log keystroke timings, spy on random number generators, and generally leak information from other processes as an unprivileged user."
Noting that the vulnerability is based on a legitimate system call in the affected operating systems, Young wrote, "This problem stems from overly permissive operating system designs giving unprivileged processes too much access to certain cache-related system calls."
That basis in system calls means that the vulnerability could be used by a different class of criminal than those that could potentially use something like Meltdown or Spectre. "The others required a lot of sophistication and knowledge and were not for the faint of heart," Mounir Hahad, head of Juniper Threat Labs at Juniper Networks, says. "This one is simpler and not hardware dependent, so it could be used by a lot of day-to-day criminals. This one doesn't need a state actor; this one can be pulled off by regular criminals."
The ease of using the attack and the data it provides is increased by application developers who take shortcuts. The paper notes examples of PHP frameworks that use the PHP function "microtime" as the pseudo-random seed for their cryptographic operations. Since the attack can capture the microtime return and the call to the cryptographic generator, an attacker could learn the basis for the encryption, making decryption much easier.
Ionescu says that mitigation is possible, but it requires both operating system vendors and application developers to look at their code, acknowledge that a vulnerability exists, and patch for it. And Hahad notes that these patches are both good news and bad news for the enterprise.
"Given how people patch their OSes, it will be a long time before the patches are all applied," he says. "On the other hand, there's not much an administrator can do aside from the patch. It's not like there's something I can do proactively to prevent someone from exploiting it. You just have to wait for the patch to come out and apply it as quickly as possible."