Definition „Buffer Overflow“ Was ist ein Pufferüberlauf?
Anbieter zum Thema
Unter einem Pufferüberlauf oder Buffer Overflow ist eine Überflutung eines Zwischenspeichers mit zu großen Datenmengen zu verstehen. Benachbarte Daten können dadurch kompromittiert oder beschädigt werden. Es handelt sich um eine ernste Sicherheitslücke.

Puffer („Buffer“) sind Zwischenspeicher, die von einem Programm bzw. einer Software verwendete Daten vorrätig und schnell zugreifbar halten. Die Software selbst teilt dem Betriebssystem den entsprechenden Bedarf mit.
Das OS hat anschließend den Auftrag, den entsprechenden Puffer zu reservieren, vornehmlich wird dies über physischen oder virtuellen Arbeitsspeicher realisiert. Zu einem Pufferüberlauf („Buffer Overflow“) kommt es, wenn zu viele Daten an den Zwischenspeicher geschickt werden. Dessen Volumen reicht nicht aus, um die Informationen aufzunehmen.
Die Folgen eines Pufferüberlaufs
Folgende Konsequenzen hat ein Pufferüberlauf:
- 1. Das benötigte Programm stürzt vermutlich ab, da die benötigten Informationen fehlen.
- 2. Die überschüssigen Daten laufen in die nebenstehenden Zwischenspeicher.
- 3. Hier werden Datensätze kompromittiert (d.h., nicht mehr abrufbar und angreifbar gemacht).
- 4. Andere Datensätze in den benachbarten Zwischenspeichern werden durch die Überflutung dauerhaft beschädigt.
Pufferüberlauf als Sicherheitsrisiko
Das Problem bei einem Pufferüberlauf ist vereinfacht gesagt, dass das System nicht weiß, wie es damit umgehen soll, da ein solches Ereignis nach der eigenen Logik nicht stattfinden sollte. Schließlich fanden eine Bedarfsmitteilung und eine entsprechende Reservierung an Speicherplatz im Puffer statt. Das Szenario, dass zu viele Informationen fließen, ist so eigentlich ausgeschlossen.
Dieser Umstand deutet bereits an, weshalb der Vorgang ein ernstes Sicherheitsrisiko darstellt. Dadurch, dass ein System mit dem Überlauf nicht umgehen kann, bietet sich unter anderem die Möglichkeit, Malware einzuschleusen. Dementsprechend kann ein Überlauf absichtlich provoziert sein. In die benachbarten Zwischenspeicher fließt dabei Schadcode, der beispielsweise Datendiebstahl ermöglicht.
Das bekannteste entsprechende Beispiel stammt aus dem Jahr 2000. Damals gab es in den Microsoft Outlook-Anwendungen einen Programmierfehler, der durch zu einem Pufferüberlauf führte. E-Mail-Viren konnten auf diese Weise sogar dann ins System eindringen, wenn der Empfänger der Nachricht diese nicht einmal öffnete. Verantwortlich war ein Fehler in der Header-Erkennung von Outlook. Schon beim Einlesen des Betreffs der Nachricht durch das System fand der Angriff statt.
Seit damals haben Buffer-Overflow-Attacken zunehmend zugenommen. Betroffen sind vor allem Anwendungen, die in der Programmiersprache C gehalten sind. Diese ermöglicht es besonders einfach, mangelhaft geschriebene Anwendungen zu einem Überlauf des Zwischenspeichers zu bewegen. Hier ist es möglich, dass der Software weiß gemacht wird, dass der Speicherplatz kleiner ausfällt als er eigentlich ist. Diese bittet das Betriebssystem deshalb um eine zu geringe Reservierung und das Unheil nimmt seinen Lauf.
Der versehentliche Pufferüberlauf
Freilich ist nicht jeder Pufferüberlauf Resultat eines kriminellen Angriffs. In vielen Fällen handelt es sich um ein Versehen. Verantwortlich sind zumeist Programmiersprachen, die nicht automatisiert die Grenzen der einzelnen Speicherbereiche überwachen können, um die Überflutung in benachbarte Puffer zu verhindern.
Neben C gilt dies beispielsweise auch für die Weiterentwicklung C++. Hier muss der entsprechende Code manuell eingegeben werden. Die Pascal-Sprachen verfügen hingegen beispielsweise über eine entsprechende Sicherheitsvorkehrung.
(ID:46667973)