Buffer Overflow
Pufferüberlauf
Buffer Overflow
Ein Pufferüberlauf entsteht, wenn ein Programm mehr Daten in einen Speicherbereich schreibt, als dieser fassen kann, und dabei benachbarten Speicher überschreibt. Geschickt ausgenutzt, kann ein Angreifer so eigenen Code zur Ausführung bringen. Es ist eine der ältesten und folgenreichsten Klassen von Software-Schwachstellen.
Historie & Fakten. Pufferüberläufe entstehen vor allem in Sprachen ohne automatische Speichergrenzenprüfung; ein klassischer Fall ist das Überschreiben der Rücksprungadresse auf dem Stack, sodass der Programmfluss auf vom Angreifer eingeschleusten Code umgelenkt wird. Diese Schwachstellenklasse prägte über Jahrzehnte die Angriffslandschaft und steht beispielhaft für die Kategorien, die in Klassifikations-Schema für Software-Schwachstellen (CWE) systematisch erfasst sind. Schutzmechanismen wie nicht ausführbarer Speicher und Adressraum-Zufälligkeit (ASLR) erschweren die Ausnutzung, beseitigen sie aber nicht.
Ausblick & Empfehlung. Vorbeugung beginnt beim Code: speichersichere Sprachen oder sorgfältige Grenzenprüfungen, ergänzt um die genannten Schutzmechanismen und um statische sowie dynamische Tests. Da viele Bestandssysteme weiterhin in maschinennahen Sprachen geschrieben sind, bleibt die Klasse relevant. Für Verteidiger zählt vor allem schnelles Patchen, sobald ein entsprechender Allgemeine Schwachstellen und Risiken (CVE) bekannt wird — gerade bei aus dem Netz erreichbaren Diensten.