Wie neue Methoden Firmware und Hardware vor Hackern schützen

Schutz für sensible Systeme

Hacking
Wie schützt man Firmware und Hardware vor Hacking und Manipulation? © monsitj/ Getty images

Unsere Welt hängt immer stärker von IT-Systemen ab – doch das macht Alltagstechnik und kritische Infrastrukturen auch angreifbar. Angreifer können Schwachstellen in der Firmware oder sogar die Hardware selbst nutzen, um Zugriff auf Daten zu erhalten. IT-Forscher der Ruhr-Universität Bochum entwickeln neue Methoden, um sensible Technik vor solchen Angriffen zu schützen.

Ob smarte Glühlampen, intelligente Thermostate oder die Steuersoftware von Industrieanalagen und anderer kritischer Infrastruktur: Computer sitzen heute längst auch dort, wo wir sie kaum bemerken. Doch die Firmware solcher eingebetteten Systeme auf Schwachstellen und mögliche Zugänge für Hacker zu überprüfen, ist bisher schwierig. Ähnliches gilt für den Schutz sensibler Systeme, beispielsweise von Kartenlesegeräten, gegen Hardwaremanipulationen, denn auch durch sie können Hacker Daten abgreifen. Genau an diesen Punkten setzt die Arbeit von IT-Forschern der Ruhr-Universität Bochum an.

Wie findet man Schwachstellen in eingebetteten Systemen?

Fahndung im Code-Dschungel

Ein Programmcode ist ein bisschen wie ein Dschungel: komplex aufgebaut, schwer von außen einzusehen, mit unzähligen möglichen Wegen, die man hindurch nehmen kann. Schwachstellen in einem solchen Code zu finden ist wie Tiere zwischen den Bäumen im Urwald zu suchen: Man weiß, dass sie da sind, aber man sieht sie nicht direkt. Tobias Scharnowski von der Ruhr-Universität Bochum entwickelt daher gemeinsam mit seinem Betreuer Thorsten Holz neue Methoden, um im Dschungel der Einsen und Nullen effizient Programmierfehler aufspüren zu können.

Smart Home
Auch in Alltagstechnik stecken heute eingebettete Computer. © Media Raw Stock/ Getty images

Vom smarten Kühlschrank bis zum Industriesystem

Die Forscher interessieren sich vor allem für eingebettete Systeme: „Wir versuchen, die Sicherheit von Computern zu erhöhen, von denen die meisten Menschen gar nicht wissen, dass sie überhaupt Computer sind“, erklärt Scharnowski. Ein eingebettetes System ist eine Kombination aus einer Hardware und einer Software, die einen speziellen Zweck innerhalb eines größeren Systems erfüllt – zum Beispiel im Auto die elektronische Steuerung der Sitze.

Eigentlich ist ein eingebettetes System ein Computer, der einem eng umgrenzten Zweck dient. Smarte Glühlampen, ans Internet angeschlossene Kühlschränke oder intelligente Thermostate sind Beispiele für die eingebetteten Systeme, die auf der Agenda der Systemsicherheitsforscher stehen. Diese Gegenstände enthalten elektronische Steuerungstechnik mit vielen Zeilen Programmcode, in die sich Fehler eingeschlichen haben können.

Es geht den IT-Experten aber nicht nur um Gegenstände aus dem Haushalt. Vor allem interessieren sie sich für Steuerungssysteme in der Industrie, zum Beispiel aus dem Bereich der kritischen Infrastrukturen wie der Energieversorgung. Sicherheitslücken könnten hier besonders dramatische Auswirkungen haben.

Steuergerät
Das Team testet die Firmware industrieller Steuereinheiten wie dieser hier. © Michael Schwettmann/ RUB

Fehlersuche mittels Fuzzing

Scharnowski und Holz nutzen das sogenannte Fuzzing, um Fehler im Programmcode aufzuspüren. Als Fuzzer bezeichnet man Algorithmen, die die zu testende Software mit zufälligen Inputs füttern und prüfen, ob sie die Anwendung damit zum Absturz bringen können. Solche Crashs weisen auf Programmierfehler hin. Immer wieder variiert der Fuzzer den Input, um Schritt für Schritt möglichst viele Programmbestandteile zu erkunden.

