GPO – Comment empêcher les utilisateurs d’exécuter certains logiciels ?

I. Présentation

Dans ce tutoriel, nous allons voir comment empêcher les utilisateurs d'exécuter certains logiciels sur une machine Windows grâce à une GPO de type "Stratégie de restriction logicielle". C'est un bon moyen de se protéger contre les logiciels malveillants, mais aussi de garder le contrôle sur vos postes pour lutter contre les logiciels en version portable, par exemple.

Lorsque l'on a un Active Directory, des postes sous Windows et que l'on veut mettre en place des restrictions au niveau des logiciels, il y a deux noms qui ressortent : les stratégies de restriction logicielle et AppLocker.

Stratégie de restriction logicielle VS AppLocker

Les stratégies de restrictions logicielles existent depuis longtemps (Windows 2000 ou Windows XP, et Windows Server 2003). Elles fonctionnent toujours aujourd'hui sur les versions les plus récentes de Windows, y compris Windows Server 2022 et Windows 11. Cette méthode fonctionne sur la majorité des éditions de Windows : Pro, Entreprise et Education.

Suite à la sortie de Windows 7 et Windows Server 2008 R2, Microsoft a introduit une nouvelle manière d'appliquer des restrictions sur les machines : AppLocker. Bien que plus évoluée et censé prendre la relève vis-à-vis des stratégies de restriction logicielle, AppLocker présente l'inconvénient de fonctionner seulement sur les éditions Enterprise et Education de Windows.

Aujourd'hui, les stratégies de restriction logicielle restent très utilisées et répondent à des besoins simples, d'autant plus qu'elle fonctionne sur une majorité de versions de Windows, y compris les éditions Pro.

II. Créer une GPO "Stratégie de restriction logicielle"

À partir de la console de Gestion de stratégie de groupe, créez une nouvelle GPO et liez cette GPO à l'OU qui contient les ordinateurs que vous souhaitez brider. Pour ma part, la GPO se nomme tout simplement "Stratégie de restriction logicielle".

Modifiez la GPO et parcourez l'arborescence de cette façon :

Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies de restriction logicielle

Création d'une GPO - Stratégie de restriction logicielle
Création d'une GPO - Stratégie de restriction logicielle

Ensuite, effectuez un clic droit sur "Stratégies de restriction logicielle" et cliquez sur "Nouvelles stratégies de restriction logicielle". Cela va débloquer l'accès à la configuration de la stratégie.

Sous "Stratégies de restriction logicielle", si vous cliquez sur "Niveaux de sécurité", vous allez voir qu'il y a trois niveaux : Non autorisé, Utilisateur standard et Non restreint. Le mode "non restreint" n'applique pas de restriction supplémentaire, ce sont les droits de l'utilisateur qui s'appliquent. Il s'agit du mode par défaut et on peut le savoir grâce à son icône, légèrement différente.

Nous allons modifier ce mode pour choisir "Utilisateur standard". Double cliquez sur le mode "Utilisateur standard" et cliquez sur le bouton "Par défaut". Un avertissement s'affiche, cliquez sur "Oui" pour valider.

Ce mode permet d'autoriser l'exécution des programmes pour les utilisateurs qui ne sont pas administrateur. Mais c'est un début, nous allons renforcer la stratégie juste après.

Cliquez sur "Stratégies de restriction logicielle" et cette fois-ci, ouvrez le paramètre "Contrôle obligatoire". Je vous invite à modifier l'option suivante : "Appliquer les stratégies de restriction logicielle aux utilisateurs suivants" avec la valeur "Tous les utilisateurs excepté les administrateurs locaux". De cette façon, les administrateurs ne seront pas restreints sur les machines.

Note : je vous recommande de laisser la première option sur "Tous les fichiers de logiciels à l'exception des bibliothèques (ex : fichiers DLL)", car bien que cela puisse renforcer la sécurité, il peut y avoir des effets de bords : dysfonctionnements et ralentissement du système.

Validez.

Passez maintenant sur l'option "Types de fichiers désignés" : cette option sert à déterminer les extensions sur lesquelles s'applique cette stratégie. La liste contient déjà un certain nombre d'extensions, mais nous pouvons en ajouter, par exemple : VBS pour les scripts et PAF pour les applications portables.

Il suffit de remplir la case "Extension du fichier" et de cliquer sur le bouton "Ajouter".

Maintenant, nous allons créer nos règles et pour cela plusieurs choix sont possibles :

  • Règle basée sur un certificat
  • Règle basée sur le hachage, c'est-à-dire le hash d'un fichier
  • Règle basée sur une zone réseau
  • Réglé basée sur un chemin d'accès

