Windows-Schwachstelle – Buffer-Overflows
Angriffsziele bei Windows
Buffer-Overflows ___
Eine oft genutzte Software-Schwachstelle ist der Buffer-Overflow oder auch einfach Pufferüberlauf genannt. Hinter Hinter dem Begriff Puffer verbirgt sich ein Speicherbereich, der bei Datenübertragung zwischen zwei asynchronen Kommunikationspartnern steht. Zum Beispiel liefert eine Festplatte die Daten schneller, als ein DVD-Brenner sie auf den Rohling schreiben kann. Damit der Sender (Festplatte) den Empfänger (Brenner) nicht mit Daten überschwemmt, ist eine Pufferung zwischengeschaltet. Stößt dieser Zwischenspeicher an seine Grenzen, weil der Sender zu schnell oder der Empfänger zu langsam arbeitet, dann kommt es zu einem Überlauf des Puffers.
Die Folge:
Daten gehen verloren und der Brennvorgang kann nicht korrekt beendet werden. Bei einem verbrannten Rohling ist der Schaden nicht allzu groß. Das eigentliche Problem ist, dass Pufferüberläufe in Programmen für Angriffe ausgenutzt werden können. Laufende Prozesse legen Variablen, Parameter und Sprungadressen für Unterprogramme auf den Stack, einen Teil des Arbeitsspeichers, der jedem Programm zusteht. Ruft ein Programm ein Unterprogramm mit drei lokalen Variablen auf, dann wird zuerst die Rücksprungadresse auf den Stack geschrieben und dann Platz für die Variablen drei bis eins reserviert. Ein möglicher Fehler: Statt drei Variablen werden fünf eingelesen. Die letzten beiden überschreiben die Rücksprungadresse. Als Folge würde der Prozess abstürzen, weil die Sprungadresse nicht mehr stimmt. Schlimmer noch als ein Programm- Absturz ist es, wenn eine Schadfunktion eigenen Code ins System einschleust und die Rücksprungadresse an dessen Anfang umlenkt. Beispielsweise könnte eine solche Funktion einen Port in der Firewall öffnen oder den Virenscanner deaktivieren oder ersetzen.