Definition Buffer Overflow (Pufferüberlauf) Was ist ein Pufferüberlauf (Buffer Overflow)?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Peter Schmitz

Der Pufferüberlauf ist eine oft auftretende und häufig ausgenutzte Sicherheitslücke. Ein Pufferüberlauf tritt auf, wenn es gelingt, mehr Daten in einen Speicher zu schreiben, als der dafür vorgesehene Puffer aufnehmen kann. Dadurch werden angrenzende Speicherbereiche mit Daten beschrieben. Die Folge eines Buffer Overflows können Programmabstürze, Kompromittierung der Daten, Verschaffen erweiterter Rechte oder Ausführung von Schadcode sein.

Ein Pufferüberlauf (Buffer Overflow) ist eine häufige ausgenutzte Sicherheitslücke in Software und Anwendungen, bei der mehr Daten in einen Speicherberiech geschrieben werden, als dieser aufnehmen kann.
Ein Pufferüberlauf (Buffer Overflow) ist eine häufige ausgenutzte Sicherheitslücke in Software und Anwendungen, bei der mehr Daten in einen Speicherberiech geschrieben werden, als dieser aufnehmen kann.
(Bild: gemeinfrei / Pixabay )

Der deutsche Begriff für Buffer Overflow lautet Pufferüberlauf. Es handelt sich um eine häufig auftretende und oft für Angriffe ausgenutzte Sicherheitslücke. Sowohl lokal betriebene Software als auch Internet-Dienste und Web-Anwendungen können von der Sicherheitslücke eines Pufferüberlaufs betroffen sein. Ein Buffer Overflow tritt auf, wenn es gelingt, mehr Daten in einen reservierten Speicherbereich (Puffer) zu schreiben, als im Puffer dafür vorgesehen ist. Dadurch werden benachbarte Speicherbereiche mit Daten befüllt. Je nach konkreter technischer Ausgestaltung des Buffer Overflows gibt es verschiedene Arten wie den Stack Overflow, den Heap Overflow, den Integer Overflow, den Pointer Overflow oder den String Overflow. Gelingt es Daten in einen nicht dafür vorgesehen Speicherbereich zu schreiben, können unterschiedliche Folgen auftreten wie Programmabstürze, Kompromittierung von Daten, Verschaffen erweiterter Rechte oder Ausführung von Schadcode. Oft sind Programmierfehler oder konzeptionelle Schwächen einer Software die Ursache für die Anfälligkeit für einen Buffer Overflow.

Ursachen für einen Pufferüberlauf

Die Ursachen für einen Pufferüberlauf sind vielfältig. Oft ist die Anfälligkeit bereits in der Architektur der Computersysteme zu finden, wenn beispielsweise Daten und Programme im gleichen Speicher liegen. Programmiersprachen sind ebenfalls eine Ursache für die Anfälligkeit für Buffer Overflows. Einige Programmiersprachen wie C oder C++ bieten nur eingeschränkte Möglichkeiten, die Einhaltung der Grenzen von Speicherbereichen automatisiert zu überwachen. Weitere Ursachen sind die mangelhafte Prüfung von User-Eingaben oder von Datentransfers über Datenschnittstellen.

Folgen eines Buffer Overflows

Ein Buffer Overflow kann für die betroffene Anwendung, die verarbeiteten Daten oder das ausführende System gravierende Folgen haben. Pufferüberläufe können lokal auftreten oder über Netzwerke wie das Internet ausgelöst werden. Werden nicht dafür vorgesehen Speicherbereiche mit Daten beschrieben, führt dies unter Umständen zur Überlastung des Systems, zu mangelnder Verfügbarkeit, zum Absturz der Anwendung oder zum Überschreiben, Beschädigen oder Kompromittieren vorhandener Daten. Oft versuchen sich Angreifer über einen Pufferüberlauf erweiterte Systemrechte zu verschaffen. Im schlimmsten Fall gelingt ihnen die Ausführung von beliebigem, bösartigem Programmcode oder die komplette Übernahme des Systems.

Schutzmaßnahmen vor einem Buffer Overflow

Schutzmaßnahmen vor einem Buffer Overflow sind:

  • Verwendung von Programmiersprachen, die für Pufferüberläufe weniger anfällig sind und die die Einhaltung der zugewiesenen Speicherbereiche kontrollieren wie Java, Python oder C#
  • Verwendung von Compilern mit automatisierten Prüfungsfunktionen
  • Überprüfung aller Programmcodeteile, die User-Eingaben oder externe Daten akzeptieren und verarbeiten
  • Überprüfung der Größe und der Inhalte der Dateneingaben sowie der Feldgrenzen
  • regelmäßiges Scannen und automatisierte Prüfung der Logfiles oder Fehlerberichte auf Anzeichen für Pufferüberläufe
  • zeitnahes Einspielen von neuen Softwareversionen, Updates und Patches
  • keine Nutzung veralteter Software oder Anwendungen

(ID:47614341)

Über den Autor