C'est le type de règle basée sur un chemin d'accès qui nous intéresse particulièrement. Par défaut, il y a déjà deux règles existantes pour autoriser les exécutables situés dans "Program Files" et dans le répertoire d'installation de Windows.

Voici ces deux règles :

Dans certains cas, ces règles par défaut ne sont pas créées (je ne sais pas pourquoi). Ce qui me donne l'occasion de vous montrer comment créer une règle, car nous avons besoin de ces règles : effectuez un clic droit sur "Règles supplémentaires" et choisissez "Nouvelle règle de chemin d'accès".

Pour le chemin, nous avons deux choix : reprendre la valeur telle que sur la copie d'écran ci-dessus ou saisir le chemin directement, tout en sachant qu'il faudra créer trois règles avec trois chemins :

C:\Program Files (x86)
C:\Program Files
C:\Windows

Pour le niveau de sécurité, choisissez "Non restreint", car on souhaite autoriser les exécutables dans ces dossiers.

Note : si vous créez une stratégie de restriction logicielle pour bloquer un exécutable spécifique, choisissez le mode "Non autorisé" et spécifier le chemin vers le dossier d'installation de votre logiciel où se situe l'exécutable.

Ce qui nous donne le résultat suivant après avoir créé les trois règles. Je vous rappelle qu'il n'est pas nécessaire de créer ces trois règles si vous avez déjà les deux règles par défaut.

La GPO est prête : la suite se passe sur le poste client, mais n'oubliez pas de lier la GPO à votre OU où se situe le PC, si ce n'est pas déjà fait.

III. Tester le blocage des applications sur un poste client

La stratégie étant en place, nous allons effectuer des essais. Pour cela, je me connecte avec un utilisateur du domaine (non-administrateur) sur une machine où la GPO s'applique.

J'ai téléchargé plusieurs applications, dont un Firefox Portable, que je vais tenter d'exécuter.

Bingo ! Le message "Cette application a été bloquée par votre administrateur système" s'affiche : la stratégie de restriction logicielle fonctionne ! L'utilisateur va râler, mais l'admin système est ravi !

Dans le même esprit, avec un fichier MSI, c'est bloqué également !

IV. Contournement de la stratégie de restriction logicielle

Ce système relativement ancien n'est pas sans faiblesse et pour qu'il soit réellement efficace, il nécessite la mise en place de deux restrictions supplémentaires. En fait, si vous ouvrez une console comme l'Invite de commande sur votre machine en tant qu'utilisateur standard (et donc restreint par la politique), vous allez pouvoir exécuter les fichiers bloqués ! Autrement dit, en exécutant le logiciel depuis la console, vous contournez la restriction.

Attention, tout n'est pas permis : s'il faut les droits Administrateur pour installer le logiciel, alors l'utilisateur standard sera bloqué. Par contre, cela ouvre la porte aux logiciels portables et à certains logiciels qui s'installent au sein du profil de l'utilisateur.

Tandis qu'avec AppLocker, Microsoft a pris le soin de corriger le tir comme vous pouvez le voir ci-dessous.

Le blocage avec AppLocker
Le blocage avec AppLocker

Pour renforcer la stratégie de restriction logicielle, vous devez appliquer deux restrictions supplémentaires :

  • Empêcher l'accès à l'Invite de commande par GPO

Je vous invite à consulter cet article où je prend ce paramètre comme exemple : Bloquer l'Invite de commande par GPO.

  • Empêcher l'accès à la console PowerShell par GPO

Pour bloquer PowerShell, vous pouvez appliquer la méthode décrite dans ce tutoriel ou alors ajouter une règle dans la politique de restriction logicielle pour bloquer "powershell.exe" ("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe").

Sachez également que pour contourner la stratégie de restriction logicielle, il y a une autre méthode. Il faut réussir à déposer le fichier à exécuter dans "Program Files" ou "Windows" puisque ce sont nos deux dossiers approuvés, mais cela nécessite les droits Administrateur.

Voici ce qu'il faut savoir à ce sujet, sans rentrer dans les techniques avancées de hacking.

Nous venons de voir comment utiliser les stratégies de restriction logicielle sous Windows pour restreindre l'utilisation des logiciels et particulièrement des exécutables sur les postes clients. Pour aller plus loin et renforcer encore plus la sécurité, je vous recommande de vous intéresser à AppLocker.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5501.Voir tous les posts

