Store-to-Leak Forwarding: There and Back Again

No ratings

Presented at BlackHat Asia 2020 by

In the past couple of years, we have seen many different attacks that allowed an attacker to leak data. One of these attacks is Meltdown, allowing an attacker to leak kernel memory. After it was fixed, everyone thought that the problem was solved. Unfortunately, this is not the case as there are still effects that are closely related to Meltdown.In this talk, we will show how we can use one such effect to break KASLR on all Intel CPUs since 2004 with perfect accuracy and in less than a second. The new method even outperforms the previous state-of-the-art KASLR break presented by Jang et al. at Black Hat USA 2016. We will also show that we can use this effect from JavaScript and SGX enclaves. We will then enhance our attack primitive with side effects on the TLB to monitor user behavior. We will demonstrate how we can use the first primitive to detect and classify kernel modules. We will then monitor one such module with the other primitive, inferring user behavior, such as the user's proximity to the computer, from it. With our final attack primitive, we will show how we can use new, simpler Spectre gadgets to leak kernel memory.We will also highlight the differences between our approach, Store-to-Leak, and Fallout. While they may appear similar from a high-level perspective, the differences become apparent when we consider countermeasures. All mitigations for microarchitectural data-sampling attacks (MDS), including Fallout, do not mitigate Store-to-Leak. Therefore, all CPUs dating back to 2004 remain vulnerable to Store-to-Leak but not Fallout. This shows that Store-to-Leak is a powerful side-channel attack which is not easily fixed.Finally, we will outline a countermeasure that prevents all known microarchitectural KASLR breaks, including Store-to-leak, Fallout, and DrK.