Microsofts Security Toolkit - Eine Übersicht zu EMET

Microsofts Security Toolkit

Eine Übersicht zu EMET

Andrea Covello
von Andrea Covello
Lesezeit: 12 Minuten

Microsoft hat Tools entwickelt, die Security-Profis dabei helfen, Windows-Systeme sicher zu halten. Dies sind unter anderem der Microsoft Baseline Security Analyzer, bekannt als MBSA, oder der Security Compliance Manager, abgekürzt SCM. In diesem Kapitel wollen wir uns aber einen anderen interessanten Teil der Microsoft Security anschauen: Das Enhanced Mitigation Experience Toolkit EMET.

EMET ist ein Werkzeug, das Windows-Plattformen gegen Exploits von Vulnerabilities mit einer Reihe von Mitigations-Massnahmen schützt. Wie andere Tools versteht sich EMET als zusätzliche Schutzschicht und verdrängt oder ersetzt somit andere Information Security Massnahmen nicht.

Obwohl es nicht möglich ist, alle Exploits zu verhindern, macht die von EMET implementierte Mitigations-Technologie einen Exploit wesentlich schwierig, sofern EMET richtig konfiguriert ist.

Features

EMET unterstützt Betriebssysteme auf Servern wie auch Client-Computern. Die aktuelle Version (4.0 beta) ermöglicht die Konfiguration von Sicherheits-Mitigations-Technologien. Mitigationen, die auf das System angewendet werden, betreffen logischerweise das ganze System. Jene, die nur auf Applikationen angewendet werden, gelten nur für diese Programme. Die bringt folgende wichtigen Vorteile mit sich:

Kunden können Mitigationen mit dem sogenannten Audit-Mode testen. Die Folgende Tabelle stellt eine Auflistung der genutzten Mitigations-Technologien dar.

Bereich Technologie Beschreibung
SYSTEM / APPLICATION Data Execution Prevention Die DEP-Mitigation ist ein Schutz des Speichers, der den Stack und den Heap eines Prozesses als non-executable markiert. Die Ausführung von schadhaftem Code aus diesen Sektoren wird auf Prozessor-Ebene verhindert.
SYSTEM / APPLICATION Structured Exception Handler Overwrite Protection Die SEHOP-Mitigation schützt gegen die meistgenutzten Techniken, die zum Stack Overflow in Windows führen.
SYSTEMAddress Space Layout Randomization ASLR lässt die Adresse, von wo aus Module geladen werden, zufällig erscheinen. So will EMET verhindern, dass Angreifer Daten aus vorhersehbarer Struktur laden können. Exploits, die auf fixe Locations im System bauen, werden automatisch wirkungslos.
APPLICATION Null Page pre-allocation Die NullPage-Mitigation ist dazu designt, null dereference Probleme im User-Mode zu verhindern. Derzeit gibt es keine Möglichkeit diese per Exploit zu manipulieren. Daher ist die NullPage-Mitigation eine Depth-Mitigation-Technology.
APPLICATION Common heap spray address pre-allocation Die HeapSpray-Mitigation dient dazu, oft genutzte Speicheradressen vorzubelegen und damit Heap Spraying Attacks vorzubeugen. Es ist aber zu bemerken, dass es nur auf jene Exploits abzielt, die generische Adressen verwenden.
APPLICATION Export Address Table Access Filtering Die EAF-Mitigation blockiert die am meisten genutzten Angriffsvektoren der Exploits indem sie die Location einer von Windows freigelegten Funktion nachschlägt. Dies involviert den Scan der export Address Table der geladenen Libraries. Dies ist eine höchst effiziente Methode, aktuell genutzte Exploits zu blockieren.
APPLICATION Mandatory Address Space Layout Randomization Die Mandatory ASLR Mitigation zwingt alle Module dazu, an zufälligen Adressen geladen zu werden, ungeachtet der Flags mit denen sie kompiliert worden sind. Exploits, die sich auf fixe Adressen beziehen, werden scheitern.
APPLICATION Bottom-Up virtual memory randomization Die BottomUpASLR Mitigation macht die Basisadresse der Bottom-Up Allocations (inklusive Heaps, Stacks und anderen Speicher-Allocations) mittels 8bit Entropie zufällig.
APPLICATION Loadlibrary Prüft die LoadLibrary Calls um Libraries zu laden und verhindert das Laden von Libraries, die UNC-Pfade verwenden. (zum Beispiel \\ evilsite\bad.dll)
APPLICATION Memory Protection Checks Verhindert, dass die Stack Area ausführbar wird. Dies wird in der Regel von Shellcode oder ROP Gadgets gemacht.
APPLICATION Caller Checks Stellt sicher, dass eine systemkritische Funktion aufgerufen wird, dass dieser Aufruf über eine Call Instruction und nicht eine RET kommt. Dies ist eine nützliche Mitigationstechnik, die viele ROP Gadgets aufhält. Diese Mitigation ist nicht mit allen Programmen kompatibel. Internet Explorer unmittelbar nach einer Neuinstallation von Windows funktioniert gut mit dieser Mitigation.
APPLICATION Stack Pivot Versucht, ROP Gadgets nach einem Call für eine kritische Funktion aufzuspüren. Wie die Caller Checks Funktion ist dieses Feature nicht zwingend mit allen Programmen kompatibel.
APPLICATION Simulate Execution Flow Diese Mitigation stellt fest, ob der Stack verdreht worden ist. Der Simulate Execution Flow ist mit den meisten Programmen kompatibel.

