Enhanced Mitigation Experience Toolkit

Enhanced Mitigation Experience Toolkit (EMET) è un tool rilasciato da Microsoft progettato per difendersi da vulnerabilità 0-day, inoltre è in grado di fornire protezione contro le corruzioni della memoria per le applicazioni più comuni. Un’altra funzionalità offerta da EMET è la possibilità di avere un SSL/TLS certificate pinning configurabile per riuscire a rilevare e, dalla versione 5.0, bloccare attacchi man-in-the-middle tentano di fruttare la public key infrastructure (PKI).

Al momento è disponibile la versione 5.2 scaricabile al seguente Enhanced Mitigation Experience Toolkit 5.2 in cui sono state rilasciate le seguenti funzionalità e migliorie:

  • Attack Surface Reduction (ASR) per limitare la superficie di attacco delle applicazioni
  • Export Address Table Filtering Plus (EAF+) per migliorare ed estendere l’attuale EAF mitigation
  • 64-bit ROP mitigations per la protezione da futuri tecniche di attacco basate su exploitation
  • Miglioramenti di sicurezza, compatibilità e performance

EMET è in grado di funzionare con qualunque software anche non Microsoft e legacy, ma vi sono alcuni software che non sono compatibili, in particolare quelle che nel normale funzionamento assumono un comportamento che le mitigation di EMET tenderebbero a bloccare. In questi casi per consentire la funzionalità dell’applicazione è possibile gestire delle eccezioni, ma ovviamente questo creerà una potenziale breccia di sicurezza che EMET non sarà in grado di arginare.

Il tool è in grado di operare con tutti i tipi di software da quelli di produttività a quelli d’intrattenimento e può quindi essere utilizzato sia in scenari aziendali che casalinghi, inoltre EMET è in grado di validare in base regole preimpostate dall’utente i certificati Secure Sockets Layer (SSL) utilizzati durante l’Internet browsing su siti HTTPs o durante l’autenticazione ai sociali media. EMET è anche in grado di applicare le mitigations a plugins come gli ActiveX o in generale ad add-in di terze parti caricati in processi protetti da EMET. La feature Certificate Trust feature è supportata solo per Internet Explorer, ma è possibile configurarla per altri browser tramite impostazioni sperimentali, a riguardo si faccia riferimento alla guida utente disponibile al seguente Enhanced Mitigation Experience Toolkit 5.2.

Entrando nel dettaglio del funzionamento di EMET non funziona tramite un servizio o agganciando un debugger all’applicazione, ma sfrutta l’infrastruttura in Windows denominata Application Compatibility Framework (per un overview si veda il post Demystifying Shims – or – Using the App Compat Toolkit to make your old stuff work with your new stuff).

E’ possibile installare manualmente EMET e configuralo tramite la GIU o a riga di comando oppure, in scenari aziendali, tramite System Center Configuration Manager e/o tramite applicazione di Group Policies in Active Directory (a riguardo si veda KB 816102 How to use Group Policy to remotely install software in Windows Server 2008 and in Windows Server 2003).

Tramite il componente denominato EMET Agent gestito dal servizio Microsoft EMET Service viene resa disponibile la funzionalità di che consente di creare logs e notifiche per scopi di auditing. Inoltre il servizio Microsoft EMET Service si occupa di scrivere eventi di notifica nel Windows Event Log, mostrare notifiche tramite tooltip nella taskbar notification area, eseguire le operazione di validazione dei certificati e inviare a Microsoft i report dell’Early Warning Program.

Per quanto riguarda il supporto a EMET questo è disponibile per il clienti che hanno accesso al Microsoft Services Premier Support o al Microsoft Professional Support oppure tramite il forum Enhanced Mitigation Experience Toolkit (EMET) Support.

Requisiti di EMET 5.2:

  • OS Client supportati: Windows Vista SP2,  Windows 7 SP1, Windows 8,  Windows 8.1
  • OS Server supportati: Windows Server 2003 SP2, Windows Server 2008 SP2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2
  • Microsoft .NET Framework 4.0
  • Per Internet Explorer 10 su Windows 8 e Windows Server 2012 è necessario installare la KB2790907 o una versione più recente della Compatibility Update per Windows 8 o Windows Server 2012

