Da Sicherheit zu einem immer wichtigeren Thema für das Internet der Dinge (Internet of Things, IoT) wird, erhalten hardwarebasierte Sicherheitsfunktionen zunehmend Aufmerksamkeit. Sie besitzen echtes Potenzial, was den Schutz von Geräten vor Cyberangriffen angeht. In diesem Artikel betrachten wir Beispiele für vorhandene hardwarebasierte Sicherheitsfunktionen und erörtern, wie diese zum Schutz von IoT-Geräten verwendet werden.
Der Aufstieg der hardwarebasierten Sicherheit
Die Verbreitung von IoT-Geräten und -Lösungen hat der technologischen Weiterentwicklung zahlreiche Möglichkeiten eröffnet. Dazu gehören auch die Verwendung von Daten zum Trainieren einer künstlichen Intelligenz und die Fähigkeit, Prozesse remote zu überwachen und zu steuern. IoT-Technologien sind jedoch ein doppelschneidiges Schwert, da sie Cyberkriminellen Chancen in Form von massenweisen Distributed-Denial-of-Services (DDoS)-Angriffen, Datendiebstahl, Netzwerk-Hacking und Verletzungen der Privatsphäre bieten. Auch wenn einige dieser Angriffe mithilfe softwarebasierter Sicherheitsfunktionen verhindert werden können, können sie nicht vor allen Angriffen schützen.
So könnte beispielsweise ein IoT-Gerät für sichere Datenübertragungen verwendet werden, doch bei einem physischen Angriff auf die Hardware kann keine noch so gute Softwareroutine Schutz bieten. Hier kommt hardwarebasierte Sicherheit ins Spiel. Genau aus diesem Grund wird hardwarebasierte Sicherheit bei SoCs, Mikrocontrollern und Mikroprozessoren immer gängiger. Herkömmliche hardwarebasierte Sicherheit umfasst Hardware, die eine schnellere softwarebasierte Sicherheit ermöglicht, wie z. B. Verschlüsselungs-Engines. Doch die Entwickler gehen noch einen Schritt weiter und fangen an, Systeme zu entwickeln, die die Hardware selbst schützen.
Arten von Hardwareangriffen
Hardwareangriffe machen nicht oft Schlagzeilen. Dies mag daran liegen, dass es nur schwer möglich ist, physischen Zugriff auf ein Gerät zu erhalten. So gibt es beispielsweise verschiedene Möglichkeiten, ein E-Mail-Konto über eine Internetverbindung zu hacken, der Diebstahl eines Laptops, um auf die dort gespeicherten E-Mails zuzugreifen, ist eine ganz andere Sache. Doch selbst wenn ein physischer Zugriff auf ein Gerät möglich ist, erfordert es im Allgemeinen nicht viel Können, auf alle Daten auf dem Gerät zuzugreifen.
Seitenkanalangriff
Bei einem Seitenkanalangriff erfolgt ein indirekter Angriff auf ein sehr sicheres System über unsichere Subsysteme außerhalb des sicheren Systems. So ist es beispielsweise bei einem kennwortgeschützten Konto unter Windows leicht möglich, auf die Dateien zuzugreifen, indem die Festplatte entfernt und in einem anderen Computer angeschlossen wird. Der Angreifer muss lediglich den Ordner "in Besitz nehmen" und schon sind alle Dateien zugänglich. Das sichere Kennwort für das Benutzerkonto wird dabei nicht benötigt. So kann das sichere System leicht umgangen werden.
Rowhammer-Angriff
Bei einem Rowhammer-Angriff wird eine bestimmte Schwachstelle von High-Density-DRAM ausgenutzt. Aufgrund der zunehmenden Anzahl von Transistoren und der immer kleineren Komponenten auf Siliziumwafern liegen die Speicherzellen in einem modernen DRAM-Chip unglaublich nahe beieinander. DRAM-Zellen befinden sich heute so dicht beieinander, dass Zellen mit einer kleinen Wahrscheinlichkeit den Wert von Nachbarzellen verändern können.
Dieses Problem wird bei einem Rowhammer-Angriff ausgenutzt. Um den Wert von "geschützten" Speicherzeilen zu ändern, wird dabei der Wert der Speicherinhalte in benachbarten Zeilen geändert. Wenn Angreifer die Möglichkeit haben, Werte in geschützte Bereiche einzuschleusen, auf die sie keinen Zugriff haben, können sie auf diese Weise theoretisch die Sicherheitssysteme umgehen und bösartigen Code in Anwendungen mit Berechtigungen auf Kernel-Ebene einbringen.
Beispiele für hardwarebasierte Sicherheit
Zum Schutz der Geräte vor Hardwareangriffen können die Entwickler Hardwareschutzmaßnahmen direkt in den Siliziumwafern bereitstellen, die außerhalb der Software wirken. Welche Formen der Sicherheit gibt es zurzeit im Hardwarebereich?
Kryptografiebeschleunigung
Wie bereits erwähnt, ist dies eine der frühesten Formen von hardwarebasierter Sicherheit. Es handelt sich hier eher um einen Schutz der Peripherie als um einen Hardwareschutz. Der Begriff "Kryptografiebeschleunigung" bezeichnet Hardware, die kryptografische Funktionen in der Hardware und nicht in der Software ausführt. Dadurch werden nicht nur Anwendungen beschleunigt, sondern auch Systeme zur Verfügung gestellt, die nicht im Softwarebereich ausgenutzt werden können.
Einer Softwareversion von AES beispielsweise kann Code injiziert werden, wodurch das verschlüsselte Ergebnis sehr leicht vom Angreifer umkehrbar ist. Eine Hardwareversion von AES ist dagegen unveränderbar und kann nicht angegriffen werden.
Echte Zufallszahlengeneratoren
Ein Zufallszahlengenerator ist eine Art von Kryptografiebeschleuniger, allerdings ist er wichtig genug, um eine eigene Kategorie zu haben. Fast alle Formen der Verschlüsselung beruhen auf Zufallszahlen. Je zufälliger eine Zahl ist, desto besser ist auch die Verschlüsselung, die diese Zahl verwendet. In Software geschriebene Zufallszahlengeneratoren verwenden fast immer die Zeit als Startwert und können daher unter Umständen leicht angegriffen werden.
Ein Beispiel für eine unsachgemäße Verwendung von Zufallszahlen: Zwei Sicherheitsexperten ist es einmal gelungen, sich aus der Ferne Zugriff auf einen Jeep zu verschaffen und die volle Kontrolle über das Fahrzeug zu übernehmen. Möglich wurde dies, indem sie eine Verbindung zum Multimediasystem des Fahrzeugs herstellten und über diese Verbindung Nachrichten über den CAN-Bus des Wagens sendeten. So konnten die Hacker die Kontrolle über Lenkrad, Bremsen und Gaspedal übernehmen.
Dieser Angriff war nur möglich, da das Wi-Fi-Kennwort des Fahrzeugs nach einem vermeintlich "zufälligen" Verfahren generiert worden war, das auf dem Zeitpunkt (Datum und Uhrzeit) basierte, zu dem das Multimediasystem zum ersten Mal in dem Fahrzeug eingeschaltet wurde. Normalerweise wäre dieses Verfahren sicher. Da das Herstellungsjahr und der Herstellungsmonat eines Fahrzeugs jedoch leicht ermittelt werden können, bleiben einem Hacker nur noch 15 Millionen mögliche Kombinationen. Wenn die Tageszeit korrekt vermutet werden kann, gibt es nur noch 7 Millionen Möglichkeiten. Ein Brute-Force-Angriff auf 7 Millionen Wi-Fi-Kennwörter braucht gerade einmal eine Stunde. Bei Verwendung echter Zufallszahlen wäre dieses Wi-Fi-Kennwort nur sehr schwer zu knacken. Da es jedoch auf nicht zufälligen Elementen beruhte, konnte es leicht umgangen werden.
Speicherverschlüsselung
Schon seit Tausenden von Jahren werden Daten verschlüsselt, dabei werden die Informationen in Form von Chiffren vor neugierigen Blicken geschützt. Dasselbe geschieht auch mit Computerinformationen. Übertragene Daten werden oft vor dem Senden verschlüsselt. Allmählich wird diese Methode der Verschlüsselung jedoch auch für die Datenspeicherung verwendet, sowohl für ROM als auch für RAM gibt es jetzt Verschlüsselungsoptionen. Mit diesem Konzept können die Entwickler dafür sorgen, dass, falls ein Angreifer Zugriff auf die Inhalte im RAM oder ROM erhält, die Informationen ohne Zugriff auf die richtige Hardware nicht lesbar sind.
Speicherschutz an sich ist nicht neu, zahlreiche Mikrocontroller enthalten schreibgeschützte Bits, die ein Klonen von Firmware verhindern. Auch Flash-Verschlüsselung ist nichts Neues, viele FPGAs unterstützen eine Verschlüsselung des Konfigurations-Flashspeichers. Diese neue Form der Speicherverschlüsselung erfolgt jedoch im laufenden Betrieb und ermöglicht nahezu identische Zugriffsgeschwindigkeiten.
Sicheres Booten
Ein Hauptproblem bei fast allen Prozessoren: Wie kann ein Prozessor sicher sein, dass der gestartete Code authentisch und nicht bösartig ist? Der Core-Bootcode eines Systems kann nicht auf Authentizität geprüft werden, die weiteren Bootphasen dagegen schon. Die meisten Angreifer werden versuchen, Code in den Core-Bootcode oder in die anschließend geladene Anwendung einzuschleusen.
Um dies zu verhindern, haben die Entwickler sichere Bootmethoden für die Prozessoren eingeführt, die mit der Ausführung von unveränderlichem Bootcode beginnen, der somit vor Angriffen zur Codeinschleusung geschützt ist. Dieser Bootcode prüft dann die Integrität des Codes der Anwendung, die nun geladen werden soll. Wenn eingeschleuster Code erkannt wird, kann das System entweder in einem eingeschränkten Zustand ausgeführt werden oder es können Warnungen an das Betriebssystem ausgegeben werden, dass Probleme mit der Codeintegrität festgestellt wurden.
Vertrauenszonen
Vertrauenszonen sind bei Mikrocontrollern relativ neu, während es diese Technik bei Prozessoren schon sehr lange gibt. Mithilfe von Vertrauenszonen lässt sich das Problem lösen, dass die Prozessoren nicht merken, wenn sie bösartigen Code ausführen.
Natürlich sind nicht alle CPU-Anweisungen grundsätzlich gefährlich. Einige können es jedoch sein und diese können einen Zugriff auf Hardware, den Stapelzeiger oder kritische Systeme beinhalten. Daher verfügen moderne Prozessoren über Berechtigungsebenen, wobei das Betriebssystem mit der höchsten Berechtigung ausgeführt wird und Zugriff auf alle Anweisungen hat, während den vom Betriebssystem ausgeführten Prozessen eine niedrigere Berechtigung zugewiesen wird. Diese Prozesse können nicht auf sensible Anweisungen zugreifen. Damit können sie weniger leicht Schaden anrichten und haben weniger Möglichkeiten, kritische Systeme auf einem Prozessor anzugreifen.
Heute werden diese Zonen bei vielen SoCs und Mikrocontrollern in den Kernen eingeführt. Dabei wird das Betriebssystem auf einem Kern ausgeführt, während die Prozesse entweder mit weniger Berechtigungen auf demselben Kern oder auf einem sekundären Kern mit weniger Funktionen ausgeführt werden.
Tamper-Pins
Tamper Pins sind ein sehr hilfreiche Hardwarefunktion, da sie schwer zu erkennen und zu verhindern sind. Bei manchen Hardwareangriffen muss der Angreifer Teile physisch entfernen, um E/A-Zugriff z. B. über Debug-Ports und Speicherkanäle zu erhalten. Je nach Gerät kann ein Tamper Pin externe mechanische Eingriffe wie z. B. das Öffnen eines Gehäuses erkennen. Der Tamper Pin kann dann den Prozessor anweisen, eine besondere Routine auszuführen. Dies kann ein einfacher Neustart sein, um zu verhindern, dass sensible Daten gelesen werden, doch auch drastischere Maßnahmen wie ein vollständiges Zurücksetzen des Speichers sind möglich. Tamper-Pins können für die Verdeckung von Pins verwendet werden, um für Angreifer den Anschein zu erwecken, dass diese keine Funktion erfüllen. Daher bleiben diese unbemerkt.
Erweiterte hardwarebasierte Sicherheit: Busmonitore
Alle bisherigen Beispiele hardwarebasierter Sicherheit sind oft in einem Paket kombiniert und bieten den Benutzern eine Reihe verschiedener Sicherheitsoptionen. Allmählich ist jedoch eine neue Art von hardwarebasierter Sicherheit im Kommen, die Sicherheit in ein völlig neues Paradigma führt: Busmonitore.
Busmonitore sind hoch entwickelte Sicherheitssysteme, die direkt in den SoC eines Mikrocontrollers integriert werden und unabhängig vom System funktionieren. Busmonitore werden mit mehreren internen Bussen und Anschlüssen verbunden, darunter E/A-Pins, Register, interne Datenbusse und Programmierports. Bei normalem Betrieb schaffen die internen Verbindungen der Matrize einen stabilen Zustand, von dem der Busmonitor lernt. Wenn bösartiger Code eingeschleust wird oder an einem Pin ein Hardwareangriff erfolgt, ist der stabile Zustand des Busmonitors gestört. Folglich ergreift der Busmonitor Maßnahmen gegen die Anomalie. Manche Busmonitore geben möglicherweise Betriebssystemausnahmen aus, während andere eine Systemzurücksetzung auslösen.. Einige Busmonitore können potenziell bösartige Registeranforderungen sogar vom Prozessor ableiten und Nullwerte zurückgeben und dabei den versuchten Angriff protokollieren.
Fazit
Zwar wird die Einführung von hardwarebasierter Sicherheit die Chips verteuern, doch werden die Designs auch sicherer sein. Die Möglichkeiten der softwarebasierten Sicherheit sind nicht unbegrenzt. Ein System, das sich vollständig auf softwarebasierte Sicherheit verlässt, wird zu einem leichten Ziel für Angreifer. Systeme mit integrierter hardwarebasierter Sicherheit sind erheblich robuster.
Die Möglichkeit einer Speicherverschlüsselung im laufenden Betrieb hilft, die Geräte langfristig zu schützen, und überzeugt auch Anwender, die sich elektronische Geräte ohne Datenverluste wünschen. Technologien wie Busmonitore werden intelligentere Sicherheitssysteme ermöglichen, die Informationen zu Angriffen verarbeiten können und in der Lage sind, zukünftige Angriffe durch Erkennen von Mustersignalen präventiv zu vermeiden.
Insgesamt wird hardwarebasierte Sicherheit zum Standard bei den Sicherheitspraktiken werden. Geräte ohne eine solche Funktionalität werden auf grundlegende Vorgänge und Aufgaben beschränkt sein.