Das Internet ist ein Biotop für digitales Ungeziefer. Für trojanische Pferde, heimtückischer als das antike Vorbild, für Key-Logger, die Tastatureingaben mitprotokollieren und für Bot-Software, die PCs in ferngesteuerte Zombies verwandelt. Und dieses schnüffelnde digitale Ungeziefer dringt über unzählige Software-Schwachstellen in die Rechner der Surfer ein. Warum gibt's eigentlich so viele Software-Schwachstellen, muss man sich da doch fragen.
"Also der systematische Grund ist, dass nach wie vor das unsichere Programmieren – so bezeichnet man das gerne - gang und gäbe ist," sagt Professor Claudia Eckert vom Lehrstuhl für Sicherheit in der Informatik der TU München. Fehler werden gemacht – und sie werden ausgenutzt. Das englische Wort dafür ist to exploit.
"Schadprogramme brauchen eine Möglichkeit, um in den Computer zu gelangen. Ein Beispiel sind diese sogenannten Drive-by-Downloads. Man surft eine Website mit einem Exploit an, der auf eine Schwachstelle im PC abzielt. Der Exploit wird dann dazu verwendet, das tatsächliche Schadprogramm zu installieren. Es verwendet den Exploit, um ausgeführt zu werden."
So Mikko Hyponnen vom finnischen Anti-Viren-Unternehmen F-Secure. Claudia Eckert nennt ein Beispiel:
"Ein Klassiker ist der sogenannte Pufferüberlauf – Buffer-overflow-Angriff."
Mittlerweile sind aus Bugs Sicherheitslöcher geworden
Ein Puffer ist ein reservierter Bereich im Arbeitsspeicher - beispielsweise für Daten aus dem Netz. Schickt etwa ein Webserver mehr Daten, als in diesen Puffer hineinpassen, dann ignoriert ein gut geschriebenes Programm die überzähligen Daten einfach. Bei einem schlechten hingegen kommt es zu einem Pufferüberlauf. Das Programm überschreibt mit den überschüssigen Daten Speicherbereiche, die nicht dafür vorgesehen sind.
"Da kann man sagen: Na und? Aber das Problem ist eben, dass man auf diese Weise einbringen kann durch diese überlangen Zeichenketten eigenen Schadcode, der dann im Speicher abgelegt wird, aufgerufen, ausgeführt werden kann, und dann beliebigen Unfug treiben kann."
Moderne Programmiersprachen verhindern deshalb Pufferüberläufe. Allein: Zu den beliebtesten Sprachen gehören nach wie vor C und C++. Die entstanden in den 70er- und 80er-Jahren des vergangenen Jahrhunderts, also lange vor dem modernen World Wide Web. Dementsprechend funktionieren sie. Und deshalb müssen die Anwender heute ständig ihre Programme flicken. Sie müssen regelmäßig Patches, Software-Flicken, installieren, die Sicherheitslücken nachträglich abdichten. Und manchmal geht nicht einmal das, weil Schadprogramme eine Software-Schwachstelle ausnutzen, für die noch gar kein Patch geschrieben wurde. Der wichtigste Grund für dieses gewaltige Flickwerk ist die unsichere Programmierung. Viele Programme, die ständig geflickt werden, sind denn auch in C oder in C++ geschrieben.
Das, was heute unsicheres Programmieren genannt wird, ist zu einer Zeit entstanden, als es noch nicht unsicher war, weil es damals noch kein Web gab. Ein Programmierfehler war damals halt ein Fehler, ein Bug - na ja. Mittlerweile aber sind aus Bugs Sicherheitslöcher geworden, durch die massenhaft digitales Ungeziefer in fremde Rechner eindringt und Daten abgreift. Die Software-Branche hätte darauf reagieren müssen. Die, die immer ihrer Kundschaft sagt, dass sie auf die neusten Entwicklungen im Web reagieren muss. Sie hat es nicht, weil sie träge ist. Und Trägheit ist eine Todsünde.