EMET può essere installato in una macchina virtuale, ma le applicazioni virtualizzate come Microsoft App-V o VMware ThinApp non sono supportate.

Versioni di EMET attualmente supportate:

EMET 5. x fino 12 luglio 2016, il supporto ad una versione di EMET termina 24 mesi dopo il rilascio o dopo il rilascio della successiva versione major (nella situazione attuale sarà la 6.x) se disponibile prima dei 24 mesi.

Supporto a Windows 10

Per quanto riguarda Windows 10 la versione di EMET supporta sarà la 5.5, al momento per è disponibile un versione beta di tale release al seguente Enhanced Mitigation Experience Toolkit 5.5 Beta. Nella versione 5.5 saranno disponibili nel seguenti funzionalità e aggiornamenti:

  • Compatibilità con Windows 10
  • GPO per il supporto completo delle funzionalità di mitigations e Cert pinning
  • Migliorie alle performance per EAF/EAF+
  • Untrusted font mitigation per Windows 10
  • Bug fixing della UI

Tecnologie di mitigation supportate da EMET

  • Structured Exception Handler Overwrite Protection (SEHOP)
  • Data Execution Prevention (DEP) disponibile in Windows XP
  • Heapspray Allocations
  • Null page allocation
  • Mandatory Address Space Layout Randomization (ASLR)
  • Export Address Table Access Filtering (EAF)
  • Export Address Table Access Filtering Plus (EAF+)
  • Bottom-up randomization
  • Return Oriented Programming (ROP)
  • Advanced Mitigations for ROP:
      • Deep hooks
      • Anti detours
      • Banned functions
  • Attack Surface Reduction (ASR)
  • Certificate Trust (configurable certificate pinning)

Di seguito la tabella di supporto delle mitigation supportate in relazione all’OS in cui EMET viene eseguito:

image

Di seguito la tabella di supporto delle mitigation supportate in relazione alla versione dell’OS (32 o 64 bit) in cui EMET viene eseguito:

image

Configurazione di EMET

Dopo l’installazione è possibile configurare i seguenti aspetti:

  • Quali system mitigations abilitare
  • Quali applications proteggere con quali mitigations
  • Quali SSL/TLS certificate pinning rules adottare

Le system e le application mitigations possono essere configurate tramite riga di comando, GUI o Group Policy, mentre la feature Certificate Trust per le conessioni SSL/TLS può essere gestita solo tramite GUI.

Per configurare EMET è anche possibile utilizzare i Protection Profiles, ovvero file XML che contengono impostazioni preconfigurate per applicazioni Microsoft e di terze parti o per la funzionalità Certificate Trust. L’installazione di EMET contiene due default Protection Profiles per applicazioni e un protection profile per Certificate Trust memorizzati nella directory d’installazione all’interno della sottocartella Deployment\Protection Profiles. I profili inclusi sono definiti dai seguenti file:

  • Recommended Software.xml: mitigations per Microsoft Internet Explorer, WordPad, applicazioni della suite Microsoft Office, Adobe Acrobat, Adobe Reader e Oracle Java

  • Popular Software.xml
    : mitigations per altre applicazioni di uso comune.

  • CertTrust.xml
    : certificate pinning rules per i servizi di login di Microsoft Account, Microsoft Office 365, Skype e online services come Twitter, Facebook, and Yahoo.

Tali Protection Profiles contengono configurazioni ottimizzate che tengono già conto delle issues di compatibilità note di alcune applicazioni e le Certificate Trust rules di default sono già configurate con spefiche date di scadenza che disattiveranno la rule prima della scadenza del cetificato.

Esiste anche un Configuration Wizard che viene avviato al termine dell’installazione che richiede se applicare una serie di impostazioni raccomandate.

Le configurazioni di EMET sono salvate nelle chiavi di registro HKLM\SOFTWARE\Microsoft\EMET e HKCU\SOFTWARE\Microsoft\EMET.

