Archiv


Die Trägheit: unsichere Programmierung

Wenn digitale Schädlinge den Weg in unsere Rechner finden, liegt das meistens an einer Schwachstelle in einer Software. Dabei müsste unsicherer Programmcode heute gar nicht mehr vorkommen. Oft ist die IT-Branche aber zu träge, um Altes neu zu programmieren.

Von Achim Killer |
    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. Das Schadprogramm verwendet den Exploit, um ausgeführt zu werden",

    so Mikko Hypönnen vom finnischen Anti-Viren-Unternehmen F-Secure. Professor Eckert nennt ein Beispiel:

    "Ein Klassiker ist der sogenannte Pufferüberlauf – Buffer-overflow-Angriff."

    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 eignen Schadcode, der dann im Speicher abgelegt wird, aufgerufen und ausgeführt werden kann - und dann beliebigen Unfug treiben kann."

    Der Computer interpretiert die überzähligen Daten aus dem Pufferüberlauf dann als Befehle, die er ausführt, obwohl es die Befehle eines Schadprogramms sind. 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. Und 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.


    Zur Übersichtsseite der Serie "Die sieben Todsünden der IT-Sicherheit"