Basiswissen Buffer Overflow

14.05.2004
Von Thomas Wölfer

Ein ganz einfaches Beispiel ist ein Web-Browser: Der Web-Browser wird auf verschiedene Arten mit Daten von außen versorgt. Zum Beispiel dadurch, dass der Anwender auf einen Link auf einer Webseite klickt. Hinter einem Link befinden sich Informationen, mit deren Hilfe der Browser ein neues Ziel annavigieren kann. Befindet sich im Web-Browser ein Fehler beim Interpretieren dieser Daten, so kann ein bösartiger Betreiber einer Webseite diese Daten so zusammenstellen, dass ein Buffer Overflow im Web-Browser auftritt.

Will der bösartige Betreiber den Browser eines Besuchers nur abstürzen lassen, so genügt es, den Link umfangreicher zu gestalten als es der Browser verkraftet: Ein Klick auf den Link führt dann unweigerlich zum Absturz des Browsers.

Mit etwas mehr Geschick und Aggressivität, kann der Betreiber der Website aber durchaus mehr tun. So könnte er zum Beispiel die Daten hinter dem Link so organisieren, dass sie die Rücksprungadresse mit einem Wert überschreiben, der nicht zufällig irgendwo hin zeigt, sondern auf eine Stelle im Speicher, wo ausführbarer Code liegt. Diesen würde der Browser ganz normal ausführen - nur würde es sich dabei eben um Instruktionen handeln, die der Angreifer ausgesucht hat.

Mit anderen Worten: Der Angreifer könnte beliebigen, von ihm ausgesuchten Code auf dem Rechner des Surfers ausführen. Damit erhält der Angreifer praktisch alle Möglichkeiten und Privilegien auf dem Rechner des Surfers, die der Surfer selbst auch besitzt. Der Angreifer hätte damit die Kontrolle über den Rechner des Surfers de facto übernommen.

Ausführen beliebigen Codes

Stellt sich nun die Frage, wie der Angreifer den gewünschten Code auf den Rechner des Opfers bekommt - das ist zumindest in der Theorie leicht zu beantworten. In der Praxis sieht die Sache jedoch deutlich komplexer aus. Ein einfacher Hinweis auf eine (wenn auch in der Praxis nicht mögliche) Variante soll hier genügen. Wir wollen ja keine Hacker-Anleitung bieten, sondern nur einen technischen Überblick verschaffen.