Buffer Overflow
Was ist ein Buffer Overflow?
Ein Buffer Overflow (Pufferüberlauf) ist ein klassischer Programmierfehler, bei dem ein Programm mehr Daten in einen Speicherbereich schreibt, als dieser aufnehmen kann.
Das Ergebnis: Manipulation des Speichers – oft mit dem Ziel, Code einzuschleusen oder das System zu übernehmen.
Ablauf & Schutzmechanismen
Typischer Ablauf:
-
Eingabe ohne Längenprüfung
-
Speicherbereich wird überfüllt
-
Rücksprungadresse oder Datenstruktur wird überschrieben
-
Ausführung von Schadcode (z. B. Shellcode)
Schutztechnologien:
-
Stack Canaries
-
DEP/NX-Bit (Data Execution Prevention)
-
ASLR (Address Space Layout Randomization)
-
sichere Programmiersprachen (z. B. Rust)
Bedeutung für Unternehmen
Buffer Overflows gehören zu den gefährlichsten Schwachstellen – gerade in Altsoftware, eingebetteten Systemen oder sicherheitskritischen Geräten (z. B. Medizintechnik, Automotive).
Sie ermöglichen vollständige Systemübernahmen.
Standards & Empfehlungen
-
OWASP Top 10 – A1: Injection/Memory Issues
-
CERT Secure Coding Guidelines
-
BSI TR-02102 für sichere Softwareentwicklung
-
ISO 27034 (Application Security)
Verwandte Begriffe
-
Memory Corruption
-
Secure Coding
-
SAST
-
Shellcode
Beispiel
Ein veralteter IoT-Router enthielt einen Buffer Overflow in der Login-Komponente. Über einen manipulierten HTTP-Request konnte Remote Shellcode ausgeführt werden – hunderttausende Geräte weltweit betroffen.