Kostenloses Microsoft-Tool härtet Programme gegen Angriffe

Mit dem Tool sollen sich Anwendungen gegen bekannte Attacken abhärten lassen - und zwar nachträglich, ohne eine Neuübersetzung des Programms.

In Pocket speichern vorlesen Druckansicht 107 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Daniel Bachfeld

Microsoft hat ein kostenloses Tool veröffentlicht, mit dem sich Anwendungen gegen bekannte Attacken abhärten lassen – und zwar nachträglich, ohne eine Neuübersetzung des Programms mit speziellen Compiler-Flags. Mit dem Enhanced Mitigation Evaluation Toolkit (EMET) soll es Entwicklern und Administratoren möglich sein, bestimmte Schutzmechanismen in fertigen Binaries zu aktivieren, auch wenn der Quellcode des Programms gar nicht vorliegt.

Derzeit kann EMET vier Angriffstechniken verhindern oder erschweren. Mit Structured Exception Handler Overwrite Protection (SEHOP) will Microsoft das Überschreiben von (Structured) Exception-Handlern (SEH) auf dem Stack oder im Datensegment verhindern. Anders als beim Überschreiben von Rücksprungadressen mit Buffer Overflows führen Angreifer hierbei eigenen Code durch das Verbiegen von Funktionszeigern aus. Nähere Informationen dazu liefert der Artikel "Ein Haufen Risiko - Pufferüberläufe auf dem Heap und wie man sie ausnutzt " auf heise Security.

Zudem soll EMET das mittlerweile bei vielen Angriffen eingesetzte Heap Spraying erschweren, indem es einfach schon Teile des Heaps alloziert und der Angreifer seinen Code so nicht mehr an die gewünschte Stelle schreiben kann. Die Redmonder geben aber zu, dass dies kein ultimativer Schutz sei und sich damit nur aktuell bekannte Angriffe abwehren ließen.

Darüber hinaus soll EMET Null Page Allocation verhindern können, die sich in Zusammenhang mit Null-Pointer-Dereferenzierungen ausnutzen lassen. Durch Programmierfehler kann es etwa passieren, dass ein Pointer bei der Dereferenzierung auf NULL zeigt. Handelt es sich dabei um einen Funktionspointer, so zeigt dieser auf die (virtuelle) Adresse 0, die üblicherweise dem Userland zugeordnet ist. Auf diese Weise kann ein Anwender seinen Code mit Kernel-Rechten ausführen. Microsoft behauptet zwar, dass diese Bedrohung derzeit nur theoretischer Natur sei, vor wenigen Wochen stolperten aber die Linux-Kernel- und FreeBSD-Entwickler genau über solch ein Problem. Die FreeBSD-Entwickler haben sich damit beholfen, über eine neue Funktion, Anwendern das Mappen von Code an Adresse 0 zu verbieten.

Mit Microsofts Tool lässt sich auch Dynamic DEP (DDEP) in Anwendungen aktivieren. Damit kann man die Datenausführungsverhinderung zur Laufzeit an- und abschalten. Dazu haben die Redmonder bereits Anfang des Jahres eine neue API mit Service Pack 1 für Vista, Service Pack 3 für Windows XP und Windows Server 2008 eingeführt. Die Motiviation für die Einführung von DDEP ist, dass es weiterhin Anwendungen gibt, deren Arbeitsweise die Datenausführungsverhinderung anspringen lässt. Daher deaktivieren Entwickler mitunter diese Funktion beim Übersetzen mittels Linker-Option für ihre Anwendung. Allerdings läuft dann die gesamte Anwendung ohne DEP und bietet möglicherweise einen Angriffspunkt. Mit DDEP lässt sich der Schutz nur für einige gezielte Prozesse abschalten.

Bei aller Euphorie warnt Microsoft aber vor möglichen Kompatibilitätsproblemen. Daher sei EMET auch eher ein Tool für professionelle Anwender, die auftretende Fehler analysieren könnten.

Siehe dazu auch:

(dab)