Attacchi da saturazione del buffer (buffer overflow) Ataques por profusão de tampão  (buffer overflow) Attaques par débordement de tampon (buffer overflow) Ataques por desbordamiento de búfer Buffer overflow attacks

Einführung zum buffer overflow

Angriffe durch « Pufferüberlauf  » (auf englisch « Buffer overflow » ) sollen ein Programm dazu bringen, einen bestimmten Code auszuführen, und sendem ihm dabei größere Datenmengen als vorgesehen.

Programme, die parametrische Eingangsdaten akzeptieren, speichern sie temporär in einem Bereich des Speichers, der Puffer (auf Englischbuffer) genannt wird. Allerdings können manche Lesefunktionen, wie die strcpy() Funktionen derSprache C, nicht mit dieser Art von Überlauf umgehen, das hat den Absturz der Anwendung zur Folge und kann zur Ausführung des beliebigen Codes führen und so Zugang zum System erlauben.

Die Durchführung dieser Art von Angriff ist sehr kompliziert, da genaues Wissen über die Programmarchitektur und Prozessoren von Nöten ist. Allerdings gibt es vieleExploits, die in der Lage sind, diesen Angriff zu automatisieren und ihn damit auch für Quasi-Neulinge zugänglich macht.

Funktionsprinzip

Das Funktionsprinzip eines Pufferüberlaufs hängt stark mit der Architektur des Prozessors zusammen, auf dem die anzugreifende Ausführung läuft.

Die von einer Aufwendung aufgenommenen Daten werden im Arbeitsspeicher gespeichert, in einem Bereich, derPuffer genannt wird. Ein richtig konzipiertes Programm sieht eine Maximalgröße für Eingangsdaten vor und überprüft, ob die aufgenommenen Daten diesen Wert überschreiten.

Die Anweisungen und Daten eines laufenden Programms werden laufend provisorisch gespeichert, in einem Bereich, der Stapelspeicher heißt (auf Englischstack). Die Daten, die hinter den Puffer liegen, enthalten eine Retour-Adresse (genannt Befehlszähler) durch den das Programm weiterläuft. Wenn die Größe der Daten die Größe des Puffers überschreitet, wird die Retour-Adresse überschrieben, das Programm liest dann eine fehlerhafte Adresse ein, was zu einer Schutzverletzung führt (auf Englisch segmentation fault) der Anwendung.

Ein Hacker mit guten technischen Kenntnissen kann kann sicher stellen, dass die überschriebene Speicheradresse einer realen Adresse entspricht, die zum Beispiel im Puffer selbst liegt. Indem er Anweisungen in den Puffer schreibt (beliebiger Code), kann er diese also leicht ausführen.

So ist es möglich, Anweisungen in den Puffer einzuschreiben, die eine Eingabe-Schnittstelle öffnen kann (auf Englischshell) und es dem Hacker ermöglicht, das System zu steuern. Dieser beliebige Code, der die Ausführung der Eingabe-Schnittstelle ermöglicht, heißtshellcode.

So schützt man sich vor Buffer overflow

Vor dieser Art des Angriffs kann man sich schützen, indem man Anwendungen mit hochentwickelten Programmiersprachen erstellt, bei denen die Speicherzuteilung genau geregelt wird, oder mit Sprachen niedrigeren Niveaus, und dabei sichere Funktionsbibliotheken verwendet (zum Beispiel strncpy() Funktionen).

Es werden regelmäßig Sicherheitswarnungen veröffentlicht, die auf die Anfälligkeit bestimmter Anwendungen für Buffer overflow Angriffe hinweisen. Daraufhin veröffentlichen die Herausgeber der betroffenen Software in der Regel Korrekturen (patchs) durch die sich die Schwachstelle ausbessern lässt. Jeder System- und Netzwerkadministrator sollte auf dem laufenden bleiben, was die Sicherheitswarnungen betrifft und die Patches so schnell wie möglich installieren.

Weitere Informationen



Letzte Änderung am Mittwoch 1 April 2009 à 14:16:21.Das Dokument mit dem titel « Angriffe durch Pufferüberlauf (buffer overflow) » aus Kioskea (de.kioskea.net) zur verfügung gestellt wird unter den bedingungen der Creative Commons lizenz. Können Sie ändern, Kopien dieser Seite, unter den Bedingungen der Lizenz, als diese Bewertung deutlich.
Beste Antworten für « Angriffe durch Pufferüberlauf (buffer overflow) » auf :
Angriffe durch die Einschleusung von SQL Befehlen Sehen Einschleusung von SQL Befehlen Angriffe über die Einschleusung von SQL Befehlen sind Angriffe, die gegen Websites gerichtet, die auf relationalen Datenbanken basieren. Bei diesen Seiten werden Parameter an die Datenbank in der Form einer SQL...
Angriffe Cross-Site Scripting Sehen Einfügen von bösartigem Code Angriffe durch Cross-Site Scripting (wird manchmal XSS oder CSS geschrieben) sind Angriffe, die gegen Websites gerichtet sind, die User-Inhalte dynamisch darstellen, ohne die von den Usern eingegebenen Daten zu...
Angriffe durch Datenverfälschung Sehen Die meisten Angriffe auf Web-Anwendungen bestehen darin, manuell Daten in die Website einzugeben, damit ein nicht vorhergesehener Zustand erreicht wird.Parameter von Web-Applikationen Das HTTP Protokoll, auf dem die Kommunikation im Web basiert,...
Ping of death Angriff SehenPing of death Angriff DerPing of death Angriff ist einer der ältesten Netzwerkangriffe.Das Prinzip des Ping of deaths besteht ganz einfach darin, ein IP Datagramm zu kreieren, dessen Gesamtgröße die zugelassene Maximalgröße übersteigt (65536...
SYN-Angriff SehenSYN-Angriff Der« SYN-Angriff » (auch « TCP/SYN Flooding »genannt) ist ein Flooding - Angriff (Denial of Service) welcher den Mechanismus des Drei-Wege Handshakes (auf Englisch Three-ways handshake) des TCP Protokollsausnützt. Über den Drei-Wege...
Angriffe auf Web-Server SehenSchwachstellen von Web-Services Die ersten Netzwerkangriffe nutzten Schwachstellen aus, die mit dem Einsatz der TCP/IP Internetprotokollfamilie zusammenhingen. Durch die die kontinuierliche Behebung dieser Schwachstellen richten sich die Attacken...