Microsoft-Tool lässt Exploits ins Leere laufen

EMET von Microsoft aktiviert zusätzliche Schutzfunktionen moderner Windows-Versionen, die viele Angriffe auf Sicherheitslücken in Programmen abwehren können. Der Teufel steckt dann jedoch wieder im Detail.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Daniel Bachfeld
Inhaltsverzeichnis

EMET kann verschiedene Angrifftechniken zum Ausnutzen von Sicherheitslücken ins Leere laufen lassen oder zumindest die Zuverlässigkeit von Exploits verringern. Zu den dabei eingesetzten Techniken gehört unter anderem die Datenausführungsverhinderung (DEP) und Adress Space Layout Randomisation (ASLR).

Windows überlässt es der Anwendung, beim Laden durch bestimmte Flags zu signalisieren, ob sie die nutzen will. Doch viele Anwendungen machen leider keinen Gebrauch von den von DEP und/oder ASLR obwohl das prinzipiell möglich wäre. Mit EMET lassen sich die Schutzmechanismen nachträglich in fertigen Binaries aktivieren, ohne dass der Quellcode des Programms vorliegen muss.

DEP verhindert, dass ein Angreifer seinen über einen Buffer Overflow auf den Stack oder Heap geschriebenen Code ausführen kann – den Overflow selbst kann es nicht verhindern. Der Angreifer muss aber nicht zwingend sofort seinen eigenen Code ausführen. Vielmehr kann er durch Manipulation der Rücksprungadresse in ein bereits von der Anwendung geladenes Codesegment springen. Üblicherweise versuchen Angreifer in bestimmte Funktionen der C-Bibliothek zu springen (Return-into-libc-Attacke). Da die Funktionen immer an die gleiche Stelle geladen werden, weiß ein Angreifer, an welche Stelle sein Code springen muss.

Microsofts Anti-Exploit-Tool (7 Bilder)

Adobe-PDF

Zwar nutzt der Adobe Reader bereits ab Werk DEP, aktuelle Exploits können diesen Schutz jedoch aushebeln.

Diese Vorhersage soll nun wiederum Adress Space Layout Randomisation (ASLR) erschweren. Windows 7 und Vista wählen für den Speicherort des geladenen Codes eines Prozesses, die dazugehörige DLLs, den Stack und Heaps zufällige Adressen. Das lässt sich zwar auch wieder mit bestimmten Tricks aushebeln, allerdings macht es Exploits unzuverlässiger – und oftmals hat eine Angreifer nur einen Schuss.

Daneben bietet EMET Schutz vor dem Überschreiben von Exception-Handlern (SEH) auf dem Stack oder im Datensegment. Anders als beim Überschreiben von Rücksprungadressen mit Buffer Overflows führen Angreifer hierbei eigenen Code durch das Verbiegen von Funktionszeigern aus. Mit Structured Exception Handler Overwrite Protection (SEHOP) will Microsoft das verhindern. Darüber hinaus alloziert EMET die erste Seite im Speicherbereich (Null Page) einer Anwendung, um bestimmte Exploits in Zusammenhang mit versehentlichen Zugriffen auf Null-Pointer unschädlich zu machen. Das Export Address Table Access Filtering (EAF) kann Zugriffe von eingeschleustem Shellcode auf bestimmte APIs blocken. Die Anti-Heap-Spraying-Funktion soll zudem das mehrfache Verteilen von Schadcode im Speicher vereiteln (wie etwa bei den Tu-Nix-Rutschen im Tatort Internet).

In der Kombination können diese zusätzlichen Schutzfunktionen selbst dann noch Exploits unwirksam machen, wenn DEP und ASLR versagt haben. Unter Windows XP lässt sich so der kürzlich aufgetauchte Exploit für die CoolType-Lücke im Adobe Reader unschädlich machen, wie man im Folgenden sehen wird.