[PART2] Créez et gérez vos Stratégies AppLocker 2012 R2 via PowerShell

Publié: 23/04/2016 dans IT Security, SRP /AppLocker
Tags:, , , , , , ,

S’applique à : AppLocker 2012 et 2012 R2

Note : Si vous n’avez pas encore découvert la fonctionnalité « Applocker » et son fonctionnement sous Windows Server 2012 R2, je vous invite à consulter cet article :

[PART1] Introduction à AppLocker sous Windows Server 2012 R2

Introduction

Windows PowerShell est l’interpréteur de commandes qui vous simplifie la vie :), en effet, si vous êtes amenés à implémenter, tester et gérer des Règles de restrictions logicielles via AppLocker 2012 ou 2012 R2, sachez que Windows PowerShell peut vous aider à accélérer le processus d’implémentation des Stratégies Applocker.

Depuis Windows Server 2008 R2, Microsoft a introduit un nouveau Module PowerShell qui vous permet de créer, tester et gérer les Stratégies AppLocker, il s’agit du Module « Applocker ».

Ce dernier regroupe cinq Cmd-lets, saisissez Get-Command -Module AppLocker depuis une console Windows PowerShell pour en savoir plus :

AppLocker_1

Le tableau ci-après détaille plus d’informations sur chaque Cmd-let :

Cmd-let Description
Get-AppLockerFileInformation Permet de collecter des informations nécessaires pour AppLocker, et ce à partir d’un répertoire spécifique ou des Journaux d’événements.

Les informations collectées peuvent inclure des informations sur l’éditeur, Hash ou encore chemin d’accès aux fichiers

Set-AppLockerPolicy Permet de configurer et lier une Stratégie AppLocker à une GPO
Get-AppLockerPolicy Permet de lister les Stratégies AppLocker à partir d’une GPO Locale, du Domaine ou effective
New-AppLockerPolicy Utilise les informations collectées (via la Cmd-let Get-AppLockerFileInformation) pour générer automatiquement une Règle pour un utilisateur ou un groupe d’utilisateurs spécifique. Les règles générées peuvent être basées sur l’éditeur, Hash ou chemin d’accès.
Test-AppLockerPolicy Utilise une Stratégie AppLocker spécifique pour tester si un fichier ou une liste de fichiers est autorisée à s’exécuter sur la machine locale, et ce pour un utilisateur donné
Créez vos Règles AppLocker

Avant de pouvoir créer vos Règles de restrictions logicielles, AppLocker a besoin d’analyser et collecter certaines informations sur les Apps /Programmes dont l’exécution doit être autorisée ou restreinte.

Pour ce faire, la Cmd-let « Get-AppLockerFileInformation » doit être utilisée, dans l’exemple suivant, elle sera utilisée pour scanner le dossier C:\Sources afin de collecter les informations sur le Hash, Editeur … sur les exécutables /scripts /Libraries DLL qui y sont stockés

1

Note : le paramètre -Recurse est utilisé pour prendre en compte les sous-dossiers et fichiers du Dossier spécifié au niveau du paramètre -Directory.

La commande peut être suivie de « | Out-GridView » pour une meilleure visibilité des données collectées et retournées par la Cmd-let Get-AppLockerFileInformation

2

Comme illustré dans l’image ci-dessus, la Cmd-let Get-AppLockerFileInformation ne remonte aucune information sur l’éditeur « Publisher » concernant les deux .EXE (CA_SETUP.exe & ASE_SETUP_FINAL.exe).

Cette information est à prendre en compte lors de la création des Règles AppLocker.

Nous allons donc créer une nouvelle Règle AppLocker basée uniquement sur le Path ou Hash ou les deux pour autoriser les exécutables du dossier C:\Sources.

Une technique de création « Rapide » des Règles AppLocker existe, il s’agit de « piper » le résultat retourné par la Cmd-let Get-AppLockerFileInformation, et le passer à la Cmd-let « New-AppLockerPolicy »

Comment ça marche ?

Tout d’abord, les trois informations suivantes sont à renseignées  :

  • Type de règle (paramètre -RuleType) : Path et/ou Publisher et/ou Hash
  • Utilisateur ou Groupe d’utilisateurs (paramètre -User) : Utilisateur ou Groupe d’utilisateurs (locaux ou d’un domaine AD)
  • Nom de la règle (paramètre -RuleNamePrefix)

