Fault Injection – Glitching der MCU-Lockbit-Sperre öffnen.
Fault-Injection-Angriffe stellen einen Brute-Force-Ansatz dar, um die MCU-Lockbit-Sperre zu brechen. Anstatt passive Emissionen zu beobachten, stört der Angreifer aktiv den Betrieb des Chips. Ein gut getakteter Spannungsglitch kann ein einzelnes Bit im Programmzähler umdrehen. Dieser Bit-Flip kann eine kritische Sicherheitsprüfung überspringen. Die MCU-Lockbit-Sperre, die auf booleschen Bedingungen basiert, wird dadurch verwundbar. LockBit-Ransomware-Betreiber haben Fault Injection untersucht, um Anmeldeinformationen aus eingebetteten Systemen zu extrahieren. Die Standardmethode besteht darin, Flash und EEPROM durch Korrumpierung des Auslesens eines EEPROM-Prozessors auszulesen. Während eines Speicherlesens kann ein Glitch den Adressbus verändern. Diese Veränderung führt dazu, dass der MCU Daten aus einem geschützten Bereich ausgibt. Der Angreifer erfasst diese Daten dann über die Debug-Schnittstelle. Dekapsulation und Code-Wiederherstellung sind nicht erforderlich, wenn Glitches erfolgreich sind. Die Dekapsulation hilft jedoch dabei, die genauen Versorgungspins für ein optimales Glitching zu lokalisieren. Sobald der Chip dekapsuliert ist, kann der Angreifer interne Versorgungsleitungen untersuchen. Er kann auch Inhalte von Crypto-Speicher kopieren, indem er die Zugriffskontrolllogik glitcht. Ein Glitch auf dem Chip-Select-Signal kann beispielsweise Lesezugriffe auf einen normalerweise unzugänglichen Bank ermöglichen. Mikrocontroller-Reverse-Engineering nutzt Fault Injection stark, um Software-Schutzmechanismen zu umgehen. Die Firmware-Extraktion wird unkompliziert, wenn der MCU seinen gesamten Flash über UART ausgibt. Aber Glitching erfordert präzises Timing und Spannungsniveaus. Der Angreifer muss die Betriebstoleranzen des MCU charakterisieren. Er reduziert schrittweise die Versorgungsspannung, während er Lesebefehle sendet. Bei einem bestimmten Schwellenwert tritt der MCU in einen undefinierten Zustand ein. In diesem Zustand kann die Lockbit-Sperre vorübergehend deaktiviert sein. Der Angreifer sendet dann einen Speicher-Dump-Befehl. Dieser Befehl würde normalerweise abgelehnt werden, aber der Glitch bewirkt, dass er akzeptiert wird. Der Prozess ist iterativ. Jeder fehlgeschlagene Versuch kann einen Reset auslösen. Aber der Angreifer kann tausende Male pro Sekunde wiederholen. Automatisierte Glitching-Geräte sind kommerziell erhältlich. Sie verwenden FPGAs, um Sub-Nanosekunden-Impulse zu erzeugen. Die MCU-Lockbit-Sperre ist besonders anfällig für Takt-Glitches. Eine plötzliche Taktflanke kann Setup- und Hold-Zeiten verletzen. Diese Verletzung korrumpiert den Befehlsdekoder. Der Dekoder führt dann ein NOP anstelle eines bedingten Sprungs aus. Dieses NOP ermöglicht es dem Ablauf, in den verbotenen Bereich zu gelangen. LockBit-artige Angreifer kombinieren Glitches mit Pufferüberläufen. Der Überlauf verschafft einen Fuß in der Tür, und der Glitch erhöht die Privilegien. Das Auslesen eines EEPROM-Prozessors per Glitching wurde auf vielen 8-Bit- und 32-Bit-MCUs demonstriert. Das Dumpen von Flash und EEPROM mit dieser Technik ist oft schneller als Seitenkanäle. Dekapsulation und Code-Wiederherstellung sind destruktive Alternativen, aber Glitching ist (bei sorgfältiger Durchführung) nicht destruktiv. Das Kopieren von Inhalten aus Crypto-Speicher durch Glitching des Speichercontrollers ist möglich, wenn der Controller schwache Redundanz aufweist. Mikrocontroller-Reverse-Engineering-Teams verwenden Laser-Fault-Injection für räumliche Präzision. Ein Laserpuls kann einen einzelnen Transistor treffen. Dieser Transistor könnte Teil des Lockbit-Sperr-Komparators sein. Das Umdrehen seines Zustands entsperrt den gesamten Chip. Die Firmware-Extraktion erfolgt dann über standardmäßige Lesebefehle. Die Laserinjektion erfordert jedoch eine Dekapsulation. Der Angreifer muss also zunächst das Gehäuse entfernen. Dieser Schritt legt den Die frei, birgt aber auch das Risiko der Zerstörung. Einige MCUs haben aktive Maschen-Sensoren, die Laserbestrahlung erkennen. Wenn die Masche durchtrennt wird, löscht sich der Chip selbst. Der Angreifer muss diese Sensoren also vermeiden. Moderne MCUs enthalten auch Spannungsmonitore, die Glitches erkennen. Sie lösen einen Reset aus, wenn die Versorgung um mehr als 5 % abweicht. Aber ein Angreifer kann diese Monitore überwinden, indem er den Monitor selbst glitcht. Es wird zu einem Wettlauf. Der Monitor überprüft die Spannung zu einer bestimmten Taktflanke. Wenn der Glitch nach dieser Überprüfung auftritt, wird der Monitor getäuscht. Timing ist also alles. Die MCU-Lockbit-Sperre ist nur so robust wie ihre Überwachungsschaltung. Viele kostengünstige MCUs haben überhaupt keine Überwachung. Sie sind offen für Glitching. Der Angreifer kann einfach VDD senken, bis der Chip sich abnormal verhält. An diesem Punkt kann er Flash und EEPROM nach Belieben auslesen. Er kann auch einen EEPROM-Prozessor ohne Einschränkungen auslesen. Dekapsulation und Code-Wiederherstellung sind nicht einmal nötig. Das Kopieren von Inhalten aus Crypto-Speicher wird zu einer Frage des Sendens korrekter Adressen. Mikrocontroller-Reverse-Engineering per Glitching wird in vielen Hardwaresicherheitskursen gelehrt. Firmware-Extraktionslabore verwenden Glitching oft als Hauptübung. Abwehrmaßnahmen gegen Glitching umfassen Brown-Out-Detektoren, Taktmonitore und redundante Logik. Brown-Out-Detektoren setzen den MCU zurück, wenn die Spannung unter einen Schwellenwert fällt. Aber sie haben eine Ansprechzeit. Ein ausreichend kurzer Glitch kann sie möglicherweise nicht auslösen. Taktmonitore erkennen Frequenzanomalien. Sie können das System herunterfahren, wenn der Takt abweicht. Angreifer können jedoch auch den Monitor selbst glitchen. Redundante Logik führt dieselbe Operation zweimal aus und vergleicht die Ergebnisse. Bei Abweichungen wird ein Fehler gemeldet. Diese Doppelprüfung erhöht den Flächen- und Leistungsbedarf. Viele MCUs können sich das nicht leisten. Daher verlassen sie sich auf softwarebasierte Prüfsummen. Aber Prüfsummen können umgangen werden, wenn der Glitch die Prüfsummenberechnung trifft. Der Angreifer kann den Compare-Befehl glitchen, um immer "gleich" zurückzugeben. Das ist ein klassischer Angriff. Als Gegenmaßnahme implementieren einige MCUs fehlerresistente Kerne wie ARM Cortex-M mit Lockstep. Lockstep-Kerne betreiben zwei identische Pipelines und vergleichen die Ausgaben. Wenn ein Glitch eine Pipeline betrifft, löst die Abweichung einen Reset aus. Das ist effektiv, aber teuer. Nur sicherheitskritische MCUs haben das. Die überwiegende Mehrheit der Verbraucher-MCUs hat keinen Lockstep. Die MCU-Lockbit-Sperre bleibt also fragil. LockBit und ähnliche Ransomware-Gruppen haben möglicherweise nicht das Fachwissen für Glitching. Aber hochentwickelte kriminelle Organisationen schon. Sie können handelsübliche Glitching-Ausrüstung für unter 5.000 US-Dollar erwerben. Der Return on Investment ist hoch. Sie können Firmware aus Smart Metern, Automobil-ECUs und medizinischen Geräten extrahieren. Das Auslesen eines EEPROM-Prozessors liefert Patientendaten oder Verschlüsselungsschlüssel. Das Dumpen von Flash und EEPROM gibt ihnen die gesamte Codebasis. Dekapsulation und Code-Wiederherstellung sind invasiver, aber Glitching ist sauber. Das Kopieren von Inhalten aus Crypto-Speicher per Glitching kann in Sekunden erledigt werden. Mikrocontroller-Reverse-Engineering wird so zu einem tragfähigen Geschäft. Firmware-Extraktionsdienste werden im Darknet beworben. Die MCU-Lockbit-Sperre ist eine kritische Schwachstelle, die sofortige Aufmerksamkeit erfordert. Designer müssen Spannungs- und Frequenzüberwachung auf analoger Ebene integrieren. Sie müssen auch fehlererkennende Latches verwenden. Darüber hinaus sollten sie das Timing kritischer Operationen randomisieren. Randomisierung macht es schwieriger, das Glitch-Fenster zu treffen. Einige MCUs fügen zufällige Verzögerungen in den Speicherzugriffspfad ein. Diese Verzögerungen frustrieren Angreifer. Sie reduzieren aber auch die deterministische Leistung. Der Kompromiss ist unvermeidbar. In sicherheitskritischen Anwendungen hat die Leistung nachrangige Bedeutung. Für sie gibt es glitch-resistente MCUs. Sie haben eingebaute Sensoren und aktive Abschirmungen. Sie haben auch Selbstzerstörungsmechanismen. Wenn ein Glitch erkannt wird, löscht der Chip alle Schlüssel. Diese aggressive Reaktion schreckt Angreifer ab. Sie kann jedoch einen Denial-of-Service verursachen, wenn sie durch Umgebungsrauschen ausgelöst wird. Der Schwellenwert muss also sorgfältig eingestellt werden. Die MCU-Lockbit-Sperre ist kein binärer Zustand; sie ist ein Spektrum der Widerstandsfähigkeit. Glitching-Angriffe zeigen die Schwachstellen auf. Die Branche muss standardisierte Glitch-Testverfahren entwickeln. Diese Verfahren sollten Teil der Sicherheitszertifizierung sein. Bis dahin werden Angreifer weiterhin ihren Weg in die Sperre glitchen. Zusammenfassend untergräbt Fault Injection die MCU-Lockbit-Sperre, indem es transiente Fehler erzeugt. Es ermöglicht das Auslesen eines EEPROM-Prozessors, das Dumpen von Flash und EEPROM, Dekapsulation (optional), das Kopieren von Inhalten aus Crypto-Speicher und umfassendes Mikrocontroller-Reverse-Engineering sowie Firmware-Extraktion. Die Bedrohung ist unmittelbar und erfordert Abwehrmaßnahmen auf Hardware-Ebene.