1.    Description


AppLocker est une fonctionnalité de sécurité intégrée dans les systèmes d'exploitation Windows, qui permet aux administrateurs de définir des règles pour contrôler l'accès aux applications et aux scripts sur les ordinateurs. 
Les règles AppLocker peuvent être configurées pour autoriser ou bloquer l'exécution de certaines applications selon notre besoins.
 

2.    Prérequis

 Prérequis pour l'utilisation de AppLocker :

  • Service Identité de l'application activé sur les postes de travail
  • Un poste de travail Windows 10 ou Windows 11 (idéalement avec tous les produits spécifiques métiers installés par exemple).

2.1 Activation du service Identité de l'application

Cette configuration peut être mise en place avec Intune au travers d'un script de remédiation ou par GPO. Cette dernière possibilité ne sera pas décrite ici.

Activation du service par script de remédiation :

Dans un premier temps, vous trouverez ci-dessous, le script de détection et le script de remédiation à utiliser.

ApplockerService_Detect.ps1

$ServiceName = 'AppIDSvc'

$Action = 'Auto'
$Service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
If ($service.StartType -eq $Action) {
    Write-Host "$ServiceName is already configured correctly."
    Exit 0
}
else {
    Write-Warning "$ServiceName is not configured correctly."
    Exit 1
}
 
ApplockerService_Remediation.ps1
 
$ServiceName = 'AppIDSvc'
$Action = 'Auto'
Function Manage-Services {
    Param
    (
        [string]$ServiceName,
        [ValidateSet("Start", "Stop", "Restart", "Disable", "Auto", "Manual")]
        [string]$Action
    )
    try {
        Start-Transcript -Path "C:\Windows\Temp\$($ServiceName)_Management.Log" -Force -ErrorAction SilentlyContinue
        Get-Date
        $service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
        $service
        if ($service) {
            Switch ($Action) {
                "Start" { Start-Service -Name $ServiceName; Break; }
                "Stop" { Stop-Service -Name $ServiceName; Break; }
                "Restart" { Restart-Service -Name $ServiceName; Break; }
                "Disable" { Set-Service -Name $ServiceName -StartupType Disabled -Status Stopped; Break; }
                "Auto" { Set-Service -Name $ServiceName -StartupType Automatic -Status Running; Break; }
                "Manual" { Set-Service -Name $ServiceName -StartupType Manual -Status Running; Break; }
            }
            Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
        }
        Stop-Transcript -ErrorAction SilentlyContinue
    }
    catch {
        throw $_
    }
}
try {
    Write-Host "Fixing Applocker service statup type to auto."
    Manage-Services -ServiceName $ServiceName -Action $Action
    Exit 0
}
catch {
    Write-Error $_.Exception.Message
}

Connectez-vous sur la console Microsoft Endpoint Manager admin center : https://endpoint.microsoft.com/

Dans le menu "Reports", puis "Endpoint analytics" sélectionnez "Proactive remediations" et enfin choisissez "Create script package"


 Choisissez un nom pour le script package et cliquez sur "Next".


Renseignez le script de détection (ApplockerService_Detect.ps1) et le script de remédiation (ApplockerService_Remediation.ps1).

Modifiez également l'option permettant d'exécuter le script avec l'architecture 64-bit de PowerShell.


 Définissez ensuite un scope, si vous le souhaitez, l'assignation et valider la création du script package.

Vous pourrez ensuite visualiser d'état du déploiement directement depuis le panneau Overview sur script package.

 Résultat sur le poste du travail :

 


 2.2 Le poste de travail

En effet, afin de réaliser la configuration souhaitée, il est important d'avoir à disposition un poste de travail sur lequel est installé un maximum d'applications, et même les applications métiers.

Ceci permettra de valider localement la configuration avec les règles par défaut détaillées plus bas mais également de réaliser les règles personnalisées qui ne rentrerai pas en compte dans les règles par défaut (exemple avec un produit installé ailleurs que dans %ProgramFiles%, %ProgramFiles(x86)% ou %SystemRoot%).