Dans l’exemple suivant, nous allons créer une règle AppLocker (nommée DevApps) pour autoriser l’exécution des Apps placées dans le dossier C:\Sources en se basant sur leur Hash, et ce uniquement pour le groupe d’utilisateurs AD « UtilisateursAppLocker« . La configuration de la règle est ensuite exportée vers un fichier XML nommé « DevApps.XML », ce dernier sera placé sur C:.

Get-AppLockerFileInformation -Directory C:\Sources -Recurse | New-AppLockerPolicy -RuleType Hash -User UtilisateursAppLocker -RuleNamePrefix DevApps -XML | Out-File C:\DevApps.XML 

Testez vos Règles AppLocker

Les « Best Practices » MS consistent à tester et valider les règles AppLocker avant toute application /déploiement sur un environnement de production.

Tester les règles AppLocker au préalable permet en effet de détecter tout impact /effet de bord sur les autres Apps existantes sur vos serveurs ou simplement corriger une erreur de configuration.

Le test des règles AppLocker peut être effectué via la Cmd-let Test-AppLockerPolicy.

Dans l’exemple suivant, nous allons tester (simuler) l’exécution de l’Application « ZoomIT.exe » placé dans le dossier C:\Sources :

Test-AppLockerPolicy -XMLPolicy C:\DevApps.XML -Path C:\Sources\ZOOMIT.exe

Le résultat retourné par cette commande détaille l’action qui sera effectuée par AppLocker après exécution de l’exe ZoomIT.

Cela vous permet de vous assurer que la restriction logicielle sera bien en place lors de l’application de la règle AppLocker.

Appliquer vos règles AppLocker

Le fichier XML généré précédemment peut être importé (appliqué) :

  • sur une GPO locale (restriction appliquée uniquement sur une seule machine)
  • sur une GPO du domaine (restriction appliquée sur un ou plusieurs machines : selon la liaison de la GPO > OU, Site, Domaine … )

Pour importer le fichier XML sur une GPO locale, la commande suivante est utilisée :

Set-AppLockerPolicy –XMLPolicy C:\DevApps.XML

Pour importer le fichier XML sur une GPO du domaine, la commande suivante est utilisée :

Set-AppLockerPolicy –XMLPolicy C:\DevApps.XML -LDAP « LDAP://FQDN_DC/CN={GUID},CN=Policies,CN=System,DC=MonDomaine,DC=lan »

Vous devez remplacer les variables suivantes par les informations liées à votre domaine AD et DC.

FQDN_DC = Nom DNS du DC hébergeant les services AD DS

GUID = ID de la GPO dans laquelle les règles configurées sur le fichier XML seront importées

MonDomaine = Nom NetBIOS de votre domaine AD

Note : le GUID d’une GPO peut être obtenu via la commande suivante :

Get-GPO -All | select DispayName, ID

TMP_AppLocker1

Dans l’exemple suivant, les règles du fichier XML DevApps.XML seront importées dans la GPO « AppLocker » dont le GUID est 53fa551d-2e8e-436a-8a35-f0dc7f534dcd

Set-AppLockerPolicy –XMLPolicy C:\DevApps.XML -LDAP « LDAP://LABDC01.vLAB.LAN/CN={53fa551d-2e8e-436a-8a35-f0dc7f534dcd},CN=Policies,CN=System,DC=vLAB,DC=LAN »

Après exécution de la commande ci-dessus, lancez l’outil GPMC.msc, naviguez jusqu’à la GPO utilisée précédemment et constatez l’apparition de nouveaux paramètres, notamment l’apparition des règles AppLocker :

TMP_AppLocker2

Cet article est un extrait de l’eBook : AppLocker 2012 R2 – Design et déploiement en Entreprise [Guide du Consultant]

applocker_cover

Publicités
commentaires
  1. Jonathan dit :

    Super, beau travail !

    Juste une petite erreur il me semble :
    Dans la section Testez vos Règles AppLocker.
    Il y a -XMLPath à replacer par -XmlPolicy
    à la ligne :Test-AppLockerPolicy -XMLPath C:\DevApps.XML -Path C:\Sources\ZOOMIT.exe »

    Merci beaucoup,
    @+

  2. […] de la deuxième partie, je vous montre comment utiliser Windows PowerShell (utilisation du module PS : AppLocker) pour […]

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s