3 Jan 2018 | Paul Kocher, Daniel Genkin, Daniel Gruss, Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas Prescher, Michael Schwarz, Yuval Yarom
The paper introduces a new class of microarchitectural attacks called Spectre attacks, which exploit speculative execution to leak confidential information from a victim's memory address space. Spectre attacks involve inducing the processor to speculatively execute instructions that would not occur during normal program execution, using side channels to extract sensitive data. The authors demonstrate the feasibility of these attacks by creating a simple victim program and an attacker program that leverages the CPU's speculative execution feature to read arbitrary memory from the victim's process. They also show that Spectre attacks can be used to violate browser sandboxing through portable JavaScript code. The attacks are applicable to processors from Intel, AMD, and ARM, and the authors have disclosed their findings to major CPU vendors. The paper discusses the technical details of Spectre attacks, including how they exploit conditional branches and indirect branches, and provides examples of attack implementations in native code and JavaScript. The authors also explore potential variations of the attacks and discuss mitigation options, such as serializing instructions, which can help reduce the risk of Spectre attacks.The paper introduces a new class of microarchitectural attacks called Spectre attacks, which exploit speculative execution to leak confidential information from a victim's memory address space. Spectre attacks involve inducing the processor to speculatively execute instructions that would not occur during normal program execution, using side channels to extract sensitive data. The authors demonstrate the feasibility of these attacks by creating a simple victim program and an attacker program that leverages the CPU's speculative execution feature to read arbitrary memory from the victim's process. They also show that Spectre attacks can be used to violate browser sandboxing through portable JavaScript code. The attacks are applicable to processors from Intel, AMD, and ARM, and the authors have disclosed their findings to major CPU vendors. The paper discusses the technical details of Spectre attacks, including how they exploit conditional branches and indirect branches, and provides examples of attack implementations in native code and JavaScript. The authors also explore potential variations of the attacks and discuss mitigation options, such as serializing instructions, which can help reduce the risk of Spectre attacks.