Weitere Informationen bietet das EMET 4.0 User Manual im Hilfe Menu der Anwendung.

Allerdings werden nicht alle Mitigations-Optionen von allen Betriebssystemen und Anwendungen unterstützt, aber Microsoft arbeitet kontinuierlich daran, die Software zu verbessern und alle wichtigen Plattformen und alle wichtigen Applikationen zu unterstützen. Hier eine kleine Übersicht über die unterstützten Features auf den einzelnen Plattformen.

Area Mitigation XP W2003 Vista W2008 Win7 W2008 R2 Win8 W2012
SYS DEP OK OK OK OK OK OK OK OK
SYS SEHOP OK OK OK OK OK OK
SYS ASLR OK OK OK OK OK OK
APP DEP OK OK OK OK OK OK OK OK
APP SEHOP OK OK OK OK OK OK OK OK
APP NULL page OK OK OK OK OK OK OK OK
APP HEAP Spray OK OK OK OK OK OK OK OK
APP mASLR OK OK OK OK OK OK
APP EAF OK OK OK OK OK OK OK OK
APP LoadLibrary OK OK OK OK OK OK OK OK
APP Mem Protection OK OK OK OK OK OK OK OK
APP Bottom-up OK OK OK OK OK OK OK OK
APP SimExecFlow OK OK OK OK OK OK OK OK

Eine weitere Limitation besteht im Bereich des Web Certificate trust. Nur folgende Browser unterstützen die Funktion:

Die folgenden Versionen sind nicht unterstützt:

Wie EMET funktioniert

EMET ist kein Fire and Forget Tool. User müssen das Tool mit Vorsicht und Sorge konfigurieren und alle Einstellungen testen bevor es in einer produktiven Umgebung angewendet wird. Und: EMET ist keine End User Tool wie ein Antiviren-Programm.

Nach der Installation – EMET benötigt .NET-Framework 4) und dem folgenden Systemneustart kann das Programm mittels einem GUI benutzt werden. Das sieht in etwa so aus:

EMET Frontend

In der ersten Hälfte des Fensters können Sie alle verfügbaren System-Features sehen sowie der Status der selbigen: Enabled, Application Opt-In, Application Opt-Out or Disabled. In der zweiten Hälfte sind alle derzeit aktiven Prozesse aufgelisted sowie die mitlaufenden Mitigations-features. Die System-Mitigations-Einstellungen können in diesem Panel konfiguriert werden:

System Mitigation Settings

Die Application Mitigation Settings können im folgenden Panel konfiguriert werden:

Application Mitigation Settings

