Title
An Exploratory Analysis of Microcode as a Building Block for System Defenses.
Abstract
Microcode is an abstraction layer used by modern x86 processors that interprets user-visible CISC instructions to hardware-internal RISC instructions. The capability to update x86 microcode enables a vendor to modify CPU behavior in-field, and thus patch erroneous microarchitectural processes or even implement new features. Most prominently, the recent Spectre and Meltdown vulnerabilities were mitigated by Intel via microcode updates. Unfortunately, microcode is proprietary and closed source, and there is little publicly available information on its inner workings. In this paper, we present new reverse engineering results that extend and complement the public knowledge of proprietary microcode. Based on these novel insights, we show how modern system defenses and tools can be realized in microcode on a commercial, off-the-shelf AMD x86 CPU. We demonstrate how well-established system security defenses such as timing attack mitigations, hardware-assisted address sanitization, and instruction set randomization can be realized in microcode. We also present a proof-of-concept implementation of a microcode-assisted instrumentation framework. Finally, we show how a secure microcode update mechanism and enclave functionality can be implemented in microcode to realize a small trusted execution environment. All microcode programs and the whole infrastructure needed to reproduce and extend our results are publicly available.
Year
DOI
Venue
2018
10.1145/3243734.3243861
ACM Conference on Computer and Communications Security
Keywords
Field
DocType
security, microcode, defense
x86,Microcode,Computer security,Computer science,Reverse engineering,Vendor,Timing attack,Instruction set randomization,Complex instruction set computing,Abstraction layer,Operating system
Conference
ISBN
Citations 
PageRank 
978-1-4503-5693-0
0
0.34
References 
Authors
40
6
Name
Order
Citations
PageRank
Benjamin Kollenda11074.93
Philipp Koppe2904.73
Marc Fyrbiak3437.18
Christian Kison4122.30
Christof Paar53794442.62
T HORSTEN HOLZ63532232.93