Schutz vor Buffer Overflows unter Windows 2003 kann umgangen werden

David Litchfield von NGSSoftware hat eine Methode entwickelt, mit denen er die Stack Protection unter Windows 2003 Server umgehen kann.

vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Daniel Bachfeld

Ein Angreifer kann die Funktionen zum Schutz vor den Auswirkungen von Buffer Overflows unter Windows 2003 Server umgehen. Bei einem Buffer Overflow ĂĽberschreibt ein Angreifer Teile des Stacks und manipuliert die RĂĽcksprungadressen von Funktionen, um seinen eigenen Code anzusprigen. Die Stack Protection von Windows 2003 Server schreibt beim Aufruf von Funktionen ein sogenanntes Cookie beziehungsweise Canary vor die RĂĽcksprungadresse auf den Stack. Beim Beenden einer Funktion wird vor der RĂĽckkehr dieses Cookie mit einer Kopie verglichen. Ist das Cookie nicht mit der Kopie identisch, ist mit hoher Wahrscheinlichkeit der Stack inklusive Cookie durch einen Buffer Overflow ĂĽberschrieben worden und der aufrufende Prozess wird zum Schutz gestoppt.

David Litchfield von NGSSoftware hat eine Methode entwickelt, mit der er den Schutzmechanismus umgehen kann. Dabei macht er sich die Behandlung von Exceptions zu nutze, die bestimmte Ausnahmefälle, zum Beispiel Speicherzugriffsverletzungen, abfangen sollen. Informationen über Exception-Handler werden in sogenannten EXCEPTION_REGISTRATION-Strukturen auf dem Stack abgelegt. Zusätzlich wird ein Zeiger auf diese Struktur auf dem Stack gespeichert. Litchfields Angriff überschreibt nicht nur den Cookie und die Rücksprungadresse einer Funktion, sondern auch den Pointer auf diese Struktur, um die Schutzfunktion auszuhebeln und trotzdem eigenen Code auszuführen.

Siehe dazu auch: (dab)