Ein Buffer Overflow (deutsch: Pufferüberlauf) ist eine Speicherzugriffsfehlersituation, bei der ein Programm mehr Daten in einen Speicherpuffer schreibt, als dieser aufnehmen kann. Er entsteht, wenn ein Programm mehr Daten in einen begrenzten Speicherbereich schreibt, als dieser aufnehmen kann, und dabei angrenzenden Speicher überschreibt.
Solche Fehler treten besonders in hardwarenahen Sprachen wie C und C++ auf, wenn Speichergrößen, Array-Grenzen oder Eingabelängen nicht korrekt geprüft werden. Moderne speichersichere Sprachen verhindern viele dieser Fehler automatisch, beseitigen aber nicht jede mögliche Schwachstelle.
Wie entsteht ein Buffer Overflow?
Pufferreservierung: Das Programm legt einen Speicherbereich für eine bestimmte Anzahl von Zeichen an.
Überlauf durch Eingabe: Werden mehr Zeichen hineinkopiert, als vorgesehen, ohne Längenprüfung, überschreibt die Eingabe angrenzende Speicherbereiche.
Art des Überlaufs: Je nach Speicherbereich unterscheidet man zwischen stackbasierten und heapbasierten Buffer Overflows.
Analyse notwendig: Nicht jeder Absturz durch lange Eingaben ist automatisch ein Buffer Overflow; die Ursache muss technisch geprüft werden.
Welche Folgen sind möglich?
Daten können beschädigt werden
Prozesse können abstürzen
Sicherheitsmechanismen können umgangen werden
Unter bestimmten Bedingungen: Angreifer können unbefugte Befehle ausführen oder Schadcode einschleusen, wenn sie den überschriebenen Speicher gezielt kontrollieren.
Auswirkungen: betreffen Verfügbarkeit, Integrität und Vertraulichkeit eines Systems. Das tatsächliche Risiko hängt von der betroffenen Komponente, den vorhandenen Schutzmechanismen und den Rechten des Prozesses ab.
Wie lassen sich Buffer Overflows verhindern?
Grenzen prüfen: Längen, Indizes und Speichergrößen müssen vor jedem Lese- oder Schreibzugriff zuverlässig validiert werden.
Sichere APIs einsetzen: Unsichere Kopierfunktionen sollten vermieden oder durch Varianten ersetzt werden, die Zielgrößen berücksichtigen.
Speichersichere Sprachen nutzen: Wo es technisch sinnvoll ist, reduzieren Sprachen mit automatischer Speicherverwaltung und Bounds Checking das Risiko.
Code analysieren und testen: Statische Analyse, Code-Reviews, Sanitizer und Fuzz Testing helfen, Speicherfehler vor der Veröffentlichung zu erkennen.
Systeme aktuell halten: Bibliotheken, Compiler und Laufzeitumgebungen sollten regelmäßig aktualisiert werden, damit bekannte Schwachstellen geschlossen werden.
Welche Schutzmechanismen begrenzen die Auswirkungen?
Stack Canaries, Address Space Layout Randomization und nicht ausführbare Speicherbereiche erschweren die Ausnutzung eines Buffer Overflows. Diese Mechanismen sind wichtige zusätzliche Schutzschichten, ersetzen aber nicht die Behebung des fehlerhaften Speicherzugriffs im Quellcode.
Know Your Customer: Intelligente Suche und personalisierte Produktempfehlungen im Fokus Integration der epoq-Personalisierungslösungen Ergebnis: Kundenzufriedenheits- und Umsatzsteigerung Personalisieren Sie das...
AEVO: Die Grundvoraussetzung für qualifizierte Ausbilder in Deutschland Die Rolle eines Ausbilders: Mehr als nur Wissensvermittlung Ausbildung bei alkima WEB...
Inklusives Web: Was bedeutet eine digitale Barrierefreiheit? Ist digitale Barrierefreiheit eine Notwendigkeit für jede Website? Barrierefreie Websites: Mehr als nur...
Website-Relaunch-Checkliste: Gründe für eine Überarbeitung Schwachstellen erkennen – Aufgaben definieren Die Roadmap zum Relaunch: Das Website-Konzept erstellen Onlineshop-Relaunch: Das richtige...
Ein Überblick Warum Schriftarten lokal einbinden? DSGVO-Konform werden Ein Überblick Seit einiger Zeit macht eine sogenannte “Google Font Abmahnwelle” die...
Usercentrics - Der Partner für DSGVO-Konformität Welche Lösungen bietet Usercentrics? Website Consent Management App Consent Management Datenschutz-Audit Analyse- und Berichtsfunktionen...
Wer ist Findologic? Welche Lösungen bietet Findologic? Suche / Empfehlungen / Einkaufsführer Engagement-Suite Navigation Merchandising Partnerschaft mit Findologic Wer ist...
Lesezeit: 1 Minute
Zuletzt aktualisiert: 24.06.2025
12.07.2022
Artikel lesen
Kontaktieren Sie uns
Wir beraten Sie gerne und finden die perfekte Lösung für Sie. Lassen Sie sich von unseren Ideen inspirieren!