Für bestimmte Anwendungsbereiche ist das Fuzzing bereits etabliert, zum Beispiel, um Betriebssysteme wie Windows oder Linux zu testen. Eingebettete Systeme hingegen wurden noch nicht ausgiebig damit untersucht; denn sie bringen einige Herausforderungen mit sich: Bei ihnen ist die Software – die sogenannte Firmware – in eine Hardware eingebettet, mit der sie interagiert.

Über die Hardware und ihre Funktionsweise haben die Forscher aber in der Regel wenig Informationen. „Das ist wie eine Blackbox für uns“, sagt Thorsten Holz. Hinzu kommt, dass diese Blackbox in der Regel nicht besonders leistungsstark ist – oft haben die Systeme verhältnismäßig wenig Speicher und langsame Prozessoren. Ein Problem, wenn die Forscher das Fuzzing direkt im System durchführen wollen. Es würde viel zu lange dauern, alle möglichen Inputs durchzuprobieren und auf die Antwort des Systems zu warten.

Schwachstellensuche mit Fuzzware

Intelligente Affen

Um Fehler im Programcode von eingebetteten Systemen aufzuspüren, analysieren die Bochumer IT-Forscher die betreffende Firmware nicht direkt in der industriellen Steuereinheit. Stattdessen bauen sie die Hardware virtuell nach – emulieren nennt sich dieser Prozess. Der Emulator gaukelt der Firmware vor, sich in dem realen Gegenstand zu befinden. Dazu muss er genauso mit dem Programm interagieren, wie es die echte Hardware tun würde.

Kühlschrank
Gezielte Inputs helfen beim Schwachstellentest beispielsweise der Temperatursteuerung eines Kühlschranks. © Ralf Geithe/ Getty images

Fahndung mit gezielten Inputs

„Wir müssen also alle Schnittstellen, die es zwischen Hardware und Firmware gibt, nachahmen“, erklärt Thorsten Holz. Gelingt das, können die Wissenschaftler die Firmware in einem leistungsfähigen System testen. Trotzdem würde es lange dauern, wenn sie ihre Fuzzing-Algorithmen alle theoretisch denkbaren Inputs ausprobieren lassen würden. Deswegen schalten die Forscher dem eigentlichen Fuzzing-Prozess einen weiteren Schritt vor, in dem sie die möglichen Inputs eingrenzen. Sie modellieren zunächst, in welchem Rahmen sich die Eingaben befinden müssen, um für die Firmware logisch zu sein.

Ein Beispiel: Gehen wir davon es, dass es sich bei der Hardware um einen Kühlschrank mit einem Temperaturfühler handelt. Die gemessenen Temperaturen kann die Kühlschrank-Hardware an die Software des Kühlschranks, also seine Firmware, melden. Realistischerweise können nicht alle möglichen Temperaturen auftreten, sondern nur ein gewisser Bereich. Daher ist auch die Firmware nur für einen bestimmten Temperaturbereich programmiert. Andere Werte könnte sie gar nicht verarbeiten, also muss man sie auch nicht im Fuzzing testen.

Affen an der Tastatur

„Im Fuzzing-Prozess nutzen wir also nur die Inputs, die die Firmware auch erwartet und mit denen sie umgehen kann“, beschreibt Thorsten Holz und vergleicht den Prozess mit dem Infinite Monkey Theorem: „Dieses Theorem besagt, dass, wenn man Affen lange genug auf eine Tastatur drücken lassen würde, irgendwann auch Shakespeares Werke dabei herauskommen würden.“ So wäre es mit dem Fuzzer auch: Wenn man ihn lange genug probieren lassen würde, würde er durch Zufall irgendwann sinnvolle Inputs nutzen. Aber es würde lange dauern.

