Systems Engineering Trends

Jede Woche Neuigkeiten aus der Welt des Systems Engineering

AnalyseForschung

5 Werkzeuge, um mit Angriffssicherheit von Systemen umzugehen

Das Wort „Sicherheit“ hat im Systems Engineering zwei Bedeutungen. Das ist zum einen die Betriebssicherheit (oder funktionale Sicherheit), womit gemeint ist, dass durch den Betrieb des Systems kein Schaden – egal ob körperlicher, finanzieller oder anderer Art – verursacht wird. Klassische Elemente der funktionalen Sicherheit sind Not-Ausschalter oder Einrichtungen, die den Betrieb eines Geräts bei geöffneter Motorhaube verhindern. Betriebssicherheit ist heutzutage gut verstanden.

Aber dann gibt es noch Sicherheit im Sinne von Angriffssicherheit, also dass ein das System nicht unterwandert und missbraucht werden kann. Das ist in der heutigen Zeit ein ganz großes Thema, da durch die Digitalisierung und Vernetzung mit der physikalischen Welt es immer mehr potentielle Angriffsziele gibt.

Im Englischen gibt es zwei verschiedene Begriffe für die zwei Arten von Sicherheit, nämlich Safety (Betriebssicherheit) und Security (Angriffssicherheit).  Die zwei Arten der Sicherheit lassen sich leicht an der Richtung des Schutzes Unterscheiden: Bei der Betriebssicherheit wird die Umgebung vor dem System geschützt, und bei der Angriffssicherheit wird das System von der Umgebung geschützt.

Im folgenden wird beschrieben, warum es so schwierig ist, sich gegen Angriffe zu schützen. Aber möglich ist es, und fünf Lösungen werden vorgestellt.

Warum Angriffssicherheit heute so aktuell wie noch nie ist

Wie schon erwähnt, geht es bei der Angriffssicherheit darum, dass System vor dessen Umgebung zu schützen. Das System ist über Schnittstellen von der Umgebung getrennt. Schnittstellen können explizit definiert sein (bspw. der Zugang zu einem Tank) oder implizit (bspw. das Gehäuse eines Gerätes). Um Angriffssicherheit zu erreichen, müssen die Schnittstellen ausreichend geschützt sein.Dabei ist es wichtig, auch die impliziten Schnittstellen zu untersuchen.

Die Täter bohrten ein Loch in die Verkleidung und steckten einen USB-Stick in den PC des Geldautomaten Twittern

Ein Interessantes Beispiel für dieses Problem ist ein System, mit dem Geldautomaten leergeräumt werden können. Dazu bohren die Diebe ein Loch in das Gehäuse des Geldautomaten, durch den dann ein USB-Stick gesteckt wird. Gewiss, der Hack nutzt die Schwäche des Betriebssystems des Geldautomaten aus (Windows XP). Doch wäre der Einbruch in dieser Form nicht möglich gewesen, wenn es nicht so leicht gewesen wäre, mit einer einzigen Bohrung durch das dünne Gehäuse den USB-Port zu erreichen.

Diese Geschichte macht aber auch klar, warum das Thema heute aktueller denn je ist: Denn mit dem Loch war es ja noch nicht getan. Ohne die Schwäche im Betriebssystem, der Konfiguration des Computers und der Bank-Software wäre der Einbruch ebenfalls nicht möglich gewesen. Software hat nun mal Schwächen, die ausgenutzt werden können.

Jede Software hat Fehler, die für Angriffe genutzt werden können

Windows XP hat bereits 45 Millionen Zeilen Code – kein Wunder, dass dort Schwachstellen zu finden sind. Das ist vielleicht nicht ganz fair, da es schließlich ein altes Betriebssystem ist, welches zu einer Zeit entwickelt wurde, als Computersicherheit noch kein allzu großes Thema war. Aber auch heute ist die Situation nicht besser geworden: Der Einsatz von Software in allen Lebensbereichen erhöht sich von Jahr zu Jahr. Inzwischen wird Computersicherheit zwar wesentlich mehr Beachtung geschenkt, dass ändert aber nichts daran, dass in jeder Software Fehler stecken, die für Angriffe genutzt werden können.

Typische Programme haben zwischen 10 und 50 Fehlern pro 1000 Zeilen Code Twittern

Es ist unmöglich, fehlerlose Software zu produzieren. Dutzende von Bugs pro 1000 Zeilen Code ist nicht ungewöhnlich, und selbst bei gründlicher Überprüfung lassen sich bestenfalls 0,5 Fehler pro 1000 Zeilen Code erreichen. Das bedeutet, dass selbst in kleineren Programmen mit großer Wahrscheinlichkeit Fehler stecken.

Computersicherheit ist von Grund auf defekt

