35C3 — Inside the AMD Microcode ROM

Auf dem 35. Chaos Communication Congress, der vom 27. bis zum 30. Dezember 2018 in Leipzig stattfindet, haben Benjamin Kollenda und Philipp Koppe einen Vortrag zum Thema “Inside the AMD Microcode ROM — (Ab)Using AMD Microcode for fun and security” gehalten.
Ihnen ist es gelungen, per Reverse Engineering Teile der Semantik des Microcodes älterer AMD-CPUs (bis zum K10) zu entschlüsseln und Programme zu schreiben, um eigenen Microcode in eine CPU zu übertragen.
Microcode runs in most modern CPUs and translates the outer instruction set (e.g. x86) into a simpler form (usually a RISC architecture). It is updatable to fix bugs in the silicon (see Meltdown/Spectre), but these updates are encrypted and signed, so no one knows how microcode works on conventional CPUs. We successfully reverse engineered part of the microde semantics of AMD CPUs and are able to write our own programs. We also recovered the mapping between the physical readout (electron microscope) and the “virtual” addresses used by microcode itself. In this talk we present background on microcode, our findings, our open source framework to write custom microcode and our custom defensive measures implemented in microcode.
Der auf Englisch gehaltene Vortrag kann auf der Seite des CCCs auch mit einer deutschen Übersetzung angeschaut werden.
Download: