Das Wichtigste in Kürze
Beitrag teilen
Lesezeit 5 Minuten
Was ist ein Buffer-Overflow?
Ein Buffer-Overflow (auch: Pufferüberlauf) ist eine oft anzutreffende Quelle von Angriffspunkten in Programmen. Die Ursache ist eine fehlerhafte Behandlung von Eingaben und deren Länge.
Ein Puffer für Anmeldedaten kann beispielsweise so ausgelegt sein, dass er Eingaben von 12 Byte für den Benutzernamen verarbeiten kann. Wenn eine Eingabe eine Länge von 15 Byte umfasst, also 3 Byte mehr als erwartet, schreibt das Programm die überschüssigen Daten möglicherweise über die Puffergrenze hinaus.
In den überschriebene Speicherbereichen hätten normalerweise Prozessorbefehle, bestimmte Daten oder Adressen stehen sollen – was somit üblicherweise zu einem Absturz oder zumindest unerwünschtem Verhalten führt.
Buffer-Overflow-Angriff
Wird der Eingabestrom aber entsprechend gestaltet, kann über einen solchen Buffer-Overflow beliebiger Programmcode, auch Shell-Code genannt, eingeschleust und oft auch zur Ausführung gebracht werden.
Da der Angreifer bei einem Netzwerkdienst von remote aus arbeiten kann spricht man dann von einer Remote Code Execution Sicherheitslücke.
Sicherheitslücken dieser Kategorie gehören mit zu den schwersten IT-Schwachstellen und werden regelmäßig mit dem höchsten CVE-Score von 10.0 bewertet.
Buffer-Overflow-Exploits
Mit einem Buffer-Overflow-Exploit kann eine vorhandene Buffer-Overflow-Schwachstelle ausgenutzt. Das Ziel des Exploits ist der Zugriff auf das darunter liegende Betriebssystem von außen.
Dabei geht der Angreifer weit über das oben gezeigte einfache Beispiel hinaus und es wird direkt der Ausführungspfad so verändert, dass ein mit dem Buffer-Overflow mitgelieferte Shell-Code auch direkt zur Ausführung kommt.
Dieser Shell-Code enthält dabei beliebige durch den Angreifer vorgegebene Befehle. Häufig anzutreffen ist dabei das Erstellen einer Remote-Shell auf dem angegriffenen Rechner.
Folgen von Pufferüberläufen
Zu den üblichen Folgen eines Pufferüberlauf-Angriffs gehören Systemabstürze und die Gefahr der vollständigen Übernahme des IT-Systems durch einen Angreifer.
Arten von Buffer-Overflow-Angriffen
Es gibt verschiedene Arten von Buffer-Overflow-Schwachstellen. Die drei häufigsten sind dabei:
- Stack-basiertes Buffer-Overflow-Angriffe: Dies ist die häufigste Form von Buffer-Overflow-Sicherheitslücken. Der Stack-basierte Ansatz besteht darin, dass ein Angreifer Daten mit bösartigem Code an eine Anwendung sendet, die die Daten in einem Stapelpuffer speichert. Dadurch werden die Daten auf dem Stack, einschließlich des Rückgabezeigers, überschrieben, wodurch der Angreifer die Kontrolle über die Übertragungen erlangt.
- Heap-basierte Buffer-Overflow-Angriffe: Ein Heap-basierter Angriff ist schwieriger auszuführen als der Stack-basierte Ansatz. Bei diesem Angriff wird der Speicherbereich eines Programms über den Speicher hinaus überflutet, den es für aktuelle Laufzeitoperationen verwendet.
- Format-String-Angriffe Ein Format-String-Exploit findet statt, wenn eine Anwendung Eingabedaten als Befehl verarbeitet oder Eingabedaten nicht effektiv validiert. Dies ermöglicht es dem Angreifer, Code auszuführen, Daten im Stack zu lesen oder Segmentierungsfehler in der Anwendung zu verursachen. Dies könnte neue Aktionen auslösen, die die Sicherheit und Stabilität des Systems gefährden.
Welche Programmiersprachen sind am anfälligsten?
Nahezu alle nativen Anwendungen, Webserver und Webanwendungsumgebungen sind anfällig für Pufferüberläufe. Umgebungen, die in interpretierten oder Managed Code Sprachen wie C#, Java, Go, Rust und Python geschrieben sind, sind gegen diese Art von Angriffen immun. Durch die Nutzung von nativen Methoden und System-Calls kann aber auch hier die Ausnutzbarkeit nicht vollkommen ausgeschlossen werden.
Buffer-Overflow-Angriffe werden in der Regel durch Programmierfehler bei der Anwendungsentwicklung verursacht. Diese Probleme sind besonders in der Programmiersprache C/C++ problematisch, da sie von Haus aus keinen eingebauten Schutz vor Pufferüberläufen bietet.
Wie kann man als Programmierer Buffer-Overflows verhindern?
Buffer-Overflows sind ausnutzbar, weil Fehler im Design oder der Implementierung einer Software vorliegen. Für Software-Entwickler sollte immer der Grundsatz input is evil gelten. In der Umsetzung als Programmierer muss daraus folgen, dass jeder Input von außen – sei es über ein Webformular, ein Netzwerkdienst, eine Benutzereingabe über die Tastatur oder auch einfach nur durch das Einlesen einer Bilddatei sehr gewissenhaft verarbeitet werden muss.
Dazu gehört der korrekte Umgang mit unerwartet langen Zeichenketten, die Prüfung auf zulässige Eingabemuster, die Ausfilterung von verbotenen Zeichen (Blacklisting) oder die ausschließliche Annahme von erlaubten Zeichen (Whitelisting).
Die in den Beispielen gezeigten Pufferüberläufe resultierten aus einer unsauberen Verarbeitung einer unerwartet langen Zeichenkette. Eine einfache Prüfung auf die maximal zulässige Länge der Zeichenkette von 15 Zeichen hätte bereits ausgereicht.
Schutzmechanismen gegen Buffer-Overflow-Attacks
Aktueller Betriebssysteme und Compiler stellen Schutzmechanismen zur Verfügung die das erfolgreiche Ausnutzen von Buffer-Overflow Schwachstellen erheblich erschweren.
Wie wirkungsvoll sind die Schutzmechanismen der Compiler und Betriebssysteme?
Die automatisierten Schutzmechanismen gegen Buffer-Overflows können manchmal auch umgangen. Der Programmierer der Software ist und bleibt in der Verantwortung dafür zu sorgen, dass Buffer-Overflows gar nicht erst auftreten können.
Inhalt
Auch interessant
Was ist Datensicherheit? Standards & Technologien
Datensicherheit ist ein wichtiges Thema für alle Unternehmen und Behörden. Erfahren Sie hier mehr über Bedrohungen, Maßnahmen und den rechtlichen...
Weiterlesen...Authentifizierung: Unterschiede zur Authentisierung und Autorisierung
Authentisierung, Authentifizierung und Autorisierung sind Begriffe, die in der IT-Security verwendet werden. Sie mögen ähnlich klingen, sind aber...
Weiterlesen...Angriffsvektor und Angriffsfläche
Ein Angriffsvektor ist eine Möglichkeit für Angreifer, in ein Netzwerk oder IT-System einzudringen. Zu den typischen Angriffsvektoren gehören ...,
Weiterlesen...IT-Sicherheitskonzept in 8 Schritten
Unter einem IT-Sicherheitskonzept versteht man Richtlinien welche die IT-Sicherheit im Unternehmen gewährleisten sollen. Es geht darum, die...
Weiterlesen...Proxy Server
Ein Proxy-Server arbeitet als Vermittler zwischen zweit IT-Systemen. Proxyserver bieten je nach Anwendungsfall, Bedarf oder Unternehmensrichtlinien...
Weiterlesen...Was ist MITRE ATT&CK?
Das MITRE ATT&CK Framework ist eine laufend aktualisierte Wissensdatenbank, bestehend aus Taktiken und Techniken von Cyber-Angreifern über den...
Weiterlesen...Endpoint Security
Ein Proxy-Server arbeitet als Vermittler zwischen zweit IT-Systemen. Proxyserver bieten je nach Anwendungsfall, Bedarf oder Unternehmensrichtlinien...
Weiterlesen...Need-to-Know-Prinzip
Das Need-to-know-Prinzip beschreibt ein Sicherheitsziel für vertrauliche Informationen. Der Zugriff sollte nur dann für einen Benutzer freigegeben...
Weiterlesen...Top 10 Vulnerability Scanner für 2024
Vulnerability Scanner sind automatisierte Tools, mit denen Unternehmen prüfen können, ob ihre Netzwerke, Systeme und Anwendungen Sicherheitslücken...
Weiterlesen...NTLM-Authentifizierung
In diesem Artikel erklären wir, was die NTLM-Authentifizierung ist, wie sie funktioniert und wie sie von Angreifern ausgenutzt werden kann.
Weiterlesen...Informationssicherheitsmanagementsystem (ISMS)
Ein Information Security Management System (ISMS) definiert Methoden, um die Informationssicherheit in einer Organisation zu gewährleisten.
Weiterlesen...CVSS (Common Vulnerability Scoring System)
Der CVSS Score bietet eine numerische Darstellung (0,0 bis 10,0) des Schweregrads einer Sicherheitslücke in der IT. Wir erklären wie das Common...
Weiterlesen...Schutzziele der Informationssicherheit
Die Informationssicherheit soll die Schutzziele Vertraulichkeit, Integrität und Verfügbarkeit von Informationen...
Weiterlesen...CIS Controls kurz erklärt
Die CIS Critical Security Controls (CIS Controls) sind eine priorisierte Liste von Schutzmaßnahmen um die häufigsten Cyberangriffe auf IT-Systeme...
Weiterlesen...Karriereguide Pentester
Wie wird man eigentlich Pentester? Was verdient ein Pentester? Haben Quereinsteiger auch eine Chance? Und was macht ein Penetration Tester so den...
Weiterlesen...Firewall-Grundlagen & Firewall-Architektur
Firewalls spielen eine entscheidende Rolle beim Schutz von Unternehmensnetzen. Malware, Cyberangriffe und Datenschutzverletzungen können mit dem...
Weiterlesen...Wollen Sie prüfen ob Ihre Anwendungen auch anfällig für Buffer-Overflows sind?
Rufen Sie uns doch einfach an oder schreiben Sie uns eine Nachricht!