Il est 9h12. Un utilisateur envoie un message : « Cet installateur fonctionnait hier. » Le helpdesk réessaie. Même résultat : bloqué. Pas d’alerte de malware, pas d’invite SmartScreen évidente, et l’historique de Defender semble propre. La direction entend « Windows est cassé. » Vous entendez « la politique a changé », ce qui est plus exact et moins drôle.
Intelligent App Control (IAC) est la nouvelle porte d’entrée de Microsoft qui n’autorise que l’exécution de logiciels « connus comme sûrs ». Quand ça marche, c’est délicieusement ennuyeux. Quand ça ne marche pas, c’est une interruption de production en cardigan.
Ce qu’est IAC (et ce qu’il n’est pas)
Le Contrôle d’application intelligent est une fonctionnalité Windows qui empêche l’exécution d’applications qui ne satisfont pas un seuil de « connu comme sûr ». Pensez-y comme à une porte d’exécution centrée sur l’intégrité du code et la réputation, pas comme un scanner qui traque des modèles connus de malveillance.
IAC est destiné en priorité aux environnements grand public et aux petites/moyennes entreprises, mais il apparaît dans les conversations d’entreprise parce qu’il se comporte comme un contrôle d’allowlisting simplifié. Ce n’est pas un remplaçant de WDAC dans des parcs rigoureusement gérés. Ce n’est pas AppLocker avec un meilleur marketing. Et ce n’est certainement pas « Defender mais plus strict ».
Ce que fait IAC
- Empêche l’exécution d’exécutables inconnus ou non fiables en se basant sur la politique et les signaux de confiance.
- S’appuie sur l’intégrité du code et la réputation pour décider de ce qui est acceptable.
- Réduit le risque au premier lancement lié aux outils téléchargés, aux installateurs ad hoc et aux droppers de type « living-off-the-land » qui reposent sur l’exécution de code arbitraire.
Ce que IAC ne fait pas
- Il ne « nettoie » pas les malwares. Si quelque chose a déjà été exécuté et a persisté, c’est un autre problème.
- Il ne garantit pas la sécurité. Un logiciel signé peut être malveillant. Un éditeur réputé peut être compromis. Les attaquants aiment la chaîne d’approvisionnement.
- Il ne remplace pas le patching ni le principe du moindre privilège. Il les complète.
Blague n°1 : L’allowlisting, c’est comme un videur avec un bloc-notes. Il n’empêche pas les bagarres à l’intérieur du club, mais il empêche la plupart des inconnus portant des feux d’artifice d’entrer.
Pourquoi Microsoft l’a publié : le modèle de menace
Les postes Windows restent ceux où la plupart des organisations saignent. Pas parce que Windows est exceptionnellement maudit, mais parce que les postes sont l’endroit où les gens cliquent, exécutent et installent des choses. Les attaquants n’ont pas besoin d’élégance quand ils ont des factures déguisées en PDF.
IAC cible une défaillance brutalement commune : l’exécution de code inconnue. Pas « malware connu », pas « malware détecté », mais « un binaire que nous n’avons jamais vu s’exécuter avec le contexte utilisateur, et parfois avec escalade ».
Les problèmes qu’IAC cherche à réduire
- Installateurs drive-by que les utilisateurs lancent parce qu’un site leur a dit de mettre à jour un codec.
- Payloads côté chargé déposés par des macros, des moteurs de script ou des installateurs abusés.
- Dérive des postes développeurs où des « outils temporaires » deviennent un risque permanent de chaîne d’approvisionnement.
- Shadow IT sous la forme d’outils de support à distance aléatoires et d’éditeurs de PDF « gratuits ».
Du point de vue SRE, IAC est la reconnaissance par Microsoft que les contrôles basés uniquement sur la détection créent trop de temps moyen pour prouver l’innocence. Bloquer le code inconnu à la porte est parfois le seul moyen de garder le rayon d’impact assez petit pour déboguer rationnellement.
Comment IAC décide : signaux de confiance et chemin d’exécution
IAC est plus facile à comprendre si vous arrêtez de penser « antivirus » et commencez à penser « politique d’exécution ». La question centrale n’est pas « est-ce malveillant ? » mais « est-ce autorisé à s’exécuter ? » Cette subtilité change la façon de dépanner et de concevoir des exceptions.
Entrées de décision (vue pratique)
- Signature du code et confiance du certificat : le binaire est-il signé ? L’éditeur est-il réputé ? La chaîne est-elle valide ?
- Réputation / intelligence cloud : Microsoft a-t-il vu ce fichier (ou similaire) largement et en toute sécurité ?
- État de la politique d’intégrité du code : sommes-nous en mode appliqué qui bloque les inconnus ?
- Contexte : certains contrôles se comportent différemment selon que le fichier est téléchargé (Mark-of-the-Web), son origine ou la manière dont il a été lancé.
Que se passe-t-il à l’exécution
Lorsqu’un processus est créé, Windows évalue si l’image est autorisée. Dans les scénarios avec IAC activé, le système consulte la politique d’intégrité du code et l’intelligence associée pour autoriser, bloquer, ou parfois exiger des voies d’élévation/approbation selon la configuration. Si le fichier est bloqué, l’utilisateur voit souvent un message générique qui ressemble à SmartScreen, mais la plomberie d’application est plus proche de Windows Defender Application Control (WDAC) que d’une invite de navigateur.
Pourquoi cela commence « soudainement »
La plupart des incidents « ça marchait hier » se résument à :
- Un appareil est passé dans un état où IAC est devenu actif (installation fraîche, réinitialisation, nouveau build).
- Un outil métier a été mis à jour et sa signature ou son emballage a changé.
- Un binaire auxiliaire auparavant toléré et non signé est désormais jugé inconnu et bloqué.
- SmartScreen était la face visible auparavant ; IAC devient l’application de la règle derrière maintenant.
IAC vs Defender vs SmartScreen vs WDAC vs AppLocker
C’est ici que la plupart des équipes se perdent : ces fonctionnalités se chevauchent dans l’expérience utilisateur, mais elles vivent à différentes couches et répondent à des questions différentes. Si vous les confondez, vous appliquerez la mauvaise solution, puis vous vous demanderez pourquoi le blocage persiste.
Defender Antivirus : « Est-ce malveillant ? »
Defender AV est principalement un moteur de détection et de remédiation. Il scanne les fichiers au repos et en mouvement, utilise des signatures, des heuristiques, la surveillance du comportement et l’intelligence cloud pour décider si quelque chose est malware. Il peut mettre en quarantaine, remédier et rapporter. Ce n’est pas fondamentalement un allowlist.
Implication opérationnelle : si un binaire est bloqué par IAC, vous pouvez regarder l’historique de Defender toute la journée et ne rien trouver. Ce n’est pas un bug de Defender. C’est vous qui regardez dans le mauvais tiroir.
SmartScreen : « Faisons-nous confiance à ce téléchargement ou à cet éditeur ? »
SmartScreen est guidé par la réputation et apparaît souvent au moment du téléchargement ou du premier lancement, surtout pour les fichiers avec Mark-of-the-Web. C’est la version Windows d’un ami sceptique qui demande : « Tu es sûr que tu l’as obtenu d’un endroit normal ? » Il peut avertir, bloquer ou demander des clics supplémentaires.
Différence clé : SmartScreen est souvent une invite utilisateur et une vérification de réputation. IAC est une posture de politique plus forte qui peut devenir un blocage dur sans « cliquer quand même pour exécuter ».
WDAC : « Ce code est-il autorisé à s’exécuter, point final ? »
Windows Defender Application Control est le cadre d’entreprise pour l’allowlisting d’intégrité du code. Les politiques WDAC peuvent être extrêmement strictes et très précises : autoriser le code signé par Microsoft, autoriser des éditeurs spécifiques, autoriser des hachages pour des binaires exacts, autoriser des chemins sous certaines protections, etc.
Relation : IAC est conceptuellement adjacent à WDAC. En pratique, vous devez supposer que l’application et la journalisation d’IAC ressemblent davantage au comportement d’intégrité du code qu’à celui d’un antivirus.
AppLocker : « Cet utilisateur peut-il exécuter cette application ? » (et « Quelles règles appliquer ? »)
AppLocker est plus ancien, basé sur des politiques, et souvent déployé via les stratégies de groupe dans les environnements de domaine. Il peut restreindre les exécutables, scripts, packages Windows Installer et applications packagées en utilisant des règles par éditeur/chemin/hachage.
Différence clé : AppLocker est basé sur des règles et géré par les administrateurs. IAC est plus dogmatique et sensible à la réputation, conçu pour être « sûr par défaut » sans vous demander d’écrire 400 règles avant le déjeuner.
Où les administrateurs se brûlent
- Ils désactivent SmartScreen en pensant que le problème est résolu. IAC continue de bloquer parce que ce n’est pas SmartScreen.
- Ils ajoutent des exclusions Defender pour un dossier. IAC bloque toujours parce que ce n’est pas un scanner ; c’est une politique d’exécution.
- Ils créent une règle allow AppLocker mais l’appareil n’utilise pas AppLocker pour l’application dans ce scénario. L’utilisateur est toujours bloqué.
- Ils déploient WDAC sans plan et empilent par inadvertance l’application avec des postures de type IAC. Ensuite, ils blâment « Windows ».
Faits et histoire intéressants à utiliser en réunion
- L’allowlisting existait avant le battage médiatique autour des AV modernes. Les entreprises faisaient des « listes de logiciels approuvés » bien avant que le ransomware ne le rende à la mode.
- AppLocker est arrivé en successeur des Software Restriction Policies (SRP). SRP était efficace mais grossier ; AppLocker a ajouté des règles par éditeur et une meilleure gestion.
- L’intégrité du code n’est pas nouvelle. Windows applique la signature des modules noyau depuis des années ; les contrôles d’intégrité du code en espace utilisateur se sont étendus avec le temps.
- L’origine de SmartScreen est la réputation. Il n’a pas été conçu pour attraper tous les malwares ; il a été conçu pour avertir sur les téléchargements et le phishing à faible réputation.
- WDAC était souvent appelé Device Guard dans de nombreuses conversations. Le nom a évolué, la douleur est restée familière : « super sécurité, maintenant rendez-la utilisable. »
- Mark-of-the-Web a changé la sécurité des endpoints. Ce petit indicateur « téléchargé depuis Internet » est devenu un input clé pour les macros Office, SmartScreen et les avertissements au premier lancement.
- Microsoft a renforcé la posture « défaut refuser » après des vagues de ransomware commodity. L’industrie a appris que la détection seule est une taxe que vous payez pour toujours.
- Les systèmes de réputation ont un problème d’amorçage. Les nouvelles applications internes sont « inconnues » par définition, d’où l’importance des workflows d’exception en entreprise.
Modèle opérationnel : ce qui change dans les opérations IT
IAC n’est pas qu’un simple interrupteur ; c’est un engagement à avoir une opinion sur les logiciels qui doivent se trouver sur vos postes. Si votre organisation traite actuellement les postes comme des ordinateurs personnels avec juste l’e-mail d’installé, vous allez ressentir des frictions. De bonnes frictions, mais des frictions.
L’état d’esprit sain
- Standardisez la distribution logicielle. Plus vous comptez sur le « télécharger et exécuter », plus IAC ressemblera à un incident constant.
- Privilégiez les logiciels signés par des éditeurs réputés. Si vos outils internes ne sont pas signés, vous choisissez la douleur.
- Mettez en place un processus d’exception avec télémétrie. Si vous ne pouvez pas répondre « qu’est-ce qui a été bloqué, où et pourquoi », vous allez créer des exceptions en mode cargo-cult.
- Concevez pour les mises à jour. Des règles d’autorisation qui cassent à chaque cycle de patch ne sont pas de la sécurité ; c’est du théâtre.
Une citation sur la fiabilité à coller sur vos demandes de changement
L’espoir n’est pas une stratégie.
— Général Gordon R. Sullivan
La posture de sécurité est la même : vous ne « croyez » pas que les utilisateurs n’exécutent que des applications sûres. Soit vous l’appliquez, soit vous ne l’appliquez pas.
Tâches pratiques : commandes, sorties et décisions (12+)
Voici ce que j’exécute réellement quand une machine commence à bloquer des applications et que le ticket est rempli de captures d’écran et d’émotions. Les commandes sont écrites comme si elles étaient exécutées dans un environnement PowerShell-like, mais affichées dans une invite générique selon votre contrainte de formatage. Interprétez les sorties ; prenez une décision.
Tâche 1 : Confirmer la build et l’édition de Windows (car les fonctionnalités sont restreintes)
cr0x@server:~$ systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name: Microsoft Windows 11 Enterprise
OS Version: 10.0.22631 N/A Build 22631
Ce que cela signifie : Vous êtes sur Windows 11, build récente. IAC est dans le périmètre selon l’état et la configuration de l’appareil.
Décision : Si c’est Windows 10 ou une build plus ancienne, arrêtez d’incriminer IAC et orientez-vous vers WDAC/AppLocker/SmartScreen ou la politique AV classique.
Tâche 2 : Vérifier si Secure Boot est activé (beaucoup de protections modernes en dépendent)
cr0x@server:~$ powershell -NoProfile -Command "Confirm-SecureBootUEFI"
True
Ce que cela signifie : Secure Boot est activé ; les protections d’intégrité du code sont dans une posture correcte.
Décision : Si False ou erreurs (BIOS legacy), attendez-vous à une application incohérente et à des garanties plus faibles. Documentez-le ; ne « contournez » pas cela avec des exclusions.
Tâche 3 : Vérifier l’état de la sécurité basée sur la virtualisation (contexte VBS / HVCI)
cr0x@server:~$ powershell -NoProfile -Command "Get-CimInstance -ClassName Win32_DeviceGuard | Select-Object -ExpandProperty SecurityServicesRunning"
1
2
Ce que cela signifie : Des services de sécurité fonctionnent (les valeurs varient). Indique souvent que VBS/HVCI sont actifs.
Décision : Si rien ne tourne, vous pouvez toujours voir un comportement IAC mais avec moins de garanties d’intégrité. Pour des environnements stricts, alignez d’abord les fonctionnalités de base.
Tâche 4 : Interroger l’état de Windows Defender (pour séparer les blocages AV des blocages IAC)
cr0x@server:~$ powershell -NoProfile -Command "Get-MpComputerStatus | Select-Object AMServiceEnabled,AntivirusEnabled,RealTimeProtectionEnabled"
AMServiceEnabled : True
AntivirusEnabled : True
RealTimeProtectionEnabled : True
Ce que cela signifie : Defender est actif. Cela ne prouve pas que Defender bloque l’application ; cela confirme juste que l’AV est en jeu.
Décision : Si Defender est désactivé à cause d’un AV tiers, l’utilisateur peut toujours voir des blocages IAC ; ne présumez pas que le fournisseur AV est la cause.
Tâche 5 : Vérifier rapidement l’historique des menaces de Defender (chercher de vraies détections)
cr0x@server:~$ powershell -NoProfile -Command "Get-MpThreatDetection | Select-Object -First 3 ThreatName,ActionSuccess,InitialDetectionTime"
ThreatName ActionSuccess InitialDetectionTime
---------- ------------- --------------------
Trojan:Win32/Wacatac.B!ml True 1/18/2026 2:14:11 PM
Ce que cela signifie : Defender a détecté quelque chose récemment. Cela peut coexister avec IAC mais constitue un fil séparé.
Décision : Si une détection pertinente correspond au chemin ou au hash du fichier bloqué, traitez-le comme un malware jusqu’à preuve du contraire. Ne contournez pas les contrôles pour « permettre le travail ».
Tâche 6 : Inspecter les événements liés à SmartScreen (invites de réputation)
cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -LogName 'Microsoft-Windows-SmartScreen/Debug' -MaxEvents 5 | Select-Object TimeCreated,Id,Message"
Get-WinEvent : The specified channel could not be found.
Ce que cela signifie : Le canal de debug SmartScreen peut ne pas exister/être activé sur cet hôte (fréquent). Ne vous arrêtez pas là.
Décision : Pivotez vers les logs d’intégrité du code et AppLocker ; la journalisation SmartScreen n’est pas toujours disponible.
Tâche 7 : Extraire les événements opérationnels de Code Integrity (où apparaissent les blocages IAC/WDAC)
cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -MaxEvents 5 | Select-Object TimeCreated,Id,Message"
TimeCreated Id Message
----------- -- -------
2/5/2026 9:10:04 AM 3077 Code Integrity determined that a process (\Device\HarddiskVolume3\Users\sam\Downloads\tool.exe) attempted to load \Device\HarddiskVolume3\Users\sam\Downloads\tool.exe that did not meet the Store signing level requirements.
Ce que cela signifie : C’est le journal clé. Il indique qu’une décision d’intégrité du code a bloqué ou contraint l’exécution.
Décision : Si vous voyez le chemin du binaire cible ici, considérez-le comme un problème d’allowlisting/intégrité (IAC/WDAC), pas un faux positif AV.
Tâche 8 : Vérifier les logs AppLocker (au cas où ce serait AppLocker)
cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL' -MaxEvents 3 | Select-Object TimeCreated,Id,Message"
TimeCreated Id Message
----------- -- -------
2/5/2026 9:09:58 AM 8004 %SYSTEM32%\tool.exe was prevented from running.
Ce que cela signifie : AppLocker bloque activement un EXE/DLL. Chemin de correction différent de IAC.
Décision : Si AppLocker est le bloqueur, ne perdez pas de temps sur les bascules IAC. Inspectez les règles GPO et le mode d’application.
Tâche 9 : Voir la politique AppLocker effective (débogage des règles)
cr0x@server:~$ powershell -NoProfile -Command "Get-AppLockerPolicy -Effective -Xml"
...
Ce que cela signifie : Les règles AppLocker sont activées et vous pouvez inspecter le modèle allow/deny.
Décision : Si l’éditeur/chemin/hachage de l’application ne correspond pas à une règle autorisée (ou tombe sous un deny), ajoutez une règle par éditeur quand c’est possible. Évitez les règles par hachage sauf si vous aimez la maintenance hebdomadaire.
Tâche 10 : Vérifier si le fichier a le Mark-of-the-Web (MOTW) et provient d’internet
cr0x@server:~$ powershell -NoProfile -Command "Get-Item -Path 'C:\Users\sam\Downloads\tool.exe' -Stream Zone.Identifier -ErrorAction SilentlyContinue | Format-List"
FileName : C:\Users\sam\Downloads\tool.exe:Zone.Identifier
Length : 26
Ce que cela signifie : Le fichier possède un flux de données alterné Zone.Identifier. SmartScreen et les vérifications de réputation liées se déclenchent souvent au premier lancement pour les fichiers MOTW.
Décision : Si c’est un outil interne légitime distribué par e-mail ou téléchargement navigateur, arrêtez de procéder ainsi. Déplacez la distribution vers un canal géré (Intune/ConfigMgr, installateur signé, dépôt interne).
Tâche 11 : Afficher la signature Authenticode du fichier (signé vs non signé)
cr0x@server:~$ powershell -NoProfile -Command "Get-AuthenticodeSignature -FilePath 'C:\Users\sam\Downloads\tool.exe' | Format-List"
SignerCertificate :
Status : NotSigned
StatusMessage : The file is not digitally signed.
Ce que cela signifie : Les binaires non signés sont le chemin le plus rapide vers « inconnu ». Dans des postures de type IAC, non signé rime souvent avec bloqué.
Décision : Pour le logiciel interne, corrigez la chaîne : signez le code, signez les installateurs et les artefacts de version. Ne normalisez pas « juste débloquez-le ».
Tâche 12 : Vérifier l’éditeur et la chaîne de certificats quand c’est signé
cr0x@server:~$ powershell -NoProfile -Command "Get-AuthenticodeSignature -FilePath 'C:\Program Files\Vendor\App\app.exe' | Select-Object Status,SignerCertificate | Format-List"
Status : Valid
SignerCertificate : [Subject]
CN=Vendor LLC, O=Vendor LLC, L=Seattle, S=WA, C=US
Ce que cela signifie : La signature est valide et la chaîne est établie. La réputation peut rester faible, mais vous n’êtes plus face à un « mystère non signé ».
Décision : Si signé mais bloqué, investiguez la réputation/les règles d’autorisation ; envisagez l’allowlisting par éditeur dans WDAC/AppLocker au lieu de désactiver les contrôles.
Tâche 13 : Identifier ce qui a réellement bloqué l’exécution (corréler par horaire)
cr0x@server:~$ powershell -NoProfile -Command "$t=(Get-Date).AddMinutes(-20); Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-CodeIntegrity/Operational'; StartTime=$t} | Select-Object -First 10 TimeCreated,Id,Message"
TimeCreated Id Message
----------- -- -------
2/5/2026 9:10:04 AM 3077 Code Integrity determined that a process (...) attempted to load (...) that did not meet the Store signing level requirements.
Ce que cela signifie : Vous avez une vue limitée dans le temps. C’est ainsi que vous prouvez aux parties prenantes qu’il s’agit d’une application de politique, pas d’un « Windows qui nous déteste au hasard ».
Décision : Utilisez ces IDs d’événements pour construire une vue de détection/alerte dans votre SIEM. Si vous ne centralisez pas cela, vous continuerez de déboguer à partir de captures d’écran.
Tâche 14 : Vérifier la présence des fichiers de politique WDAC / intégrité du code (quand vous suspectez des politiques d’entreprise)
cr0x@server:~$ dir C:\Windows\System32\CodeIntegrity
Volume in drive C has no label.
Directory of C:\Windows\System32\CodeIntegrity
02/05/2026 09:01 AM <DIR> .
02/05/2026 09:01 AM <DIR> ..
01/20/2026 04:31 PM 245,760 SiPolicy.p7b
Ce que cela signifie : Un fichier de politique d’intégrité du code existe. Cela indique souvent qu’une application de type WDAC est configurée, indépendamment de ce que l’utilisateur pense être activé.
Décision : Si vous voyez des artefacts de politique, traitez l’environnement comme géré par allowlisting. Coordonnez les changements via le propriétaire de la politique ; n’essayez pas de « réparer » sur un seul endpoint.
Tâche 15 : Vérifier si le binaire bloqué est lancé depuis un emplacement modifiable par l’utilisateur
cr0x@server:~$ powershell -NoProfile -Command "Test-Path 'C:\Users\sam\AppData\Local\Temp\tool.exe'"
True
Ce que cela signifie : L’application s’exécute depuis Temp. C’est un chemin classique d’utilisation malveillante, et les contrôles modernes s’en méfient.
Décision : Corrigez l’installateur ou l’emballage. Un logiciel légitime ne doit pas exécuter des exécutables principaux depuis Temp sur le long terme. Déplacez-le vers Program Files avec une signature appropriée.
Tâche 16 : Confirmer l’application des stratégies de groupe (si AppLocker est suspecté)
cr0x@server:~$ gpresult /r
COMPUTER SETTINGS
------------------
Applied Group Policy Objects
-----------------------------
Workstation Baseline
App Control Policy
Ce que cela signifie : Des GPOs sont appliquées qui incluent probablement des règles de contrôle d’application.
Décision : Si une nouvelle GPO a été déployée récemment, corrélez l’heure du changement avec l’heure de l’incident. Revenir en arrière de façon délibérée ; n’ajoutez pas tout le monde aux administrateurs locaux.
Guide de diagnostic rapide
Si vous n’avez que dix minutes avant qu’une réunion ne se transforme en festival de blâme, faites ceci dans l’ordre. L’objectif est d’identifier la couche d’application, puis la raison, puis la plus petite remédiation sûre.
1) Identifier la couche d’application (ne pas deviner)
- Vérifiez le journal opérationnel Code Integrity pour des événements de blocage et le chemin du fichier.
- Vérifiez les logs AppLocker pour des événements de prévention explicites.
- Vérifiez les détections Defender pour quarantaines/détections.
- Vérifiez le MOTW et les symptômes type SmartScreen (contexte du fichier téléchargé).
Goulot que vous recherchez : « Quel sous-système a dit non ? » Tout le reste est du bruit.
2) Déterminer pourquoi le binaire est « inconnu »
- Est-il non signé ?
- Est-il signé mais d’un éditeur nouveau/à faible réputation ?
- S’exécute-t-il depuis un répertoire modifiable par l’utilisateur comme Downloads/Temp ?
- L’application vient-elle d’être mise à jour et a changé de signature ou d’emballage ?
Goulot que vous recherchez : échec du signal de confiance (signature, réputation, emplacement, incompatibilité de politique).
3) Choisir une remédiation qui n’engendre pas d’incidents futurs
- Meilleur : distribuer via un déploiement logiciel géré + artefacts signés.
- Acceptable : règle allow basée sur l’éditeur (AppLocker/WDAC) pour un éditeur stable.
- Dernier recours : règles allow par hachage pour une version binaire spécifique.
- Ne pas : désactiver IAC/WDAC/SmartScreen sur tout le parc parce qu’un outil est bloqué.
Blague n°2 : Désactiver le contrôle des applis pour exécuter un outil, c’est comme enlever la porte d’entrée parce qu’une boîte pizza ne rentrait pas. Ça marche, mais vous n’aimerez pas la suite.
Trois mini-récits d’entreprise issus du terrain
Mini-récit 1 : L’incident causé par une fausse hypothèse
Une entreprise financière de taille moyenne a déployé de nouveaux ordinateurs portables Windows 11 à un groupe pilote. En deux jours, leur « helper VPN » interne a cessé de se lancer. Le helpdesk a supposé que Defender l’avait mis en quarantaine, parce que c’est l’histoire familière : « l’AV casse l’application encore ». Ils ont ajouté une exclusion Defender pour le répertoire de l’outil et demandé aux utilisateurs de réessayer.
Ça ne fonctionnait toujours pas. Même message de blocage, même colère des utilisateurs. L’escalade est arrivée jusqu’à l’ingénierie endpoint, qui a passé une demi-journée à fouiller les logs Defender, pour ne rien trouver correspondant au fichier. L’outil n’était pas détecté ; il se voyait refuser l’exécution.
La percée a été ennuyeuse : quelqu’un a enfin consulté les événements opérationnels Code Integrity et a trouvé que l’EXE du helper n’était pas signé et s’exécutait depuis le dossier Downloads de l’utilisateur parce que l’« installateur » était une archive auto-extractible. Sur les anciennes builds, les avertissements SmartScreen étaient cliquables et les utilisateurs avaient pris l’habitude de les ignorer. Sur la nouvelle baseline, le système a tout simplement refusé.
La correction n’a pas été une exclusion plus large. Ils ont reconstruit le helper en tant qu’installateur correctement signé qui plaçait les binaires sous Program Files et ont signé l’exécutable avec le certificat de signature de code de l’entreprise. L’incident s’est terminé, et ainsi que l’habitude de distribuer des « installateurs » en envoyant des zip par e-mail.
Mini-récit 2 : L’optimisation qui s’est retournée contre eux
Une société de fabrication mondiale a jugé que l’emballage logiciel était « trop lent ». Ils ont optimisé le processus en autorisant les équipes à publier des utilitaires internes sur un partage de fichiers et les exécuter directement, sans emballage, sans signature, « pour la vitesse ». Ça a fonctionné pendant des mois, jusqu’à ce que ça ne marche plus.
Après une mise à jour de baseline OS, une partie des endpoints a commencé à bloquer ces utilitaires. Les ingénieurs ont essayé l’évidence : déplacer les utilitaires sur un autre partage, les renommer, les zipper, les dézipper. Chaque contournement changeait le symptôme mais pas le problème de fond.
La cause silencieuse : leur « optimisation » a créé un flux permanent de binaires inconnus qui n’ont jamais été signés ni distribués via un canal contrôlé. La réputation n’a jamais eu la chance d’exister. L’application de la politique a finalement fait son travail. L’environnement n’était pas cassé ; il est devenu enfin cohérent.
La remédiation a été coûteuse en temps calendaire mais peu coûteuse en incidents : ils ont mis en place une chaîne minimale d’emballage interne qui signe les binaires, les versionne, et les déploie via leur outil de gestion des endpoints. Le chemin « rapide » générait une longue traîne d’échecs et de chaos opérationnel. Ils ont retrouvé leur vitesse, mais d’une manière qui n’exigeait ni superstition ni renommages de fichiers.
Mini-récit 3 : La pratique ennuyeuse mais correcte qui a sauvé la situation
Une organisation de santé avait déjà vécu un événement ransomware. Leur réponse n’a pas été spectaculaire. Ils ont créé un processus d’admission d’app : chaque nouvel outil doit être signé, se voir assigner un propriétaire, et être distribué via un déploiement géré. Les exceptions nécessitaient un ticket, une justification métier et une expiration.
Quand les blocages de type IAC ont commencé à apparaître sur de nouveaux appareils Windows 11, ils n’ont pas paniqué. Ils avaient déjà l’habitude de consulter les bons logs et de corréler les événements de blocage avec les enregistrements de distribution logicielle.
Un vendredi après-midi, un vendeur a poussé un hotfix d’urgence qui a modifié la chaîne de signature sur un petit exécutable auxiliaire. Une poignée d’appareils l’a bloqué. Au lieu de désactiver la protection, l’équipe a mis en pause le déploiement, validé la nouvelle signature, mis à jour les règles d’autorisation/confiance éditeur où approprié, puis repris le déploiement. Les utilisateurs ont vu un court délai, pas une panne d’une semaine.
Les parties « ennuyeuses »—signature, ownership, télémétrie et déploiement par vagues—ont fait que l’incident a été un changement contrôlé, pas un feu de production. Voilà à quoi ressemble des opérations endpoints matures : moins d’héroïsme, plus de preuves.
Erreurs courantes : symptômes → cause → correctif
1) « Nous avons ajouté une exclusion Defender, mais c’est toujours bloqué. »
Symptôme : L’application ne s’exécute pas ; Defender n’affiche aucune détection ; les exclusions n’aident pas.
Cause : Ce n’est pas une détection AV. C’est une application d’intégrité du code / allowlisting (IAC/WDAC/AppLocker).
Correctif : Vérifiez les logs CodeIntegrity et AppLocker. Passez à des artefacts signés et à un modèle de règles allow ; n’étendez pas les exclusions AV.
2) « Désactiver SmartScreen n’a rien changé. »
Symptôme : Les utilisateurs sont toujours bloqués après la désactivation de SmartScreen via stratégie.
Cause : Les invites SmartScreen ne sont pas la couche d’application ; IAC/WDAC bloque l’exécution.
Correctif : Confirmez dans le journal opérationnel CodeIntegrity. Si vous avez besoin d’exceptions, implémentez-les dans WDAC/AppLocker ou ajustez la distribution/signature de l’application.
3) « Ça ne plante que quand c’est lancé depuis Downloads. »
Symptôme : Le même EXE s’exécute depuis Program Files mais pas depuis Downloads/Temp.
Cause : MOTW + emplacement modifiable par l’utilisateur déclenche une posture de réputation/intégrité plus stricte.
Correctif : Installez correctement (installateur signé vers Program Files). N’apprenez pas aux utilisateurs à exécuter des outils métier depuis Downloads.
4) « Nous avons autorisé le hachage, et ça a recommencé après la mise à jour. »
Symptôme : Après chaque mise à jour du vendeur, l’application est de nouveau bloquée.
Cause : Les règles par hachage sont spécifiques à la version ; les mises à jour changent les hachages.
Correctif : Utilisez des règles par éditeur (basées sur le certificat) ou des règles basées sur le package. Les règles par hachage sont un pansement tactique, pas une stratégie.
5) « Seulement certaines machines le bloquent, d’autres fonctionnent. »
Symptôme : Comportement incohérent entre endpoints.
Cause : Baselines différentes : build Windows, état IAC, Secure Boot/VBS, ou politiques appliquées différentes (GPO/MDM).
Correctif : Comparez les baselines (build OS, gpresult, présence des fichiers de politique CodeIntegrity). Standardisez la configuration avant de chasser des fantômes.
6) « L’application est signée, alors pourquoi est-elle bloquée ? »
Symptôme : La signature Authenticode est valide mais l’exécution est refusée.
Cause : La signature est nécessaire, pas suffisante. La réputation peut être faible ; la politique peut requérir des niveaux de signature spécifiques ; la chaîne peut être acceptable mais pas autorisée par une règle.
Correctif : Validez l’identité de l’éditeur et la chaîne. Privilégiez les règles allow par éditeur pour les vendeurs de confiance ; pour les apps internes, signez avec votre certificat d’entreprise et gérez la confiance correctement.
7) « Nous l’avons résolu en donnant les droits d’admin locaux aux utilisateurs. »
Symptôme : Quelqu’un a élevé ses privilèges et l’application s’est lancée (ou a semblé le faire).
Cause : Vous avez changé le modèle de menace, pas le contrôle. De plus, beaucoup de blocages d’intégrité du code ne tiennent pas compte des droits admin.
Correctif : Rétablissez la bonne gouvernance des admins locaux. Corrigez la distribution/signature/politique. L’admin par défaut est la voie royale vers une compromission avec un excellent temps au clic.
Listes de contrôle / plan étape par étape
Checklist A : Quand un utilisateur signale « IAC a bloqué mon appli »
- Obtenez le chemin exact du fichier, le nom du fichier et l’horodatage du blocage.
- Extrait les événements opérationnels CodeIntegrity autour de cet horodatage.
- Extrait les événements AppLocker (log EXE et DLL) autour de cet horodatage.
- Vérifiez les détections Defender pour la même période (piste séparée).
- Inspectez la signature du fichier (signé ? valide ? quel éditeur ?).
- Vérifiez le MOTW (Zone.Identifier) pour le contexte de téléchargement.
- Décidez de la remédiation : reconditionner/signer/distribuer vs règle allow vs deny.
Checklist B : Construire un workflow d’exception sain
- Définissez « logiciels supportés » vs « installés par l’utilisateur ». Écrivez-le. Appliquez-le.
- Exigez un propriétaire pour chaque application autorisée (équipe, pas une personne).
- Privilégiez la confiance par éditeur (certificat) plutôt que par hachage ou chemin.
- Limitez les exceptions dans le temps avec expiration et renouvellement.
- Centralisez les logs : CodeIntegrity, AppLocker, détections Defender.
- Déploiements par étapes : pilote, anneaux, puis déploiement large.
- Exigez que les outils internes soient signés et construits via CI/CD.
Checklist C : Concevoir les applications internes pour éviter d’être bloquées
- Signez les exécutables et les installateurs avec un certificat de signature de code géré.
- Installez dans Program Files ; évitez de vivre dans Downloads/Temp.
- Évitez les archives auto-extractibles comme « installateurs » à moins d’aimer les tickets de support.
- Versionnez les artefacts ; n’écrasez pas les binaires en place sur des partages de fichiers.
- Documentez la cadence des mises à jour et les changements de signature.
- Testez sur une machine qui correspond à votre baseline la plus stricte.
FAQ
1) Le Contrôle d’application intelligent est-il identique à WDAC ?
Non. WDAC est le cadre complet d’entreprise pour les politiques d’intégrité du code et l’allowlisting. IAC est une posture plus opinionnée de « refuser par défaut les inconnus » qui se comporte de façon voisine de WDAC mais vise à réduire l’écriture de règles par les admins.
2) IAC est-il identique à SmartScreen ?
Non. SmartScreen est principalement une invite basée sur la réputation, souvent liée aux téléchargements et au premier lancement. IAC est une application qui peut bloquer l’exécution même lorsque les utilisateurs pourraient normalement cliquer pour continuer.
3) Si IAC bloque une appli, est-ce que c’est un malware ?
Pas automatiquement. Cela signifie que l’application n’a pas atteint le seuil de confiance (signature, réputation, politique). Traitez-la comme suspecte jusqu’à vérification, mais n’assimilez pas « inconnu » à « malveillant ».
4) Pourquoi mes outils internes sont-ils plus bloqués que les logiciels commerciaux ?
Parce que les outils internes sont souvent non signés, distribués de manière informelle et ont une faible réputation. Les éditeurs commerciaux signent généralement de façon cohérente et bénéficient de signaux de réputation étendus.
5) Puis-je simplement mettre en liste blanche un dossier comme C:\Tools\ ?
Vous pouvez, mais vous ne devriez pas. Les règles d’autorisation basées sur le chemin pour des emplacements modifiables par l’utilisateur sont la façon dont les attaquants transforment votre « dossier d’outils » en plateforme de déploiement. Privilégiez les règles par éditeur signé et des chemins d’installation gérés.
6) Pourquoi ça bloque seulement sur les nouveaux laptops Windows 11 ?
Les builds récentes et les installations fraîches ont souvent des valeurs par défaut plus strictes et des baselines de sécurité différentes (Secure Boot, VBS et posture de politique). Vos machines plus anciennes ont peut‑être dérivé, elles ne « marchent » pas mieux. Standardisez.
7) Comment prouver à la direction ce qui a bloqué l’application ?
Utilisez les journaux d’événements. Les événements opérationnels CodeIntegrity et les logs AppLocker fournissent des preuves directes avec horodatages et chemins de fichiers. Les captures d’écran de popups ne sont pas des preuves ; c’est du spectacle.
8) Quelle est la meilleure solution à long terme lorsque l’application d’un vendeur légitime est bloquée ?
Obtenez du vendeur des binaires correctement signés et une pratique de signature stable. En parallèle, implémentez des règles allow par éditeur (là où c’est approprié) et déployez via des canaux gérés pour que les mises à jour ne deviennent pas des « inconnus » aléatoires.
9) Donner l’accès administrateur local à l’utilisateur contourne-t-il IAC ?
Souvent non, et même quand cela change le comportement, ce n’est pas le bon levier. L’expansion des admins locaux augmente votre surface d’impact et rend la réponse aux incidents plus difficile. Corrigez la confiance et la distribution à la place.
10) Que devrais-je surveiller pour détecter cela avant que ça devienne une tempête de tickets ?
Centralisez et alertez sur les événements de blocage opérationnels CodeIntegrity et les événements de prévention AppLocker. Analysez-les par éditeur de binaire, chemin et cohorte d’appareils pour repérer les ruptures après des mises à jour ou des changements de politique.
Conclusion : prochaines étapes qui réduisent réellement le risque
Si vous retenez une chose : IAC est une porte d’exécution. Ne le dépannez pas comme un antivirus. Identifiez la couche d’application, lisez les logs d’intégrité du code, et corrigez le problème de confiance—pas le symptôme.
Prochaines étapes pratiques :
- Instrumenter : Commencez à collecter centralement les logs CodeIntegrity et AppLocker.
- Standardiser la distribution : Arrêtez le « télécharger et exécuter » pour les logiciels métier. Emballez-les.
- Signer le code interne : Faites de la signature de code une étape du build, pas un rituel en cas d’incident.
- Privilégier les règles par éditeur : Les règles par hachage sont pour les urgences, pas pour l’exploitation normale.
- Effectuer des déploiements par vagues : Laissez un groupe pilote détecter les surprises de réputation et de signature avant tout le monde.
Vous n’avez pas besoin d’aimer IAC. Vous devez simplement l’exploiter comme un contrôle de production : mesuré, observable et résistant aux exceptions panique.