// COMPUTERBASE — HARDWARE & GADGET
Alte AMD-APUs geknackt: DRAM-Trick öffnet selbst geschützte CPU-Bereiche
Ein neues Forschungsprojekt demonstriert einen tief sitzenden Angriff auf AMDs Prozessorfamilie 16h. Durch eine veränderte Adressübersetzung im DRAM-Controller entstehen Speicher-Aliasse, die geschützte Bereiche aus Sicht des Betriebssystems erreichbar machen. Dafür sind allerdings bereits höchste Systemrechte nötig.
Der Sicherheitsforscher Christopher Domas hat den Angriff samt Werkzeugen unter dem Namen „Skitter Creek Bath Salts“ auf GitHub veröffentlicht. Er setzt nicht bei einer klassischen Schwachstelle in Software oder Firmware an, sondern ganz unten in der Adressübersetzung des Arbeitsspeichers.
Bevor eine physische Speicheradresse eine DRAM-Zelle erreicht, übersetzt der Speichercontroller sie unter anderem in Kanal, Rang, Bank, Zeile und Spalte. Dafür kommen mehrere, teils per BIOS konfigurierbare Transformationen zum Einsatz. Auf den untersuchten AMD-Prozessoren lässt sich ein Register-Bit für das sogenannte Bank Swizzling im laufenden Betrieb umschalten, ohne dass der Zugriff gesperrt wird.
Dadurch zeigt eine physische Adresse vorübergehend auf eine andere DRAM-Zelle als vorgesehen. Domas berechnet aus solchen Abweichungen eine alternative Adresse – ein Alias –, über die dieselben Daten erreichbar sind, ohne die eigentlich dafür geschützte physische Adresse anzusprechen. Der Controller wird nur für den jeweiligen Zugriff umkonfiguriert und anschließend wieder auf den vom BIOS gesetzten Zustand zurückgestellt.
Die Schutzmechanismen oberhalb des Speichercontrollers prüfen weiterhin die ursprünglichen physischen Adressbereiche. Von der darunter veränderten Zuordnung zu den DRAM-Zellen bekommen sie nichts mit. Auf diese Weise lassen sich laut Projekt unter anderem der private Speicher des AMD Platform Security Processor (PSP), der für den System Management Mode reservierte SMRAM sowie der beim C6-Ruhezustand verwendete Speicherbereich erreichen. Auch im DRAM abgelegte Microcode-Daten führt Domas als Ziel auf.
Die mitgelieferten Programme beschränken sich nicht auf eine theoretische Herleitung: „dram_dump“ liest geschützte Bereiche über zuvor berechnete Aliasse aus, „dram_poke“ kann sie beschreiben. Eine dauerhafte Änderung des im Prozessor gespeicherten Microcodes ist damit allerdings nicht gemeint - angegriffen werden flüchtige Daten im Arbeitsspeicher. Der PSP kam bei AMD in dieser Geräteklasse vor mehr als einem Jahrzehnt auf.
Entwickelt und getestet wurde der Angriff ausdrücklich auf Prozessoren der AMD Family 16h. In diese Generation fallen die alten Jaguar- und Puma-APUs, darunter Kabini, Temash, Beema und Mullins. Ryzen-Prozessoren gehören dagegen ab Zen zur Family 17h oder zu späteren Familien und sind durch die Veröffentlichung nicht als verwundbar belegt.
Zwar basieren auch die APUs der PlayStation 4 und Xbox One auf Jaguar-Kernen. Einen funktionsfähigen Angriff auf die Konsolen weist das Projekt aber nicht nach. Aus der gemeinsamen CPU-Architektur allein lässt sich eine Betroffenheit nicht ableiten, weil Speichercontroller, Firmware und Plattformkonfiguration entscheidend sind.
Family 16h ist laut Domas die letzte AMD-Generation, deren öffentliche Datenblätter die benötigten Übersetzungsregister des DRAM-Controllers dokumentieren und zugleich erkennen lassen, dass sie nicht verriegelt werden können. Ab Family 17h fehlen diese Angaben. Vergleichbare Adressumformungen gebe es zwar auch bei neueren AMD-CPUs sowie bei Intel-, Arm- und RISC-V-Systemen, das ist jedoch zunächst ein Ansatzpunkt für weitere Forschung und kein Nachweis derselben Lücke.
Für die veröffentlichten Werkzeuge sind Root-Rechte und ein eigens geladenes Linux-Kernelmodul nötig. Ein Angreifer muss das System also bereits weitgehend kontrollieren; ein unmittelbarer Angriff aus dem Browser oder über das Netzwerk ist nicht beschrieben. Bedeutung hat die Technik dennoch, weil Bereiche wie PSP- und SMM-Speicher gerade gegenüber einem kompromittierten Betriebssystem oder Kernel eine zusätzliche Sicherheitsgrenze bilden sollen.