Buffer Overflow Attack

Was ist ein Buffer Overflow & was ist eine Buffer-Overflow-Attacke?

Buffer Overflow bedeutet übersetzt Pufferüberlauf. Ein Puffer ist ein temporärer Datenspeicher von bestimmter Speicherkapazität. Versucht ein Programm oder Prozess in diesem Puffer mehr Daten abzuspeichern als vorgesehen, ist der Buffer Overflow die Folge. Der abzuspeichernde Informations-Überschuss führt dazu, dass die Daten benachbarter Puffer überschrieben werden. Der Pufferüberlauf ist ein typischer Programmierfehler bei Software, wird allerdings auch von Cyberkriminellen im Rahmen einer Buffer-Overflow-Attacke eingesetzt. Erste Angriffe dieser Art gehen bereits auf die 1980er-Jahre zurück. Die Buffer Overflows sind Teil einer Gruppe von Schwachstellen. Je nach Verwundbarkeit wird die Bezeichnung Integer Overflow, Heap Overflow oder Stack Overflow verwendet.

Wie kommt es zum Buffer Overflow?

Während eine Software läuft, legt diese Variablen, Parameter und Rücksprungadressen im Arbeitsspeicher ab. Dieser Bereich im Arbeitsspeicher wird als Stack bezeichnet. Wenn das Programm jetzt zum Beispiel eine zu lange Zeichenkette in eine Puffervariable mit unzureichendem Platz schreibt, werden darauffolgende Variablen und möglicherweise auch die Rücksprungsadresse überschrieben. Es kommt zum Buffer Overflow. Der Speicherbereich der Zieladresse ist also nicht groß genug für die Daten, folgende Datenfelder werden einfach überschrieben. In der Folge stürzt das Programm meist ab. Schuld ist der Programmierer, der die Länge der Daten nicht erst ausreichend geprüft hat.

Wie funktionieren Buffer-Overflow-Attacken?

Bei einem ungeplanten Buffer Overflow springt die Software nach Beendigung der aktuellen Funktion zu einer zufälligen Speicheradresse und der Anwender erhält eine Speicherzugriffsfehler-Meldung. Ein Angreifer hingegen kann die Rücksprungsadresse gezielt manipulieren und auf einen gewünschten Speicherbereich verweisen. Er kann eigene Anweisungen hinterlegen und diese ausführen lassen. Auf diese Weise hat der Cyberkriminelle einen “Exploit“ entwickelt. Im Rahmen einer gezielten Buffer Overflow Attacke enthalten die Daten gefährlichen Schadcode, der auf dem Rechner des Opfers entsprechende Aktionen auslöst und zum Beispiel Daten beschädigt oder zum Diebstahl persönlicher Daten führen kann. Wirksamen Schutz vor Buffer Overflows kann nur der Software-Hersteller bieten.

Beispiel vom Juli 2000

Damals gab es eine schwerwiegende Buffer Overflow Lücke in Outlook Express und Microsoft Outlook. Aufgrund eines Programmierfehlers konnte ein Angreifer allein durch den Versand einer E-Mail in den PC eindringen. Der Anwender musste weder den Anhang noch die E-Mail selbst öffnen, um zum Opfer der Attacke zu werden. Ein Fehler im Message-Header-Mechanismus machte den Angriff möglich. Um die Sicherheitslücke zu schließen, hat Microsoft nach der Entdeckung der Lücke ein Patch bereitgestellt.