„Wir wollen unsere Affen aber etwas intelligenter machen“, sagt Tobias Scharnowski. „Wir nehmen ihnen alle Tasten weg, die sie nicht brauchen, und versuchen sie dazu zu bringen, nur sinnvoll auf die Tasten zu drücken. Mit den Inputs, die übrigbleiben, können wir den Code trotzdem bis in die hintersten Ecken testen.“ Auf diese Weise wird das Fuzzing mit dem Bochumer System – Fuzzware genannt – besonders effizient.

Fuzzing-Test
Der Fuzzing-Algorithmus im Test. © Michael Schwettmann/ RUB

„Man findet eigentlich immer was“

Zusammen mit Kolleginnen und Kollegen aus Santa Barbara und Amsterdam testete das Bochumer Team 77 Firmwares mit ihrer Fuzzware. Im Vergleich zu herkömmlichen Fuzzing-Methoden sortierten sie bis zu 95,5 Prozent der möglichen Inputs aus. Trotzdem gelang es ihnen, mit dem Fuzzware-System in der gleichen Zeit bis zu dreimal mehr von dem Programmcode zu checken wie mit herkömmlichen Verfahren. Dabei fand die Gruppe auch neue Schwachstellen, die mit anderen Fuzzing-Methoden unentdeckt geblieben waren.

„Man findet eigentlich immer was“, weiß Thorsten Holz. „Wenn ein System noch nie mit Fuzzing getestet wurde, dann gibt es darin auch unentdeckte Schwachstellen.“ Gerade bei eingebetteten Systemen ist es für Programmiererinnen und Programmierer nahezu unmöglich, einen perfekten Code auf die Beine zu stellen. „Um mit der Hardware von eingebetteten Systemen sprechen zu können, muss man eine Low-Level-Programmiersprache nutzen“, erklärt Tobias Scharnowski.

Programmierer können in vielen Bereichen nicht auf Codeschnipsel zurückgreifen, die für andere Anwendungen entwickelt wurden. Sie müssen ihren Code von Grund auf neu aufbauen. Gerade Randfälle – Zustände, in denen sich das System selten befindet – werden dann eventuell nicht bedacht. „Für unsere Fuzzer sind diese Zustände aber leicht zu analysieren“, sagt Scharnowski. „Sie können daher helfen, die Systeme robuster zu machen.“ Gefundene Schwachstellen melden die Forscher an die Hersteller und tragen so zu mehr Sicherheit in Industrie, Glühbirnen, Kühlschränken und Co. bei.

Datenklau geht auch ohne Trojaner und Viren

Angriff auf die Hardware

Bezahlvorgänge, Geschäftsgeheimnisse, Dokumente, die für die nationale Sicherheit bedeutsam sind: Die großen Geheimnisse der Welt sind heute oft nicht mehr auf Papier gespeichert, sondern als Einsen und Nullen im virtuellen Raum. Wenn man sie in Gefahr wähnt, stellt man sich zumeist eine Bedrohung aus der Ferne vor – Angreifer, die über Cyberattacken versuchen, vertrauliche Daten zu erbeuten. Doch sie sind nur eine Möglichkeit, wie Hacker Zugriff auf Daten erhalten können.

Kartenlesegerät
Kartelesegeräte können durch Hardware-Manipulation gehackt werden. © TommasoT/ Getty images

Zugriff über elektrische Signale

Es gibt auch noch eine andere Bedrohung, einen viel direkteren Weg, in fremde Systeme zu gelangen: Indem man sich an der Hardware zu schaffen macht. Die wertvollen Informationen sind letztendlich nichts anderes als elektrische Ströme, die zwischen verschiedenen Computer-Bauteilen über Leiterbahnen wandern. Ein winziger metallischer Gegenstand, an der richtigen Stelle der Hardware platziert, kann ausreichen, um diese Datenströme abzugreifen.

„Betrüger haben diese einfache Methode zum Beispiel genutzt, um Kreditkartendaten aus Kartenlesegeräten abzugreifen“, erklären Paul Staat und Johannes Tobisch. Die beiden promovieren an der RUB und forschen am Bochumer Max-Planck-Institut für Sicherheit und Privatsphäre. In ihrem entwickeln sie Methoden, die vor Hardware-Manipulationen schützen sollen. Dabei kooperieren sie mit Christian Zenger von dem aus der RUB ausgegründeten Unternehmen PHYSEC.