Ce prérequis peut-être remplacé par l'activation du mode audit sur quelques postes de travail et l'analyse des évènements Windows lié à l'application de ce mode. Nous verrons le détail de cette activation plus bas.

 

3.    Plateformes supportées

Vous trouverez ci-dessous le tableau concernant l'applicabilité de la configuration Applocker  :


Source : Fournisseur de services de configuration AppLocker - Windows Client Management | Microsoft Learn

 

4.    Création des règles Applocker par défaut

Afin de créer les règles Applocker par défaut, vous devez mettre en place la configuration sur un poste de travail Windows 10/Windows 11 via les stratégies de sécurités locales.

Pour ouvrir la Stratégie de sécurité locale, dans l’écran de Démarrage, tapez secpol.msc, puis appuyez sur Entrée.

Se déplacez jusqu'à Applocker sous Stratégies de contrôle de l'application


 A ce niveau, vous pourrez alors configurer les règles pour les types de fichier suivant :

  • Fichiers exécutables : .exe et .com
  • Fichiers Windows Installer : .msi, mst et .msp
  • Scripts : .ps1, .bat, .cmd, .vbs et .js
  • DLL : .dll et .ocx
  • Applications empaquetées et programmes d’installation d’applications empaquetées : .appx

Source : Présentation des collections de règles AppLocker (Windows) | Microsoft Learn

/!\ Afin de faire apparaitre le menu pour les règles concernant les DDL, il faut cliquez droits sur AppLocker puis "Propriétés".


Sélectionnez l'onglet "Avancé" et cochez la case "Activer le regroupement de règles DLL" puis validez.




