"Platypus": Sicherheitslücke missbraucht Messfunktion von Intel-Prozessoren

Sicherheitsforscher nutzen die zur Leistungsmessung gedachte RAPL-Schnittstelle aktueller Prozessoren, um geheime Daten zu ergattern, die die CPU verarbeitet.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 93 Beiträge

(Bild: Natascha Eibl/CC0 1.0)

Von
  • Christof Windeck

Security-Experten aus Österreich, Deutschland und Großbritannien haben ein neues Einfallstor für Angriffe auf Prozessoren vor allem von Intel enttarnt: Die Funktion „Running Average Power Limit“ (RAPL), mit der sich die Leistungsaufnahme einer CPU im laufenden Betrieb auslesen und beeinflussen lässt. Per RAPL lassen sich mit einigem Aufwand auch geheime Schlüssel für kryptografische Algorithmen wie AES enttarnen – und zwar auch dann, wenn sie in einem vermeintlich sicheren Trusted Execution Environment (TEE) liegen, welches Intels Software Guard Extensions (SGX) einrichten. Die Sicherheitslücke bekam den Namen Platypus (Schnabeltier), das steht für „Power Leakage Attacks: Targeting Your Protected User Secrets“.

Die RAPL-Schnittstelle ist eigentlich zur Überwachung und Steuerung von Serverprozessoren vor allem in (Cloud-)Rechenzentren gedacht. Linux stellt dazu ein „Power Capping Framework“ bereit. Fällt beispielsweise ein Teil des Kühlsystems aus oder der Stromversorgung, lässt sich damit die maximale Leistungsaufnahme von Servern begrenzen, um Überhitzung oder Abstürze zu vermeiden. Allerdings verrät RAPL eben unter anderem auch, wie viel Leistung die CPU aktuell aufnimmt.

Verteilung des Energiebedarfs bei der Verarbeitung des Befehls imul mit zwei Operanden, einer mit dem Wert 8 und einer mit wechselndem Hamming-Gewicht (von 0x00 bis 0xFF).

(Bild: TU Graz/CISPA/Uni Birmingham)

Die Leistungsaufnahme eines Rechenwerks verändert sich, je nachdem welche Art von Berechnungen es gerade ausführt. Seitenkanalangriffe, die diesen Zusammenhang ausnutzen, um Rückschlüsse auf die verarbeiteten Daten zu ziehen, sind seit Jahrzehnten bekannt. Daher haben Sicherheitschips etwa für Geldkarten, SmartCards und Pay-TV-Schlüsselkarten Spezialfunktionen, die vor derartigen Angriffe schützen.

Die meisten „Power Leakage“-Attacken setzen voraus, dass der Angreifer physischen Zugriff auf das Zielsystem hat, um etwa ein Leistungsmessgerät oder ein Oszilloskop anschließen zu können. Der Platypus-Angriff funktioniert nun aber auch aus der Ferne, das digitale RAPL-Interface lässt sich vom Betriebssystem aus sogar ohne Admin-Rechte abfragen.

Bisher waren Experten aber der Ansicht, dass die RAPL-Daten nicht genau genug sind, um etwa einen einzelnen RSA-Schlüssel erkennen zu können. Laut den Platypus-Entdeckern ermöglicht RAPL etwa 20.000 Messungen pro Sekunde, was sehr wenig ist im Vergleich zu den bis zu knapp 5 Milliarden Taktzyklen, die jeder von bis zu 28 Kernen eines Intel-Prozessors pro Sekunde durchläuft. Doch wenn die RAPL-Messung lange genug laufen kann, lassen sich Geheimwerte Bit für Bit durch statistische Analysen der Leistungsmesswerte ermitteln (Differential Power Analysis/DPA und Correlation Power Analysis/CPA).

Platypus-Angriff: Auslesen von AES-Schlüsseln aus einer Intel-SGX-Enklave via RAPL-Schnittstelle der Intel-CPU.

Die Sicherheitsforscher Moritz Lipp, Andreas Kogler, Catherine Easdon, Claudio Canella und Daniel Gruss von der TU Graz, David Oswald von der Uni Birmingham und Michael Schwarz vom CISPA nutzten zahlreiche Tricks, um die RAPL-Messwerte ausreichend zu verfeinern, um auf Daten und Instruktionen schließen zu können. So tüftelten sie etwa Verfahren aus, um in zeitlichen Abständen wiederholte Messungen genau genug überlagern zu können.

Zudem eliminierten sie Ungenauigkeiten, weil Intels RAPL-Schnittstelle nur Daten für alle CPU-Kerne gemeinsam liefert und nicht für jeden einzelnen. Sie bezogen dabei auch Informationen zur jeweiligen Kernspannung ein.

Um Malware-Angriffe zu erschweren, verwürfelt der Linux-Kernel RAM-Adressen; das nennt man Kernel Address Space Layout Randomization (KASLR). Per Platypus-Attacke sollen sich schon innerhalb von 20 Sekunden gültige von ungültigen Speicheradressen unterscheiden lassen.

Deutlich länger dauerte mit 100 Minuten die Enttarnung eines RSA-Schlüssels in der Verschlüsselungsbibliothek mbed TLS. Und um einen mit AES-NI-Befehlen verarbeiteten Schlüssel aus einer SGX-Enklave zu ergattern, musste der Angriff mindestens 26 Stunden lang laufen. Wenn jedoch viele I/O-Operationen das RAPL-Signal störten, dauerte der Angriff über 270 Stunden, also mehr als 10 Tage.

Platypus-Angriff auf die Kernel Address Space Layout Randomization (KASLR) des Linux-Kernels.

Das deutet bereits an, dass Platypus vermutlich nicht für weit gestreute Angriffe zum Einsatz kommen wird; er ist vor allem für Cloud-Server bedeutsam und weniger für Desktop-PCs und Notebooks.

Intel stellt auch bereits Patches in Form von Microcode-Updates bereit, die auf den üblichen Wegen entweder per BIOS-Update oder über Updates der Betriebssysteme auf die betroffenen Systeme kommen. Das sind alle mit Intel-Prozessoren der Baureihen Core i und Xeon seit der 2011 eingeführten Generation Sandy Bridge, also ab Core i-2000, Pentium G, Celeron G, Xeon E5-2000 und E3-1200.

Laut den Forschern sind im Prinzip auch andere Prozessoren betroffen, sie konnten etwa auch bei verschiedenen AMD-Ryzen-Systemen ähnliche Messungen ausführen – dort waren aber Admin-Rechte für den RAPL-Zugriff nötig.

Intel erläutert die Platypus-Attacke im Intel Security Advisory Intel-SA-00389. Als Abhilfe gegen Platypus-Attacken sorgen Microcode-Updates dafür, dass die Messungen weniger genau sind, wenn ein CPU-Kern SGX-Befehle verarbeitet. Zudem verhindern Updates des Linux-Kernels den Zugriff unprivilegierter Nutzer auf bestimmte RAPL-Daten. Die CVE-Nummern lauten CVE-2020-8694 und CVE-2020-8695.

Die Platypus-Mitentdecker Moritz Lipp, Daniel Gruss und Michael Schwarz waren unter anderem bereits an der Aufdeckung der CPU-Sicherheitslücken Spectre und Meltdown beteiligt. Daniel Gruss arbeitete auch an der Untersuchung der Sicherheitslücke Plundervolt mit, die interne CPU-Register zur Steuerung der Spannungsversorgung als Seitenkanal manipuliert.

(ciw)