9 thoughts on “GPO – Comment empêcher les utilisateurs d’exécuter certains logiciels ?

  • Je sais plus si cette avec cette méthode que tu peux contourné avec un cmd qui exécute le programme bloqué.

    J’ai pas de vm dispo si tu peux essayer et nous dire car ça serait bête de faire tout cela si on peut le by-pass bêtement

    Répondre
    • Hello 🙂
      Oui c’est bien cette méthode que l’on peut contourner avec une Invite de commandes, mais normalement les consoles doivent être bloquées aussi pour les utilisateurs standards si l’on fait ça bien. 😉
      En fait, j’ai prévu d’en parler dans mon article sur AppLocker pour comparer un peu les deux, car AppLocker ne se fait pas avoir par l’Invite de commande. Mais, suite à ta remarque je pense que c’est mieux de le préciser aussi dans cet article car c’est une précision importante. Merci ! 🙂
      Bonne soirée
      Florian

      Répondre
  • bonjour. merci pour cette astuce. Serait il possible d’avoir la methode pour créer un batch qui permette de faire toute cette manip en evitant de passer par la stratégie de group? Car par d’ActiveDirectory dans mon cas.

    Répondre
  • après plusieurs tentatives il semble que ce script permette d’ajouter les bonnes clés pour la restriction de powershell par exemple

    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers » /v « DefaultLevel » /t REG_DWORD /d « 262144 » /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers /v TransparentEnabled /t REG_DWORD /d 1 /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers /v PolicyScope /t REG_DWORD /d 0 /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers /v ExecutableTypes /t REG_MULTI_SZ /d « ADE\0ADP\0BAS\0BAT\0CHM\0CMD\0COM\0CPL\0CRT\0EXE\0HLP\0HTA\0INF\0INS\0ISP\0LNK\0MDB\0MDE\0MSC\0MSI\0MSP\0MST\0MSP\0MSP\0PIF\0REG\0SCR\0SHS\0URL\0VB\0WSC\0 » /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{8c96b2d4-a24e-4e31-a5ae-a5a1436b9cc9} /v LastModified /t REG_QWORD /d 132941063245945675 /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{8c96b2d4-a24e-4e31-a5ae-a5a1436b9cc9} /v Description /t REG_SZ /d «  » /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{8c96b2d4-a24e-4e31-a5ae-a5a1436b9cc9} /v SaferFlags /t REG_DWORD /d 0 /f
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{8c96b2d4-a24e-4e31-a5ae-a5a1436b9cc9} /v ItemData /d C:\Windows\System32\WindowsPowerShell\v1.0 /t REG_SZ /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{191cd7fa-f240-4a17-8986-94d480a6c8ca} » /v « LastModified » /d « 132938404225200071 » /t REG_QWORD /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{191cd7fa-f240-4a17-8986-94d480a6c8ca} » /v « Description » /d «  » /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{191cd7fa-f240-4a17-8986-94d480a6c8ca} » /v « SaferFlags » /t REG_DWORD /d « 0 » /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{191cd7fa-f240-4a17-8986-94d480a6c8ca} » /v « ItemData » /d « %%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%% » /t REG_EXPAND_SZ /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{d2c34ab2-529a-46b2-b293-fc853fce72ea} » /v « LastModified » /d « 132938404225200071 » /t REG_QWORD /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{d2c34ab2-529a-46b2-b293-fc853fce72ea} » /v « Description » /d «  » /f
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{d2c34ab2-529a-46b2-b293-fc853fce72ea} » /v « SaferFlags » /t REG_DWORD /d « 0 » /F
    reg add « HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\{d2c34ab2-529a-46b2-b293-fc853fce72ea} » /v « ItemData » /d « %%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%% » /t REG_EXPAND_SZ /f

    Répondre
  • Bonjour ,

    Merci beaucoup c’est très intéressant.
    Est il possible par GPO ou autrement pour un utilisateur spécifique de lui limiter les actions possible dans une invite de commande?
    Je souhaiterai en effet que cet utilisateur puisse uniquement faire un « ping » et donc aucune autre commande, auriez vous l’amabilité de me guider sur ce point s’il vous plaît?
    Je vous en remercie
    Pierre

    Répondre
  • Salut ! J’ai un petit souci : lorsque j’essaie d’exécuter Internet Explorer, il est également bloqué. Sais-tu comment remédier au blocage des applications .exe déjà installées, s’il te plaît ? Merci

    Répondre
  • Bonjour,

    Pardon mai je suis novice, j’ai réaliser ce TP dans mon cours de TSSR.

    Mai je comprend pas, tout du long on autorise les utilisateurs « standard » ensuite on donne des chemin d’accès autorisé encore une fois.

    pour qu’à la fin ça bloque. je suis perdu .

    Merci !!!

    Répondre
  • bonjour
    merci pour ce totoriel. ma question c’est que les manipes que vous avez noter vont appliquer sur touts les postes? mais si on voudrai appliquer sur un poste, il faut quoi faire?
    Merci

    Répondre

Répondre à ad Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.