Pufferüberlaufs Fehler


Beim Pufferüberlaufs (engl. buffer overflow) Angriff versucht ein Angreifer gezielt, durch Eingabe von Daten, das System zu manipulieren.

Technisch funktioniert ein Pufferüberlaufsangriff in etwa folgendermaßen:

Programmcode muss zur Ausführung in den Arbeitsspeicher geladen werden. Um Variablen, Berechnungsergebnisse und ähnliches nachträglich belegen zu können, werden beim Programmstart hierfür Speicherbereiche, sog. Puffer, reserviert. Diese haben eine bestimmte vordefinierte Größe. Mitunter kommt es vor, dass der nachfolgende Speicher von einem anderen Programmteil belegt wird. Wenn es nun gelingt, einen Wert zu generieren, der in den reservierten Puffer geschrieben werden soll, der aber die Größe des Puffers übersteigt, kann es passieren, dass der zu schreibende Wert nicht nur den reservierten Speicherbereich, sondern auch den nachfolgenden Speicherbereich überschreibt.

Sollte es sich bei diesem Speicherbereich um einen Bereich handeln, in dem eine Programmroutine abgelegt ist, so wäre ein Angreifer nun in der Lage, die Programmroutine umzuschreiben.
Aber auch das Überschreiben von Konstanten, Variablen oder aber auch von Codebruchstücken anderer Programme wäre denkbar.

Warum dies gefährlich für die Integrität eines Systems ist, bedarf wohl keiner weiteren Erklärung mehr.

Doch wie schützt man sich gegen diese Problematik??

Als Administrator hat man eigentlich nur eine Chance: Aufmerksames Verfolgen der Entwicklung eines Programmes. Sollte hierbei ein Update auftauchen das einen solchen Fehler behebt, so muss der Administrator dieses Update sofort einspielen.
Viel wichtiger aber ist es, dass die Programmierer nach Beendigung eines Projektes dieses bei jeder Gelegenheit noch einmal überarbeiten. Dies allerdings ist gerade dann, wenn mit der Programmierung Geld verdient werden soll eine idealistische und nur bedingt realisierbare Forderung.

Kontaktadresse







Valid HTML 4.01!