Pour chaque types, vous aurez la possibilité de créer les règles par défaut.
Ces règles sont les suivantes en fonction du type:
  1. Règles d'exécutable par défaut:

  • Autorisation pour tous les utilisateurs à exécuter les fichiers exécutable du dossier Windows (variable d'environnement Windows %SystemRoot%),
  • Autorisation pour tous les utilisateur à exécuter tous les fichiers exécutable du dossier Program Files (variable d'environnement Windows %ProgramFiles% et %ProgramFiles(x86)%),
  • Autorisation pour les utilisateurs membres du groupes Administrateurs local à exécuter tous les fichiers exécutables.

  1. Règles Windows Installer par défaut:

  • Autorisation pour tous les utilisateurs à exécuter les fichiers Windows Installer signés numériquement,
  • Autorisation pour tous les utilisateur à exécuter tous les fichiers Windows Installer du dossier Windows Installer (%Windir%\Installer),
  • Autorisation pour les utilisateurs membres du groupes Administrateurs local à exécuter tous les fichiers Windows Installer.

  1. Règles de script par défaut:

  • Autorisation pour tous les utilisateurs à exécuter les scripts du dossier Program Files (variable d'environnement Windows %ProgramFiles% et %ProgramFiles(x86)%),
  • Autorisation pour tous les utilisateur à exécuter tous les scripts du dossier Windows (variable d'environnement Windows %SystemRoot%),
  • Autorisation pour les utilisateurs membres du groupes Administrateurs local à exécuter tous les scripts.

  1. Règles DLL par défaut:

  • Autorisation pour tous les utilisateurs à exécuter les DLL du dossier Program Files (variable d'environnement Windows %ProgramFiles% et %ProgramFiles(x86)%),
  • Autorisation pour tous les utilisateur à exécuter tous les DLL du dossier Windows (variable d'environnement Windows %SystemRoot%),
  • Autorisation pour les utilisateurs membres du groupes Administrateurs local à exécuter toutes les DLL.

  1. Règles d'applications empaquetées par défaut:

  • Autorisation pour tous les utilisateurs à exécuter les application empaquetées signées.

Pour créer automatiquement ces règles par défaut, sélectionner le type voulu et faites un clic droit et choisissez "Créer des règles par défaut"


Sur la partie de droite du menu, les règles par défaut seront implémentées en automatique.


 

5.    Création des règles Applocker personnalisées

En plus des règles par défaut, il est bien évidemment possible de créer vos propres règles selon vos besoins.

Pour cela, sur le type de votre choix, faites clic droits et "Créer une règle…"

Lors de la création, vous choisissez si c'est une règle d'autorisation ou d'interdiction.

Vous choisissez également l'utilisateur ou le groupe a ciblé par cette règle.


Il existe 3 conditions permettant d'identifier les applications auxquelles la règle s'applique:

  • Éditeur : identifie une application en fonction de sa signature numérique,
  • Chemin d’accès : identifie une application par son emplacement dans le système de fichiers de l’ordinateur ou sur le réseau,
  • Hachage de fichier : représente le hachage de chiffrement calculé par le système du fichier identifié.

 

  • Condition lié à l'éditeur



Dans la configuration précédente, tous les produits signés par l'éditeur PALO ALTO NETWORKS seront autorisés.

Afin de limiter les possibilités, il faut ajuster le curseur en conséquence.

Dans le cas suivant, seul l'exécutable PANGPA.EXE associé au nom de produit GLOBALPROJECT et signé par l'éditeur PALO ALTO NETWORKS sera autorisé.

 

Dans l'affichage suivant, il sera possible de mettre en place des exceptions au besoin sur cette règle.


Ensuite, renseignez un nom et une description à cette nouvelle règle vous permettant de l'identifier rapidement si nécessaire.


Suite à la création, la règle sera visible également sur la partie droite de la configuration Applocker.


  • Condition lié au chemin d'accès


Cette condition vous permettra de limité le fonctionnement au nom de l'exécutable mais également à son emplacement ou alors à un dossier.

Dans ce cas, tous les éléments se trouvant dans ce répertoire seront concerné par cette règle.


Il sera également possible de mettre en place des exceptions sur cette règle.


Donnez un nom et une description à la règle puis valider.

La nouvelle règle sera visible sur le panneau de droite concernant votre type.


  • Condition lié au hash du fichier



Donner un nom et une description a la règle puis valider.

La nouvelle règle sera visible sur le panneau de droite concernant votre type.


Suite à la création des règles souhaitées, il faut activer AppLocker


6.    Activation d'Applocker

Il existe 2 modes d'activation d'AppLocker:

  • Appliquer les règles.
  • Auditer uniquement.

Dans le cas d'une mise en place, je conseillerai de mettre en place le mode Audit uniquement. Ce fonctionnement permettra à un pool d'utilisateur de maintenir le même niveau de fonctionnement sur leur poste de travail tout en traçant dans le gestionnaire des évènements les cas potentiels de blocage. 

Par ce biais, il sera alors possible d'identifier les produits concernés et de statuer sur la mise en place ou non d'une règle personnalisée évitant tout blocage lors de l'activation du mode Appliquer les règles.


Dans L’exécution de %OSDRIVE%\USERS\IL22EW\DOWNLOADS\NPP.8.4.8.INSTALLER.X64.EXE a été autorisée mais elle aurait été empêchée si la stratégie AppLocker avait été appliquée.

Pour sélectionner le mode d'application, toujours dans les stratégies de sécurités locales, cliquez droit sur AppLocker et propriété.

Pour chacun des types vous pourrez alors activer et sélectionnez le comportement à avoir.

 

7.    Export de la configuration


Afin de mettre en place la configuration du coté de Microsoft, il faut exporter la configuration Applocker en suivant les affichages suivants.




Le fichier xml contient l'ensemble de la configuration que nous avons mise en place précédemment. 

Ce fichier va nous permettre d'implémenter ces même règles dans Microsoft Intune et donc de déployer la configuration sur les postes de travail.


Nous allons voir maintenant, la manière d'implémenter la configuration Applocker dans Intune au travers d'une Device Configuration.


8.    Création des règles Applocker dans Intune

Pour créer la configuration, il faut se connecter sur la console Microsoft Endpoint Manager admin center : https://endpoint.microsoft.com/

Dans le menu "Devices", sélectionnez "Configuration Profiles" et faites sélectionnez "+ Create Profile"


Créer la configuration avec les éléments suivants:

  • Name: W10 – Applocker
  • Description: Windows 10 – Applocker
  • Platform: Windows 10 and later
  • Profile type: Custom

Cliquez ensuite sur Add OMA-URI settings avec les éléments suivants:

  • Name: Applocker – EXE
  • Description: AppX configuration for Applocker
  • OMA-URI: ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/EXE/Policy
  • Data Type: String

Dans le champs Value, copié-collé le contenu du fichier XML concernant les règles pour les exécutable, soit tout ce qui se situe entre les balises <RuleCollection et </RuleCollection et du type Type="Exe"

<RuleCollection Type="Exe" EnforcementMode="AuditOnly">
    <FilePathRule Id="921cc481-6e17-4653-8f75-050b80acca20" Name="(Règle par défaut) Tous les fichiers se trouvant dans le dossier Program Files" Description="Permet aux membres du groupe Tout le monde d’exécuter les applications se trouvant dans le dossier Program Files." UserOrGroupSid="S-1-1-0" Action="Allow">
      <Conditions>
        <FilePathCondition Path="%PROGRAMFILES%\*" />
      </Conditions>
    </FilePathRule>
    <FilePathRule Id="a61c8b2c-a319-4cd0-9690-d2177cad7b51" Name="(Règle par défaut) Tous les fichiers se trouvant dans le dossier Windows" Description="Permet aux membres du groupe Tout le monde d’exécuter les applications se trouvant dans le dossier Windows." UserOrGroupSid="S-1-1-0" Action="Allow">
      <Conditions>
        <FilePathCondition Path="%WINDIR%\*" />
      </Conditions>
    </FilePathRule>
    <FilePathRule Id="fd686d83-a829-4351-8ff4-27c7de5755d2" Name="(Règle par défaut) Tous les fichiers" Description="Permet aux membres du groupe Administrateurs local d’exécuter toutes les applications." UserOrGroupSid="S-1-5-32-544" Action="Allow">
      <Conditions>
        <FilePathCondition Path="*" />
      </Conditions>
    </FilePathRule>
    <FilePublisherRule Id="5a372a01-b1f7-44ad-a237-95e57439a4ed" Name="Allow PANGPA.EXE" Description="PANGPA.EXE, dans GLOBALPROTECT, de O=PALO ALTO NETWORKS, L=SANTA CLARA, S=CALIFORNIA, C=US" UserOrGroupSid="S-1-1-0" Action="Allow">
      <Conditions>
        <FilePublisherCondition PublisherName="O=PALO ALTO NETWORKS, L=SANTA CLARA, S=CALIFORNIA, C=US" ProductName="GLOBALPROTECT" BinaryName="PANGPA.EXE">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
  </RuleCollection>

Voici la liste des OMA-URI pour les différent type :

  • Exe: ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/EXE/Policy
  • MSI: ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/MSI/Policy
  • Script: ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/Script/Policy
  • Appx : ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/StoreApps/Policy

 

N'oubliez pas de modifier l'option EnforcementMode="AuditOnlyen EnforcementMode="Enabledsi vous souhaitez une application stricte des règles sur les postes de travails.

Une fois l'affectation a un groupe de devices réalisé, coté poste de travail, lors du lancement d'un programme ayant une règle de restriction, voici le message reçu. 

Il n'est malheureusement pas personnalisable.


Vous aurez dans la log du gestionnaire d'évènements (pour les administrateurs) la possibilité de visualisé le produit bloqué et ainsi modifier les règles si besoin.

Voila, vous avez, grâce à cet article, toutes les informations pour commencer l'implémentation de Applocker. Néanmoins, il faut garder en mémoire que Applocker n'est plus activement développé par Microsoft et  que son "successeur" est probablement Windows Defender Application Control (WDAC).

Nous y accorderons peut-être un article dédié prochainement,

Merci pour votre lecture.