Eine neu entdeckte Sicherheitslücke namens GhostWrite kompromittiert die Integrität der RISC-V-CPU „XuanTie C910“ des Anbieters T-Head. Sie gibt Angreifern und Angreiferinnen vollen Lese- und Schreibzugriff auf den physikalischen Speicher der C910. GhostWrite umgeht zudem den virtuellen Speicher sowie alle Caches und ist unsichtbar in Performance Countern. Cloud Services, deren Server eine C910-CPU verwenden, sind ebenfalls von GhostWrite betroffen. Die ebenfalls von T-Head hergestellten RISC-V-CPUs „XuanTie C906“ und „XuanTie C908“ sind von jeweils einer weiteren Schwachstelle betroffen. Forschende am CISPA-Helmholtz-Zentrum für Informationssicherheit haben die drei CPU-Sicherheitslücken entdeckt.
Mit einer neuen Fuzzing-Methode für RISC-V-CPUs hat CISPA-Forscher Fabian Thomas aus der Forschungsgruppe von Dr. Michael Schwarz architekturelle Schwachstellen in den T-Head-CPUs XuanTie C906, C908 und C910 entdeckt. Die bedeutendste dieser drei Schwachstellen trägt den Namen GhostWrite und betrifft die XuanTie C910. GhostWrite ermöglicht unbefugten Nutzern und Nutzerinnen direkten Zugriff auf das DRAM; so können Daten direkt im physikalischen Speicher geändert werden. Außerdem kann sowohl mit der Festplatte als auch mit Peripheriegeräten wie zum Beispiel Netzwerkkarten und Grafikkarten interagiert werden. Neben GhostWrite hat Thomas auch zwei sogenannte „halt-and-catch-fire“-CPU-Schwachstellen entdeckt, die für Denial-of-Service-Angriffe ausgenutzt werden können.
RISC-V: Jung, offen, flexibel und potentiell problematisch
Die wachsende Verbreitung von RISC-V-CPUs hat das Forschungsinteresse von Thomas und Schwarz geweckt. RISC-V ist eine relativ junge, offene Befehlssatzarchitektur, die es neuen CPU-Herstellern ermöglicht hat, in den Markt einzutreten. Allgemein gesprochen bestimmt eine Befehlssatzarchitektur, wie Software und CPU miteinander interagieren. Sie legt fest, auf welche Befehle die CPU reagieren darf. „RISC-V ist eine sehr flexible Befehlssatzarchitektur, die es den Herstellern erlaubt, ihre eigenen Erweiterungen zu implementieren. Das ist problematisch, weil es kein zentrales Register für diese individualisierten Erweiterungen gibt. Es kann also passieren, dass verschiedene CPUs dieselbe Kodierung für unterschiedliche Befehle verwenden“, sagt Fabian Thomas.
„Das bedeutet, dass Software, die für die RISC-V-CPU eines speziellen Herstellers entwickelt wurde, ein abweichendes Verhalten hervorrufen kann, wenn sie auf der RISC-V-CPU eines anderen Herstellers verwendet wird. Diese Varianz im Verhalten von CPUs kann Probleme verursachen.“ RISC-V-CPUs finden sich bis dato in einer geringen Zahl von Hardwarecores, die etwa in Laptops, Smartphones und Servern verbaut werden. Aktuell erhältlich sind fünf verbraucherorientierte RISC-V-CPUs.
RISCVuzz: Differenzielle Fuzzing-Methode für RISC-V-CPUs
Thomas und Schwarz haben die Heterogenität von RISC-V-CPUs und deren individuellen Erweiterungen dazu genutzt, architekturelle Schwachstellen an RISC-V-Anwendungen aufzudecken. Mit RISCVuzz haben sie eine neue differentielle Fuzzing-Methode für CPUs entwickelt und sie auf alle fünf am Markt erhältlichen RISC-V-CPUs angewandt. „Wir sind davon ausgegangen, dass alle CPUs dieselbe Reaktion zeigen sollten, wenn sie zuvor denselben Befehl erhalten haben. Jedes Mal, wenn die Reaktion einer CPU von der Reaktion aller anderen CPUs abwich, haben wir sie genauer auf Schwachstellen hin untersucht“, erklärt Michael Schwarz die Logik hinter RISCVuzz. „Anders ausgedrückt: Wenn vier von fünf Hotelsafes verschlossen bleiben, wenn man „0000“ eingibt, der fünfte aber plötzlich aufspringt, dann hat man Grund zur Annahme, dass mit diesem fünften etwas nicht stimmt.“
Offenlegung und Gegenmaßnahmen
Im Februar 2024 meldeten Thomas und Schwarz ihre Forschungsergebnisse an T-Head, ein Tochterunternehmen von Alibaba, und im April 2024 an den Cloud-Computing-Anbieter Scaleway, der kurz zuvor begonnen hatte, die C910-CPU in der Cloud einzusetzen. Keine der drei Schwachstellen können derzeit mit Updates behoben werden.
GhostWrite, ebenso wie die Sicherheitslücke der C908, kann durch das Deaktivieren der Vector Extension geschlossen werden. Allerdings werden damit auch Kernfunktionalitäten der CPUs ausgeschaltet. Für die Schwachstelle der C906 gibt es derzeit keine umsetzbare Lösung. „CPUs werden mit Code geschrieben. Wenn wir Schwachstellen finden, müssen wir sie unbedingt offenlegen, um zu verhindern, dass diese Bugs sich in anderen CPU-Entwicklungen fortsetzen“, sagt Michael Schwarz. Die CISPA-Forschung zu RISCVuzz wird am 07. August 2024 auf der „Black-Hat-USA“-Konferenz in Las Vegas vorgestellt.