Wie schützt man die Hardware?

Natürlich gibt es bereits Mechanismen, die Hardware vor Manipulationen schützen soll. „In der Regel ist das eine Art Folie mit dünnen Drähten, in die die Hardware-Komponente eingepackt ist“, erklärt Paul Staat. „Wird die Folie beschädigt, schlägt das System Alarm.“ Auf diese Weise lassen sich allerdings nur kleine Komponenten schützen, nicht das ganze System. Man kann also nicht ein ganzes Computergehäuse in die Folie einwickeln, sondern zum Beispiel nur ein besonders wichtiges Bauteil wie ein Speicherelement oder einen Prozessor.

Forschende aus Cambridge haben schon 2008 gezeigt, wie leicht sich verschiedene Kartenlesegeräte trotz Manipulationsschutz hacken lassen. Denn dieser sichert nur einzelne Komponenten wie den Prozessor., nicht aber die Leiterbahnen der Platine. Es gelang den Wissenschaftlern, sowohl die Daten der eingeführten Karten als auch die eingetippten PINs auszulesen. Kriminelle Akteure gehen ähnlich vor und modifizieren die Kartenlesegeräte so, dass die ausgelesenen Daten über Bluetooth übermittelt werden können. „Für solche Manipulationen gibt es einen regelrechten Markt“, erklärt Paul Staat.

Funkantennen im Rechner
Mit zwei einfachen Funkantennen (rosa) können die Forscher ein ganzes System überwachen, etwa einen Server. © Michael Schwettmann/ RUB

Schutz mittels Funkwellen

Tobisch und Staat feilen jedoch an einer Technik, die ganze Systeme auf Manipulationen überwachen soll – und obendrein nicht so teuer wäre. Dazu setzen sie auf Funkwellen. Sie verbauen in dem zu überwachenden System zwei Antennen: einen Sender und einen Empfänger. Der Sender schickt ein spezielles Funksignal in die Umgebung, das sich überall im System ausbreitet und an den Wänden und Computerkomponenten reflektiert wird. Durch all diese Reflektionen kommt beim Empfänger ein Signal an, das für das System so charakteristisch ist wie ein Fingerabdruck.

Winzige Veränderungen am System reichen aus, um den Fingerabdruck merklich zu beeinflussen, wie eine Demonstration der beiden Forscher zeigt: Ihre Funktechnik haben sie in ein altes Computergehäuse eingebaut. Das gemessene Funksignal machen sie auf einem Laptop als Kurve sichtbar, welche die Stärke des Signals bei verschiedenen Frequenzen in Echtzeit darstellt. Dann drehen sie aus dem überwachten Objekt eine der außen im Gehäuse sitzenden Schrauben ein kleines Stück heraus. Und schon reagiert die Frequenzkurve mit einem merklichen Ausschlag, der zuvor nicht da war.

Mit zwei Antennen gegen das Hardware-Hacking

Funkwellen verraten die Täter

Beim Testen ihres Schutzsystems für Hardware gehen die IT-Forscher Johannes Tobisch und Paul Staat systematisch vor. Ziel ist es, unautorisierte Manipulationen der Hardware an winzigen Veränderungen in einem zur Überwachung erzeugten Funksignal zu erkennen.

So funktioniert der Hardwareschutz mit Funkwellen.© RUB

Test im laufendem Betrieb

Ihr Testobjekt ist ein herkömmlicher Computer, dessen Gehäuse sie in regelmäßigen Abständen mit Löchern versehen haben. Durch diese Löcher können sie eine feine Metallnadel in das Innere des Systems eindringen lassen und überprüfen, ob sie die Veränderung im Funksignal bemerken. Sie variieren dabei die Dicke der Nadel, die Position und die Eindringtiefe. Damit der Versuch unter kontrollierten und reproduzierbaren Bedingungen stattfindet, haben die Forscher extra einen Hochpräzisionsroboter angeschafft, der die Nadel mikrometergenau in das Gehäuse einführt.