Um eine bestimmte Mitigations-Einstellung hinzuzufügen, genügt ein klick auf den Add-Button oder ein Rechtsklick in die Liste der aktiven Prozesse, das eine Mitigations-Einstellungs-Checkbox aufruft. Alle Aktionen werden ins Windows Application Log aufgenommen und über das Tray Icon rapportiert. Daher, wenn Sie Bedarf an einer Analyse haben, können Sie die EMET Log Source einfach dort filtern. Dies ist wichtig, wenn sie das Programm im Audit-Mode laufen lassen und keine Prozesse beenden, die gegen die Policy verstossen. Diese Prozesse werden per default beendet:

Configure Mitigations

Configure Reporting

Certificate Trust (configurable certificate pinning)

EMET 4 bietet ein Krypto-Erweiterungs-Modul an, das zusätzliche check während dem Certificate Chain Trust Validation Prozess implementiert. Wenn der Browser eine HTTPS-Website ansteuert wird EMET das erhaltene SSL-Zertifikat und die Root Certificate Authority, die das Certificate ausgestellt hat, validieren.

Je nach Konfiguration für eine bestimmte Domain erkennt EMET eine Variation in der ausstellenden Root Certificate Authority für ein spezifisches SSL Certificate. Sollte EMET eine Variation entdecken, wird es nur die Anomalie sehen, die Verbindung aber nicht stoppen. Ausnahmen können über das Eigenschaften-Menu der Root CA konfiguriert werden. Unter anderem können Key Size, Hashing Algorhythmus und Ausstellungsland konfiguriert werden. Ein Beispiel: EMET kann so eingestellt werden, dass es eine Warnung ausgibt, wenn eine Certificate Key Length unter 2048 bit liegt.

Um das kurz zu testen können wir eine Pinning Policy implementiere, welche die folgenden Einstellungen in CONFIGURE/CERTIFICATE TRUST/ PINNING RULES/ADD hat:

Define a Pinning Policy

Gehen Sie jetzt zum Tab Protected Web Site und fügen Sie folgende Sites hinzu:

Overview Protected Web Site

Dies stellt sicher, dass Man-in-the-Middle-Attacken einen EMET-Warnung ausgeben werden. Wenn Sie dies ausprobieren möchten, dann können sie die Pinning Rule so abändern, dass die Key-Length-Einstellung 4096 statt 2048 liest oder einfach die Trusted Root CA ändern.

Nach der Änderung der Einstellungen und dem erneuten Zugriff auf die Site sollte folgende Warnung auftauchen:

Warning Message Popup

Und der folgende Eintrag sollte im Application Log erscheinen:

Application Log Entry

Fazit

EMET ist ein gutes, starkes Werkzeug aber es muss gut und mit Bedacht konfiguriert und getestet warden, bevor in einem produktiven System eingesetzt wird. Sicherheit auf diesem Level ist mehr oder weniger die letzte Schicht der Verteidigung eines Systems. Wir empfehlen den Einsatz von EMET als Finalisierung Ihrer Sicherheitsstrategie für sehr kritische Komponente wie:

Bereich Komponente
Enduser Workstations Internet Bowsers
Internet Services / Gateways Web Servers and Email Gateways
Critical internal services Domain Controllers, DNS servers, Exchange Servers

Investieren Sie Zeit in die Erstellung einer Policy das, welche die spezifische Nutzung der Maschinen im Hintergrund hat. Nur der Versuch einer Policy reicht nicht aus. Nach erfolgreicher Konfiguration aber steht Ihnen ein sehr nützliches Tool gegen Malware zur Verfügung … und das erst noch gratis!

Über den Autor

Andrea Covello

Andrea Covello ist seit den 1990er Jahren im Bereich der Informationssicherheit tätig. Seine Schwerpunkte liegen traditionell im Engineering, wobei er als Spezialist im Bereich Windows-Sicherheit, Firewalling und Virtualisierung gilt.

Sie wollen die Resistenz Ihres Unternehmens auf Malware prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
Security Testing

Security Testing

Tomaso Vasella

Active Directory-Zertifikatsdienste

Active Directory-Zertifikatsdienste

Eric Maurer

Fremde Workloadidentitäten

Fremde Workloadidentitäten

Marius Elmiger

Active Directory-Zertifikatsdienste

Active Directory-Zertifikatsdienste

Eric Maurer

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv