Mar 10 2013

Protection des processus: Utilisation de EMET, activation de ASLR DEP…

Afin de contrôler les processus lancés sur vos clients vous pouvez utiliser des Software Restriction Policies ou des outils comme Applocker ou Bit9. Vous pouvez améliorer la sécurité des processus autorisés sur votre système en activant certaines mesures de protection: DEP, ASLR, SEHOP… L’outil EMET vous permet de définir ces mesures de protection, qui peuvent même éventuellement vous protéger en cas d’attaque via un exploit 0-day.

Ces paramètres de protection sont configurables via GPO grâce a des fichiers ADMX fournis dans le package EMET 3.0. Pour que les paramètres soient appliqués à vos clients il faudra déployer le package EMET sur tous vos clients, via un outil de télédistribution (conseillé), soit via GPO. De plus, pour appliquer/renouveler les paramètres poussés via GPO la commande ci-dessous devra être appliqué à chaque démarrage du client:

EMET_Conf.exe --refresh

Nous lancerons donc le script emet.vbs suivant au démarrage de la machine:

Set fso = CreateObject("Scripting.FileSystemObject")
Set shl = CreateObject("WScript.Shell")
path="C:\Program Files (x86)\EMET\"    
exists = fso.FolderExists(path)
if (exists) then 
    program="EMET_Conf.exe"&chr(34)&" --refresh"
    cmd = chr(34)& path & program
    shl.Run cmd,1,True
 
end if
 
path2="C:\Program Files\EMET\"   
exists2 = fso.FolderExists(path2)
 
if (exists2) then 
    program2="EMET_Conf.exe"&chr(34)&" --refresh" 
    cmd2 = chr(34)& path2 & program2
    shl.Run cmd2,1,True
end if

Les fichiers ADMX fournis permettent de configurer les politiques d’exécution pour l’ensemble de votre système: On active DEP, ASLR et SEHOP en mode Optin (mode par défaut). Puis pour configurer ces protections au niveau de chaque processus nous chargeons les modèles fournis par Microsoft qui ont validé plusieurs applications tierces (Adobe Acrobat, Firefox…). Finalement cela donne une grosse GPO qui installe et configure EMET:

GPO-aslr-dep

Avant tout déploiement lire le fichier PDF EMET User’s Guide qui figure dans le package et testez avant d’appliquer:

Afin de déterminer si un processus possède ces protections, il existe binscope. Prenons, par exemple le processus nxfindier.exe, pour lequel nous avons forcé toutes les protections sauf SEHOP dans notre GPO: Lançons Process Explorer sur une machine Windows XP 32-bits sur laquelle la GPO n’est pas encore appliquée:

processxpDEPdisabled

Nous voyons que l’exécutable est signé mais qu’il ne tourne pas avec la protection DEP d’activée. Nous lançons l’utilitaire binscope sur cet exécutable et voyons si il est compatible ASLR, DEP, SEHOP:

binscope

Les tests lancés sont:

  • SafeSEHCheck: Compatibilité sur SEHOP.
  • DBCheck: Compatibilité sur ASLR (/DYNAMICBASE check).
  • NXCheck: Compatibilité sur DEP (NXCOMPAT Check).

binscope1

Le NXCOMPAT n’étant intéprété par l’OS que à partir de Windows Vista, DEP n’est pas activé pour notre process alors que l’exécutable est parfaitement compatible pour cette protection. Nous activons donc tous les paramètres de protection sauf SEHOP, puisque à priori ce n’est pas nécessaire. Dans la GPO montrée un peu au dessus vous voyez les paramètres appliqués à nxfinder.exe. Sous notre client Windows 32bits, on voit via Process Explorer que le DEP est activé en mode permanent, une fois la GPO appliquée:

processxpDEPenabled

Comme ASLR n’est disponible qu’à partir de Windows Vista, vous remarquez qu’on ne voit pas la protection ASLR sous Process Explorer sous le client XP 32bits. En lançant le même outil sous une machine Windows 7 la protection ASLR est affichée dans les propriétés du processus. Par ailleurs on voit que DEP est forcé sur tous les processus 64 bits:

windows7aslr

Sous Process Explorer, une fois EMET installé sur le poste, vous pouvez voir les protections appliquées au niveau de chaque processus par EMET dans les propriétés de chaque exécutable (onglet environment) et que emet.dll est chargée dans les threads du processus:

emet_settings

Une autre très bonne protection peut donc être de désactiver les processus 32 bits. Pour deux raisons: La plupart des malwares sont écrits en 32bits, ils ne s’exécuteront pas sur ces machines et DEP est activé par défaut pour tous les processus 64 bits. Ceci est uniquement réalisable sous Windows 2008R2 Core. Comme EMET est un package 32 bits, nous ne le déployons pas sur les machines Windows 2008 core pour lesquelles le 32 bits est désactivée (groupe SRV-32bits-DISABLED):

deny-32bits-emet

Cependant avant de désactiver ServerCore-WoW64, bien vérifier qu’aucun processus 32bits ne tourne sur vos serveurs Windows Core…

This post is also available in: Anglais

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

*

WordPress Themes

Blossom Icon Set

Software Top Blogs