Buffer Overflows für Jedermann

Buffer Overflows gehören zu den häufigsten Sicherheitslücken, über die sich Schadcode in Programme einschleusen läßt. Dabei werden in einen Datenpuffer mehr Daten geschrieben, als die Puffergröße zuläßt. Durch diesen Überlauf werden im Speicher auf den Puffer folgende Informationen mit Teilen der Daten überschrieben. Unter bestimmten Bedingungen kann dies gezielt genutzt werden, um das Verhalten des fehlerhaften Programms zu beeinflussen.

In meinem Tutorial beschreibe ich den genauen Mechanismus, der diesen Fehlern zugrunde liegt. Dabei werden fehlerhafte Programme Schritt für Schritt analysiert und ihre Fehler ausgenutzt. Dies geht vom einfachen Beeinflussen des Programmablaufs bis hin zum Einschleusen von sich selbst modifizierenden Schadcode. Als Plattform dient Debian GNU/Linux 2.0 auf einem i386-Prozessor. Die Grundlagen gelten in der Form für alle x86-Prozessoren und können auf andere Plattformen übertragen werden. Beim Nachvollziehen mit neueren Systemen sollte jedoch bedacht werden, daß verschiedene Erweiterungen zur Verhinderung von Buffer Overflows bzw. der Nutzung solcher Sicherheitslücken existieren. Wenn's also partout nicht klappt, sollte dies als Ursache in Erwägung gezogen werden. Wer ganz auf Nummer sicher gehen will, sollte sich ein Debian GNU/Linux 2.0 in einer VM oder auf einem echten Rechner installieren, und damit experimentieren.

Downloads

Version Datum Änderungen Datei Beschreibung
1.0 2005-08-01 Erstes Release stacksmashing.pdf Tutorial zu Buffer-Overflows