IT Security
Risiko einprogrammiert
IT Security
Microsoft wurde also wieder einmal gehackt und Teile seiner Website “umgestaltet”. Einerseits muss ich dazu anmerken, dass jedes solches Hacken offensichtlich illegal und falsch ist; andererseits muss ich einräumen, dass die “Krone der Kronen” des Hackens errungen wurde – der ultimative “Totem-Hack”.
Sehr viele Hacker tun, was sie tun, um Respekt von ihren Kumpeln zu erhalten. In dieser Hinsicht hat das Manipulieren von Websites sehr viel mit den Jugend-Gangs zu tun, die etwa S-Bahn-Züge und -Tunnel mit ihren Slogans “dekorieren”. In London hat beispielsweise jemand einen langen schwierigen Abstieg durch einen Kamin machen müssen, um einen Tunnel mit Graffiti zu verzieren. Man kann den Einfallsreichtum und die handwerklichen Fähigkeiten – manchmal sogar die künstlerische Qualität – dieses Graffiti-Malers bewundern, selbst wenn man sich von dem impliziten Vandalismus seiner Taten distanziert.
Ähnliche Bewunderung lässt sich allerdings nicht den Hackern entgegenbringen, die Web-Seiten entstellen. Man braucht keine wirklichen Fähigkeiten, um irgendeins der Tausenden von Hacking-Scripts laufen zu lassen, die im Internet erhältlich sind; man braucht auch kein wirkliches Talent, um eigenen SQL-Code einzuschleusen, um die Microsoft-Site zu manipulieren.
Das führt allerdings zu einer Frage: Wenn der Hack selbst so einfach war, dass er niemanden beeindruckt, wie kann es dann passieren, dass eine so um ihre Sicherheit besorgte Organisation wie Microsoft von dieser Attacke getroffen wurde? Und man sollte sich nicht täuschen: Nachdem Microsoft so lange Zielscheibe für Beleidigungen und Spott war, ist man dort sehr auf Sicherheit bedacht.
Die Antwort liegt in der Herangehensweise, mit der Microsoft-Entwickler sich dem Vorgang der Software-Programmierung widmen – insbesondere dem Umgang mit Ausnahmen. Eine Ausnahme ist eine Situation, in der ein Programm Input entdecken und bearbeiten muss, der sich außerhalb der normalen Parameter befindet. Bei der Attacke mit SQL wurde Input erwartet, der irgendwie wie normale alphabetische Zeichen ist, ein Name beispielsweise. Stattdessen kamen SQL-Befehle, die die unvorbereitete SQL-Backend-Datenbank verarbeiten musste.
Es gibt zwei Formen des Umgangs mit solchen Ausnahmen: Bei der einen existiert eine Liste von Zeichen, die ausgeschlossen werden; bei der anderen gibt es eine Liste der erlaubten Zeichen. Die meisten Software-Entwicklergemeinden wie große Firmen wählen eine der beiden Methoden.
Es scheint, als habe Microsoft die Ausnahmen gewohnheitsmäßig durch Ausschluss gemanagt: Wenn ein Zeichen als ungültig erkannt wird, werden die Routinen zur Fehlerbehebung aufgerufen. Das Problem des Ansatzes besteht darin, dass der Entwickler potentiell feindseligen Input übersehen haben kann, wie Microsoft im SQL-Fall. Im Ergebnis wird die Sicherheit verletzt, was die Internet-Gemeinde auf eigene Kosten seit Jahren lernen muss.
Bei den anderen Methodologien muss dagegen der Input mit einem eingeschränkten Alphabet formuliert werden. Wenn der Input dem nicht entspricht, wird ein Fehler gemeldet, ganz egal, was der Zeichenwert bedeutet.
Microsoft muss nun dringend seine gesamte Philosophie der Software-Entwicklung überdenken. Input sollte stringent überwacht werden und nur Zeichen zulassen, wenn bekannt ist, dass sie erwünscht sind. Dann könnten wir alle ruhiger schlafen.