Viel der heute eingesetzten Software ist Jahrzehnte alt und stammen aus einer Zeit, als Computersicherheit kaum ein Thema war. Das trifft besonders auf die Software zu, die für den Betrieb des Internets verwendet wird. Was noch viel schlimmer ist: Teilweise wurden Ansätze zur Sicherheit aktiv unterdrückt. Zum Beispiel wollte Vint Cerf, ein Internet-Pionier, Kryptografie direkt in die Internet-Infrastruktur einbauen, was von den Sicherheitsbehörden der USA verhindert wurde. Statt dessen wurde eine weitere Schicht für die Sicherheit entwickelt, wodurch die Infrastruktur noch komplexer und viel neuer Code beigesteuert wurde, was ohne Zweifel neue Bugs, und damit Sicherheitslücken, geschaffen hatte.

Es ist eine Sache, wenn eine Webseite beschädigt oder blockiert wird, wobei auch da ein erheblicher Schaden entstehen kann. Aber durch das Internet der Dinge (IoT) wird das Problem plötzlich akut: Beim IoT sind Geräte der physikalischen Welt permanent mit dem Internet verbunden. Das kann ein Stromzähler sein oder eine Kaffeemaschine, aber das zur Zeit am heißesten diskutierte Gerät ist das Auto. Welche Gefahr von einem gezielten Angriff auf vernetzte Autos ausgehen kann, ist kaum vorzustellen. Das ist kein theoretisches Problem, ein Jeep wurde bereits gehackt – zum Glück von Sicherheitsforschern.

Was nun?

Zum Glück wird das Problem sehr ernst genommen, und es wird nach Lösungen gesucht. Hier sind einige der Ansätze, die verfolgt und teilweise auch schon praktiziert werden.

1. Sandbox: Den Schaden in Schach halten

Bei einer Sandbox wird eine abgeschottete Umgebung geschaffen, in der die Software betrieben wird. Der Vorteil: Diese Umgebung muss nur ein einziges Mal programmiert werden, und sollte dementsprechend sorgfältig überprüft werden. Selbst wenn ein Angreifer es schafft, die eigentliche Software zu unterwandern, so ist der Schaden auf die Sandbox begrenzt. Auch in der Sandbox gefundene Schwachstellen brauchen nur ein mal korrigiert zu werden, egal, für wie viele Programme die Sandbox eingesetzt wird.

2. Bounties: Menschen auf die Fehler ansetzen

In der Vergangenheit wurden Sicherheitsforscher, die Softwarehersteller auf Schwachstellen hinwiesen, oft ignoriert, und manchmal sogar mit rechtlichen Schritten bedroht. Das hat sich geändert. Die größeren Hersteller haben angefangen, Prämien für das Finden von Sicherheitslücken auszuschreiben. Es gibt inzwischen sogar Wettkämpfe.

3. Sichere Hardware: Sicherheit im Kern verbaut

An kritischen Stellen werden sicherheitsrelevante Funktionen nicht mehr in Software, sondern in Hardware realisiert. Allen voran Apple, die Sicherheit zu einem zentralen Marketingfeature gemacht haben. Es wird auch viel in diesem Bereich geforscht. Das Forschungsprojekt CHERI hat zum Ziel, verschiedene Sicherheitsfunktionen, wie den Schutz des Speichers zum Beispiel, direkt in einem generischen Chip zu realisieren.

4. Formale Methoden: Sicherheit beweisen

Wenn Systeme über formale Spezifikationen beschrieben werden, so lassen sich darauf basierend bestimmte Eigenschaften mathematisch nachweisen. Dieser Ansatz wird schon länger im Bereich der funktionalen Sicherheit eingesetzt, ist aber auch bei der Angriffssicherheit effektiv, wenn auch leider sehr aufwändig. Mit diesem Ansatz wurde im Rahmen des Forschungsprojekts SMACCM eine Software für die Steuerung von Flugdrohnen entwickelt. Der generierte Quellcode wurde offengelegt und bisher noch keine Schwachstelle gefunden.

5. Versicherung: Das Risiko minimieren

Trotz all dieser Entwicklungen ist klar: Eine Nachhaltige Lösung für Computersicherheit gibt es nicht, und wird es auch so schnell nicht geben. Aber wir Menschen haben ja längst einen Weg gefunden, um mit Risiken umzugehen: Inzwischen werden immer öfter Risiken bezüglich Angriffssicherheit mit Versicherungen abgefangen. Das wird auch durch den Gesetzgeber unterstützt. Dieser fordert zum einen in immer mehr Ländern, dass Sicherheitsprobleme und Angriffe veröffentlicht werden; zum anderen werden die bisher eher laxen Haftungsfragen gestrafft. Beides fördert das Interesse an Lösungen für die betriebswirtschaftliche Risikominimierung, und die Versicherung ist nun mal ein altbewährtes Werkzeug.

Fazit

Das Thema Angriffssicherheit ist so akut wie nie zuvor, insbesondere durch das Internet der Dinge. Ich hoffe inständig, dass die Industrie das Thema proaktiv angeht, insbesondere die Automobilindustrie im Moment. Wenn hier zu lange gewartet wird und es zu viele auf Sicherheit zurückzuführende Katastrophen gibt, dann hat die Industrie die Chance versäumt, sich selbst zu regulieren, und der Gesetzgeber wird es tun.

Bild: Lewis Ngugi / Unsplash

Michael Jastram

Creator and Author of SE-Trends