Patch me if you can: Was wir aus Spectre, Meltdown und Foreshadow lernen können
Dass IT-Sicherheit nur noch schwer beherrschbar ist, hängt mit der Komplexität der IT zusammen, denken viele. Doch so einfach ist es nicht – zum Glück.
- David Fuhr
Komplexität ist in letzter Zeit in Verruf gekommen. Ob Spectre v1/v2/v3/v4, Meltdown oder Foreshadow, immer scheint das Problem, dass wir das Gesamte nicht mehr ausreichend überblicken können. Dabei ist es so einfach nicht. Anders gesagt, eine Ebene höher ist das Thema, nun ja, komplexer, also vielschichtiger. Komplexität kommt nämlich in verschiedenen Geschmacksrichtungen daher.
Exponentieller Anstieg von Vorteil
In der theoretischen Informatik beschreibt der Begriff den Aufwand der Lösung von Problemen beziehungsweise von Rezepten für diese, also Algorithmen. Hohe, zum Beispiel „exponentielle“ Komplexität ist ein Problem für Laufzeit oder Speicherverbrauch und damit für die Effizienz oder sogar die prinzipielle Machbarkeit von Programmen, aber nicht für die Security.
Im Gegenteil: Exponentielles Wachstum stellt beispielsweise sicher, dass etwa ein vergleichsweise kurzes zufälliges Passwort von 40 Zeichen zu Lebzeiten des Universums nicht durch reines Ausprobieren zu erraten ist. Was hier gut für die Security ist, ist an anderer Stelle zwiespältig zusehen: Auch beim Fuzzing haben meist weder Angreifer noch Verteidiger eine Chance, alle möglichen Eingaben auch nur annähernd durchzutesten.
Die zweite Verwendung des Wortes Komplexität bezieht sich auf sogenanntes emergentes Verhalten: Schon bei mittelgroßen Systemen stellen sich Effekte ein, die mit Blick auf das Einzelne schwer vorhersagbar sind. Das Ganze ist mehr als die Summe seiner Teile, Systemtheorie 101 meets Chaosforschung.
Ob das gut oder schlecht ist, hängt vom jeweiligen Anwendungsfall und vom Betrachtungswinkel ab. Was für die einen ein Stück Safety beim Joggen darstellt, ist für die anderen eine Bedrohung der nationalen Sicherheit auf Militärbasen.
Die ethische Diskussion um maschinelles Lernen, wo in guter frankensteinscher Tradition der Oberstufenmathematik ein bisschen Magie eingehaucht wird, hat gerade erst begonnen. Auch fĂĽr die Security handelt es sich hier um ein noch weitgehend unbekanntes Terrain.
Der Weg der Erkenntnis
Der dritte Zusammenhang, in dem Komplexität ins diskursive Spiel kommt, ist der des „Ich habs ja gleich gesagt“. Zu viele Abstraktionsebenen bieten Platz für immer mehr Seitenkanäle – Meltdown, Spectre, Rowhammer und Co. lassen grüßen. Auch ich habe in mehreren Artikeln wieder und wieder in die Wüste gerufen, dass Komplexität der Todfeind der Security sei. Wie wir gesehen haben, ist das nicht grundsätzlich der Fall.
Zwar ist es richtig, dass sich mit jeder weiteren Ebene die Anzahl möglicher Angriffsvektoren vervielfacht. Andererseits sind Systeme, die wir noch komplett durchschauen, lächerlich klein und uninteressant. Wir kommen also nicht darum herum, mit der Komplexität zu arbeiten, die nach dem Zen von Python zwar schlechter als Einfachheit, aber immerhin besser als Kompliziertheit ist.
Der Unterschied zwischen Letzteren beiden besteht darin, dass Komplexität eine Eigenschaft des Systems ist, die wir nicht ganz abstellen können, ohne es seiner Existenzberechtigung zu berauben. Kompliziertheit hingegen ist ein Maß für die Unwissenheit des Betrachters. Häufig sagen wir „komplex“, wenn wir eine solche nicht zugeben wollen.
Fazit
Der Hauptfeind der Security ist nicht einfach Komplexität. Sondern viel eher Blauäugigkeit: unverdientes Vertrauen in unseren eigenen Totaldurchblick. Die Hybris unserer Beherrschung komplexer Systeme beschränkt sich dabei nicht auf die IT.
Es ist erforderlich, dass wir Augenöffner wie Spectre als Chance begreifen, die Lücken unseres Verständnisses der Komplexität zu schließen und Methoden zu entwickeln, die ihr angemessen sind. Diese Kolumne soll ein Anlass sein, sich mit Vergnügen immer genau das vorzuknöpfen, was heute noch kompliziert scheint.
Diese Kolumne ist in iX 3/2018 erschienen, bildete den Auftakt zur Reihe und wurde fĂĽr die Online-Ausgabe aktualisiert.
(ur)