Eingebettete Systeme in IIoT-fähiger Operating Technology (OT) sind ab dem Zeitpunkt der Öffnung ihrer Kommunikationsanschlüsse Risiken ausgesetzt. Anhand der beiden häufigsten Angriffsarten, beantworten wir in diesem Blog die Frage, wie eingebettete Systeme gehackt werden könnten.
In der Vergangenheit waren eingebettete Systeme einigermaßen sicher vor Hackerangriffen. Um Daten zu stehlen oder ein bösartiges Programm einzuschleusen, benötigte der Hacker lokalen Zugriff. Wenn es sich beispielsweise um ein in einem Schrank eingeschlossenes Kontrollsystem in der Fabrikhalle eines sicherheitsbewussten Unternehmens handelte, war es schwierig, sich unbefugt Zugriff zu verschaffen. Die Operational Technology (OT) zur Steuerung von Motoren, Stellantriebsventilen und Brennern war nur dem autorisierten Personal vor Ort zugänglich.
So wie das Internet der Dinge den Fernzugriff auf IoT-fähige Systeme (z. B. „intelligente“ Geräte im Haus) von überall auf der Welt ermöglicht, bietet das industrielle IoT (IIoT) autorisiertem Personal Fernzugriff auf die OT. Tja, und leider auch unbefugten Personen (Hackern), es sei denn, das System ist cybersicher.
Ständige Bedrohung
In der kommerziellen Welt gehen die IT-Spezialisten großer Organisationen wie Banken, Fluggesellschaften, Handelsketten und vieler anderer attraktiver Ziele usw. davon aus, dass man ständig Hackerangriffen ausgesetzt ist. Dementsprechend werden innerhalb solcher Organisationen in regelmäßigen Abständen Sicherheitspatches veröffentlicht, um das Intranet und alles, was damit verbunden ist, vor den Bedrohungen zu schützen, die von der Außenwelt kommen können.
IoT-fähige Geräte für den Konsumentenbereich sind meist weniger geschützt, da die breite Öffentlichkeit weniger sicherheitsbewusst ist als beispielsweise Unternehmen. Und das wird sich wohl kaum ändern, weshalb Gerätehersteller – gemäß einem neuen Gesetz – stärker für die Sicherheit verantwortlich gemacht werden sollen.
Bahnbrechende Pläne zum Schutz der Öffentlichkeit vor Cyberangriffen
Der Schwerpunkt dieses Gesetzes liegt jedoch auf Konsumgütern und Bürogeräten, die voraussichtlich in großen Mengen verkauft werden. Dies sind auch Produkte, die eine beabsichtigte Lebensdauer von nur wenigen Jahren haben können. Aber wie steht es um IoT-fähige eingebettete OT-Systeme, werden diese der gleichen Regulierung unterliegen? Die Volumina sind viel geringer und werden oft auf Bestellung angepasst oder können sogar Einzelanfertigungen sein. Außerdem wird erwartet, dass sie eine viel längere Lebensdauer haben als Verbraucher- oder Bürosysteme. Und was ist mit den Systemen, die schon seit Jahren im Einsatz sind und noch nicht unbedingt auf den neuesten Stand gebracht wurden oder inaktive Elemente haben, die nicht mehr verwendet werden und daher vermeintlich kein Problem darstellen?
Vielleicht haben Sie von dem Cyberangriff auf eine Wasseraufbereitungsanlage in Florida im Februar dieses Jahres gelesen oder gehört. Ein Hacker hatte versucht, die Wasserversorgung einer Stadt zu vergiften, indem er den Gehalt an Natriumhydroxid (welches in niedrigen Konzentrationen keine Gefahr darstellt und zur Regulierung des pH-Wertes des Wassers benötigt wird) von 100 auf 11.000 ppm erhöhte.
Die Fachpresse berichtete, dass via TeamViewer auf ein SCADA-System zugegriffen wurde, das Fernzugriff bietet und sich hervorragend zur Fehlerbehebung eignet. Die Software wurde auf dem System belassen und für Monate nicht mehr verwendet. Eine offizielle Untersuchung brachte ans Licht, dass „… für alle Remote-Computer dasselbe Passwort galt und sie ohne Firewall direkt mit dem Internet verbunden waren.“
Zum Glück scheiterte der Angriff. Die bösartigen Befehle wurden von einem legitimen Benutzer auf dem System frühzeitig bemerkt und der Natriumhydroxidgehalt sofort reduziert. Der Angriff offenbarte aber die genannten Sicherheitslücken und es stellte sich heraus, dass auf der Anlage noch Windows 7 lief, für das der Hersteller den Support am 14. Januar 2020 einstellt hatte und seither keine neuen Sicherheitspatches mehr veröffentlicht wurden.
Bei einer Änderung des geplanten Programms…
Im obigen Beispiel hatte sich der Hacker Zugriff auf die OT der Anlage verschafft und interagierte mit der Schnittstelle. Die Software der OT erkannte nicht, dass es sich nicht um einen autorisierten Benutzer handelte. Das Programm wurde ordnungsgemäß ausgeführt.
Bei einer anderen Form des Cyberangriffs wird das Verhalten des Programms geändert. Eine der gängigsten Methoden ist die gezielte Herbeiführung eines Pufferspeicherüberlaufs, die auch zufällig meist als Folge einer unsauberen Programmierung auftreten.
Werden Daten in einen Speicher geschrieben, gehen sie an eine bestimmte Speicheradresse, die in einer Zuordnungstabelle zugewiesen wird. Sollen mehr Daten geschrieben werden als Speicherplatz zur Verfügung steht, wird der Inhalt der nächsten Speicheradresse überschrieben, anstatt den Überschuss einfach nicht zu schreiben.
Das Ziel des Hackers ist es, Speicherbereiche so zu überschreiben, dass die Software zwar weiter ausgeführt wird aber dabei sensible Daten preisgibt oder freien Zugriff auf andere Systeme gewährt, ohne abzustürzen oder äußere Anzeichen einer Kompromittierung zu zeigen.
Während man annehmen würden, dass der eingebettete Code (oder besser gesagt das Design-Entry-Tool bzw. der Compiler) das Speicherüberlauf-Problem erkennen würde, sind viele Speicheradressierungsfunktionen in C und C ++ unlimitiert. Beispielsweise liest die get(s)-Funktion in C Daten in einen Puffer im Speicher, aber es gibt keine Begrenzung für die Länge dieser Daten. Ohne zusätzlichen Code zum Validieren oder automatischen Zuschneiden der Daten vor dem Senden an den Puffer gibt es keinen Schutz vor einem Datenüberlauf.
In dieser Hinsicht bieten Sprachen wie z. B. C# oder Java mehr Sicherheit. Auch Betriebssysteme verfügen über Speicherverwaltungsmechanismen. Dazu gehört die Deklaration einiger Speicherbereiche als „nicht ausführbar“ und die Verwendung zufälliger Speicheradressen für die Ausführung eines Programmcodes. Die letztere Methode ist besonders effektiv, da ein Hacker, der einen Speicherpufferüberlaufangriff plant, die Adressen genau kennen muss, um das Verhalten des Systems auf eine bestimmte Weise zu manipulieren.
Oben habe ich zwei Formen von Cyberangriffen skizziert: a) ein unautorisierter Zugriff auf die Benutzeroberfläche einer OT und folgende Korrumpierung des Systems b) den Ausführungscode durch einen erzwungenen Speicherüberlauf zu manipulieren. Obwohl es nicht schwierig ist, zu verstehen, wie die Angriffe funktionieren und sich Präventionsmethoden vorzustellen, gibt es immer noch viele Herausforderungen, die mit der Absicherung von IIoT-fähigen OT-Embedded-Systemen verbunden sind, auf die ich in meinem nächsten Blog eingehen werde.
In der Zwischenzeit möchten Sie vielleicht unseren Leitfaden „Securing Your Embedded Memory“ lesen. Schließlich befindet sich der Ausführungscode eines eingebetteten Systems im Speicher, der auch den Arbeitsbereich für das Programm und die Speicherorte für sensible Daten und Passwörter umfasst. Die meisten Cyberangriffe richten sich daher gegen eingebetteten Speicher.