SIT_Logo

Aufräumen

  • Autor:
  • Mit Sicherheitslücken bringt man auch Fachleute zum Staunen. An alles wurde gedacht, an Benutzerauthentisierung, Zugriffskontrolle, Verschlüsselung, Firewall und VPN. Aber dass ein Angreifer eine manipulierte Datei hochlädt und mit einigen Tricks und geratenen Parametern erreicht, dass sie von einer direkt gar nicht zugänglichen Komponente verarbeitet wird, wer kann damit schon rechnen? Solche Situationen sind häufig und in anderen Bereichen gut untersucht. Die Probleme heißen Komplexität und enge Kopplung. Abhilfe ist möglich, erfordert aber eine gründliche Analyse.

    28. März 1979, Harrisburg, Pennsylvania, Kernkraftwerk Three Mile Island, Block 2. Aus einem Leck im Sekundärkreislauf tropft Wasser. Nicht viel und eigentlich ungefährlich, doch in Harrisburg tropft es in ein Druckluftsystem. Die Druckluft steuert andere Geräte, darunter die Speisepumpen des Sekundärkreislaufs. Sie fallen infolge der kleinen Störung aus.

    Das Sicherheitssystem reagiert wie vorgesehen: es schaltet Ersatzpumpen ein. Sie springen auch an, doch umsonst. Nach Wartungsarbeiten hatte man vergessen, zwei Ventile wieder zu öffnen. Im Leitstand ist nur zu sehen, dass die Pumpen arbeiten. Der Zustand der Ventile wird nicht angezeigt.

    Im Primärkreislauf steigen Druck und Temperatur, der Reaktor schaltet sich ab. Er muss jedoch weiter gekühlt werden, um Nachwärme abzuführen. Druck und Temperatur steigen weiter. Zur Entlastung öffnet sich ein Sicherheitsventil, auch dies wie vorgesehen. Nicht vorgesehen ist, dass es offen bleibt. Die Mannschaft auf dem Leitstand merkt davon nichts, ihr wird angezeigt, dass das Ventil den Befehl zum Schließen erhalten hat.

    13 Sekunden sind bis zu diesem Punkt vergangen. Der Reaktor erzeugt Wärme und sein Kühlwasser verdampft durch das offene Ventil. Das vorletzte Sicherheitssystem – Hochdruckpumpen, die kaltes Wasser in den Reaktor pressen – wird nach kurzer Zeit abgeschaltet. Man fürchtet Schäden am Reaktor durch die hohe Belastung. Zum Schaden kommt es nun erst recht, denn das verdampfende Kühlwasser wird nicht ersetzt.

    Dass der Unfall dennoch glimpflich ablief, ist allein passiven Systemen zu verdanken. Die Schmelze blieb auf das Innere des Reaktors beschränkt und auch der Sicherheitsbehälter um den Reaktorraum blieb unbeschädigt.

    Wer trägt die Schuld an solchen Unfällen, was ist ihre Ursache? Charles Perrow hat diese Frage in seinem Buch Normal Accidents untersucht, dem der skizzierte Ablauf entnommen ist. Er gründet darauf eine Theorie des Systemversagens: Unfälle und Katastrophen, die ein System aus sich selbst heraus verursacht.

    Unfallursache sind nach Perrow Komplexität und enge Kopplung innerhalb des Systems, Faktoren, die uns auch in der IT-Sicherheit immer wieder begegnen. Zum Unfallrisiko gesellen sich hier allerdings noch Angreifer, die ein Ziel verfolgen.

    In komplexen Systemen kommt es zu Wechselwirkungen, die schwer vorherzusagen sind. Komponenten interagieren miteinander; geplant oder ungeplant, gewollt oder durch Manipulationen. Die Mehrfachnutzung von Ressourcen zum Beispiel kann zu solchen Wechselwirkungen führen. Systeme und Komponenten können einander beeinflussen, wenn sie dasselbe Netz, denselben Host, dieselben Dienste nutzen. Wozu die heute angesagten serviceorientierten Architekturen übrigens einladen.

    Ein weiterer Komplexitätsfaktor ist unvollständige Information. Wer weiß schon genau, was im Inneren eines Systems geschieht, welche Annahmen die Entwickler gemacht haben, wie sich die Konfiguration im Detail auswirkt? Detaillierte Sicherheitsdokumentation ist selten, Administratoren und Manager arbeiten oft im Blindflug und nach Gefühl.

    Die enge Kopplung von Systemen und Komponenten führt dazu, dass Störungen und Angriffe an einer Stelle sofort auf andere Komponenten und Systeme durchschlagen. Enge Kopplung finden wir zum Beispiel überall dort, wo die Sicherheit eines Systems von der korrekten Funktion eines anderen abhängt: von zentralen Diensten wie Single Sign-on, Directory, PKI oder Servern, von Sicherheitskomponenten oder einfach davon, dass eine bestimmte Komponente keine kritischen Fehler enthält.

    Sicherheit fängt mit der Analyse von Abhängigkeiten und möglichen Wechselwirkungen an. Wovon wird eine Komponente direkt oder indirekt beeinflusst, von wo gelangen Daten zu ihr? Worauf verlässt sie sich, welche Anforderungen stellt sie an ihre Umgebung? Welche Fehler an anderer Stelle kann sie kompensieren und welche nicht? Was muss die Komponente selbst leisten, um das System zu schützen?

    Nach einer solchen Analyse kann man sich daran machen, die Komplexität zu reduzieren und unnötige Abhängigkeiten zu beseitigen. Das Ziel ist Fehlertoleranz, der Idealzustand ein System, in dem jede Störung nur lokale Auswirkungen haben kann. Die Sicherheit jeder Komponente und des Gesamtsystems soll von möglichst wenigen Randbedingungen abhängen. Die gern genutzte Analogie von einer Kette und ihrem schwächsten Glied passt nicht, denn die wenigsten Systeme linear.


  • Sven Türpe ist Informatiker und räumt im Testlabor IT-Sicherheit am Fraunhofer-Institut SIT Systeme auf.