„Eine Besonderheit ist, dass wir den Versuch durchführen, während der Computer läuft“, sagt Tobisch. Das erzeugt allerhand Störungen. „Die Lüfter sind wie kleine Staubsauger und der Prozessor ist wie eine Heizung“, vergleicht Staat. Diese Schwankungen in den Umgebungsbedingungen beeinflussen das Funksignal. Solche Störungen müssen die Forscher messen und herausrechnen, um unterscheiden zu können, ob Schwankungen im Signal legitim sind oder durch Manipulationen zustande kommen.

System erkennt selbst feinste Eingriffe

Die Tests ergaben: Das Eindringen einer 0,3 Millimeter dicken Nadel können die Bochumer IT-Experten mit ihrem System ab einer Eindringtiefe von einem Zentimeter zuverlässig erkennen. Selbst bei einer Nadel von 0,1 Millimeter Dicke – etwa so dick wie ein Haar – schlägt das System noch an, allerdings nicht an allen Positionen. „Je näher sich die Nadel zur Empfangsantenne befindet, desto leichter ist sie zu detektieren“, erklärt Staat.

NAdel
Selbst eine nur 0,2 Millimeter dicke Nadel wie diese verrät sich durch Veränderung der Funksignale, wenn sie in das Gehäuse eindringt. © Michael Schwettmann/ RUB

Je dünner und weiter weg die Nadel, desto höher die Wahrscheinlichkeit, dass sie unbemerkt bleibt. Ebenso ist es mit der Eindringtiefe: Je tiefer die Nadel im System steckt, desto leichter ist sie zu erkennen. „Für die Praxis ist es also sinnvoll, sich genau zu überlegen, wo man die Antennen platziert“, resümiert Tobisch. „Sie sollten sich möglichst nah bei den besonders schützenswerten Komponenten befinden.“

Ihren Versuch ließen Johannes Tobisch und Paul Staat zehn Tage laufen und zeigten somit, dass das Messsystem über lange Zeit stabil ist. Später dehnten sie die Messdauer sogar auf einen ganzen Monat aus. Neben teurer, sehr präziser Messtechnik zum Aufzeichnen des Fingerabdrucks werteten sie das Funksignal zum Vergleich auch mit einfacher Technik aus, die für ein paar Euro zu haben ist. Das funktionierte ebenfalls, wenn auch mit einer etwas geringeren Trefferquote. „Es ist immer ein Kompromiss aus Kosten und Genauigkeit“, sagt Paul Staat.

Vom Stromzähler bis zum Satelliten

Je nach Einsatzzweck müsste auch noch der Einfluss von Umweltfaktoren berücksichtigt werden. Denn wenn sich die Temperatur oder Luftfeuchtigkeit im Raum ändert, kann das auch den Funk-Fingerabdruck ändern. „Wir hoffen, solche Probleme in Zukunft mithilfe von maschinellem Lernen angehen zu können“, blickt Johannes Tobisch voraus. Künstliche Intelligenz könnte selbstständig lernen, welche Veränderungen im Funksignal auf unkritische Umgebungsveränderungen zurückzuführen sind und welche auf Manipulationen – so die Idee.

„Prinzipiell steht einer breiten Anwendung der Technik nichts im Wege. Sie eignet sich sowohl für Hochsicherheitsanwendungen als auch für Alltagsprobleme“, sagt Christian Zenger, Gründer und Geschäftsführer von PHYSEC. Das IT-Unternehmen nutzt die Technik bereits, um unerlaubte Manipulationen an kritischen Infrastrukturkomponenten zu verhindern. „Weitere technische Systeme, die nicht nur vor Cyberattacken aus der Ferne, sondern auch vor Hardware-Manipulationen geschützt werden müssen, gibt es genug“, ergänzt er. „Beispielsweise Steuergeräte in Autos, Stromzähler, Medizingeräte, Satelliten und Serviceroboter.“