Le group policy di EMET sono contenute nei file EMET.admx e EMET.adml memorizzati nella directory d’installazione all’interno della sottocartella Deployment\Group Policy Files e contengono i seguebti set d’impostazioni:

  • System Mitigations (Named System ASLR, System DEP e System SEHOP)
  • Default Protections (tre profili di impostazioni di protezione per applicazioni: Internet Explorer, Recommended Software e Popular Software)
  • Application Configuration (editor per la configurazione di applicazioni non contemplate nei  profili di protezione di default)
  • Default Action and Mitigation Settings (impostazioni avanzate per ROP mitigations e per le azioni default nel caso venga rilevato un exploit ovvero solo audit o blocco)
  • EMET Agent Visibility (gestione della visualizzazione dell’icona dell’EMET Agent nella tray)
  • EMET Agent Custom Message (definizione di un messaggio personalizzato quando viene visualizzato un allarme di rilevazione attacco)
  • Reporting (abilitazione o disabilitazione reporting nel Windows Event Log, nella Tray Icon e nel Early Warning Program)
  • Le GPO d EMET sono memorizzate nella chiave di registro HKLM\SOFTWARE\Policies\Microsoft\EMET e monitorate dal servizio di EMET che si occupa di applicare la configurazione localmente, per visualizzare le impostazioni controllate tramite GPO è possibile utilizzare il comando EMET_Conf –list.

    Le impostazioni configurate tramite GPO hanno la precedenza rispetto alle configurazioni impostate tramite riga di comando o GUI e ovviamente possono essere eliminate o modificate solo via GPO. Quindi eseguendo il comando EMET_Conf –delete_all vengono eliminate solo le impostazioni relative a mitigations e SSL certificate pinning rules impostate tramite riga di comando o GUI.

    Per maggiori dettagli sulle seguenti configurazioni avanzate da eseguirsi tramite impostazione di specifiche chiavi di registro si veda la  guida utente disponibile al seguente Enhanced Mitigation Experience Toolkit 5.2:

  • Abilitazione delle Unsafe Configurations
  • Configurazione di un messaggio personalizzato per reporting di un attacco tramite pop-up
  • Configurazione della feature Certificate Trust per browser di terze parti
  • Configurazione della Local Telemetry per scopi di troubleshooting
  • Configurazione della visibilità dell’icona dell’EMET Agent

Conclusioni

E’ consigliabile applicare le mitigations offerte da EMET alla applicazioni che sono tipicamente oggetto di exploit che sono quelle che file o dati provenienti da una fonti non attendibile come ad esempio browser web, i lettori di documenti, etc.

Occorre tenere presente che esistono alcuni tipi di applicazioni (debugger o applicazioni che gestiscono file DRM) che non possono funzionare correttamente con EMET, se si desidera applicare le mitigations di EMET a questo tipo di applicazioni occorre di disabilitare alcune mitigations, a riguardo si veda la KB 2909257 EMET mitigations guidelines che riporta anche l’Application compatibility list aggiornata delle applicazioni e delle compatibility issues note.

Per maggiori informazioni si veda la KB2458544 The Enhanced Mitigation Experience Toolkit e il Test Lab Guide: Enhanced Mitigation Experience Toolkit (EMET 5.2).

[Update 01]

EMET è tra i tool suggeriti dall’NSA (National Security Agency) a riguardo si veda il documento Understanding the Enhanced Mitigation Experience Toolkit FAQ di ottobre 2014:

Simply, how does EMET stop malware?
Attackers use the web, email, and other tricks to convince a user to open a Word, Excel, PowerPoint, PDF,
and other documents. Once opened, the improperly formatted le causes the computer to run code (the
attacker’s program) inside the le. EMET inhibits (malicious) code from running inside a data file.


Is EMET required?

Yes. The Defense Information Systems Agency (DISA) Security Technical Implementation Guide (STIG)
requires EMET version 3.0 or later. (1)(2)(3) Reference vulnerability identiers: V-36701, V-36702, V-36703,
V-36704, V-36705, and V-36706.