Microsoft bietet bereits in die aktuellen Betriebssysteme (das umfasst alles seit Windows XP SP1, auch die Server-Versionen) integrierte Sicherheitsmechanismen an (beispielsweise DEP), die jedoch zum Teil nicht standardmäßig aktiviert sind.
Das Microsoft Enhanced Mitigation Experience Toolkit (EMET) ist ein Programm, welches es erlaubt diese (und weitere) Schutzmechanismen für alle oder ausgewählte Programme einzurichten und auf komfortable Weise Einstellungen anzupassen. Dadurch wird das Ausnutzen von möglicherweise vorhandenen Sicherheitslücken in den geschützten Programmen zwar nicht zu 100% unterbunden, aber deutlich erschwert. EMET ist in der Lage jegliche Software zu schützen, auch wenn die verwendeten Schutzmechanismus nicht direkt vom Hersteller vorgesehen oder vorbereitet wurden. Das Aktivieren dieser Schutzmechanismen bringt vor Allem für drittanbieter Software Vorteile, da das Ausnutzen von Sicherheitslücken damit in vielen Fällen bereits betriebssystemseitig unterbunden werden kann.
Wenngleich ein Großteil der in EMTP verfügbaren Optionen nach und nach in die Betriebssysteme integriert wird, und somit die Installation von EMET auf Dauer überflüssig werden wird, wollen wir dieses Tool in diesem Blogbeitrag vorstellen. Zum einen sind nach wie vor, gerade auch im Firmenumfeld, noch viele ältere Windowsversionen bis hin zu dem noch weit verbreiteten Windows 7 im Einsatz, zum anderen hat Microsoft selber den End Of Life Zeitpunkt des EMTP kürzlich um weitere 18 Monate nach hinten verschoben (nun Mitte 2018), was wiederum den Umkehrschluss nahelegt, dass die geplante Integration auch in die aktuellen Microsoft Systeme noch nicht abgeschlossen ist und daher EMET auch für Windows 10 seine Daseinsberechtigung behält.
EMET bietet (systemweit oder anwendungsspezifisch) Zugriff auf folgende möglichen Sicherheitsfunktionen (Quelle: EMET Handbuch) die übrigens in Domänennetzwerken natürlich auch per GPOs konfigurierbar sind. Für eine kurze Erklärung klicken Sie bitte auf einen der folgenden Punkte.
Dieser Mechanismus verhindert das Ändern der Adressen von Ausnahmebehandlugsroutinen, dies ist einer der verbreitetsten Angriffsmechanismen auf Schachstellen.
DEP verbietet das Ausführen von Programmcode aus bestimmten Speicherbereichen, üblicherweise aus den Datenbereichen. Vereinfacht gesprochen wird dadurch verhindert, dass ein Angreiffer ausführbaren Code in den Datenbereich einschleust und dort (etwa unter Ausnutzung von Sicherheitslücken) zur Ausführung bringen kann und auf diese Weise eigenen Programmcode mit den Rechten der entsprechenden Applikation ausfürhen kann. DEP ist also das Analogon zu SRPs, angewandt auf den Arbeitsspeicher. Mit EMET können auch Anwendungen durch DEP geschützt werden, die nicht mit den eigentlich dafür erforderlichen Optionen compiliert wurden.
Heapspray ist ein Angriffsszenario, bei dem große Blöcke des Heap mit potentiell ausführbarem Code belegt werden. Diese erlaubt mit einer größeren Wahrscheinlichkeit Kontrolle über einen Prozess zu erlangen, auch wenn die genaue Adresse im Heap an die umgeleitet werden muss nicht exakt bekannt ist. Als einfaches Beispiel kann man sich vorstellen einen großen Speicherbereich mit NOP (No-Operation) Befehlen zu füllen und am Ende Schadcode anzuhängen. Egal an welche Stelle der NOP Befehlskette gesprungen („umgeleitet“) wird, der Schadcode kommt nachgelagert zur Ausführung.
Dieser Schutz-Mechanismen übernimmt die Kontrolle über divers Stack-Bereiche, die oftmals als Angriffsziel missbraucht werden.
Ähnlich wie „Heapsray Allocation“ ist es ein häufiges Angriffsmuster über unbestimmte, oder nicht korrekt vorbelegte Pointer die Programmausführung „umzuleiten“ und Code zu injezieren. Dieser Angriffsvektor ist bisher nur theoretischer Natur, es gibt keine bekannten Exploits, dennoch wird er von EMET überwacht.
ASLR lädt Module an zufällige Speicheradressen, da Angreifer versuchen könnten diese sonst vorhersagbaren Adressen als Angriffsziele zu nutzen.
EAF filtert Zugriffe auf API Adresstabellen
Wie EAF, jedoch mit einigen verschärften Einstellungen
Dieser Sicherheitsmechanismus verschleiert die ansonsten vorhersagbaren Basisadressen diverser Speicherbereiche (Heap, Stack, etc.)
Dieser Mechanismus Adressiert Schwachstellen in „Return Oriented Probramming“. Vereinfacht gesagt werden Rücksprungadressen für Subroutinen verändert, die Programmausführug setzt an anderen Stellen fort. Da diese Rücksprungadressen jedoch im Code und nicht im Datenbereich einer Applikation liegen wird die Ausführung nicht durch DEP (siehe oben) unterbunden.
Die Angriffsfläche innerhalb von Applikationen wird durch das Blockieren unnötiger Module verkleinert. Beispielsweise kann Adobe Flash innerhalb von Word Dokumenten verboten werden.
Weitere Verschärfungen für „ROP mitigations“ (siehe oben)
Dieser Mechanismus verhindert Änderungen in einer bekannten Zertifikatkette in bestimmten Zeiträumen und verhindert damit den Austausch von Zertifikaten und darüber mögliche „Man in the Middle“ Angriffe.
Verhindert die Verwendung von Fonts außerhalb der Systemfonts und daraus resultierende mögliche Angriffsszenarien
Neben der Möglichkeit derartige Einstellungen in Kraft zu setzen bietet EMET auch die Möglichkeit, sicherheitsrelevante Ereignisse zu überwachen und ermöglicht es so etwaige Vorfälle über Monitoring Systeme zu erfassen.