logo

Comprendre la protection LSA

Dans le contexte actuel où les menaces informatiques sont de plus en plus sophistiquées, assurer la bonne exécution de vos serveurs Windows et de Windows 10 est essentiel. En effet, vos serveurs et votre système opérationnel sont en général parmi les premiers à être compromis lors d’une attaque exploitant le maillon le plus faible de la chaîne, l’utilisateur. Pour obtenir accès à vos machines, les acteurs de la menace s’appuient sur des méthodes d’usurpation et des techniques d’ingénierie sociale, et tentent ensuite un mouvement latéral pour élever leurs privilèges. Par conséquent, améliorer la sécurité des points de terminaison et des serveurs peut sensiblement réduire le risque de violation de la sécurité.

Sélection de contenu connexe :

L’une des manières de renforcer la sécurité d’un serveur est de protéger l’autorité de sécurité locale (LSA). Cette dernière assure le contrôle et la gestion des droits de l’utilisateur, des hachages de mot de passe et d’autres informations importantes en mémoire. Les outils utilisés par les attaquants, comme mimikatz, se basent sur l’accès à ces données pour copier les hachages de mot de passe ou les mots de passe en texte en clair. Activer la protection LSA configure les paramètres de Windows qui permettent un contrôle plus sûr des informations stockées en mémoire, ce qui empêche notamment les processus non protégés d’accéder à ces données.

Qu’est-ce qu’un processus protégé ?

On considère qu’un processus est protégé lorsqu’il remplit les conditions présentées dans cette documentation Microsoft. En bref, un processus est considéré comme protégé s’il dispose d’une signature vérifiée et adhère au Microsoft Security Development Lifecycle (SDL). Si l’une de ces deux conditions n’est pas remplie, le processus ne peut pas accéder au contenu en mémoire en cours d’utilisation par la LSA.

Comment activer la protection LSA

Les paramètres de la protection LSA sont définis dans le registre, et il est donc facile de l’activer sur l’ensemble de vos appareils en appliquant une stratégie de groupe : Il vous suffit de définir sur 1 la valeur de la variable RunAsPPL. Vous trouverez ce paramètre dans le registre. Ici : SYSTEM\CurrentControlSet\Control\Lsa.

Pour définir la valeur sur 1, vous pouvez vous servir du code suivant (dans un fichier .reg) :

*Bloc de code* 
Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] 
"RunAsPPL"=dword:00000001 
*Bloc de code*

Vérification de vos paramètres

Pour vous assurer que tous vos serveurs sont protégés, vérifiez que la variable de la clé de registre mentionnée ci-dessus affiche la valeur 1.

Toutefois, pour vous faciliter la tâche, voici un script PowerShell qui vous permet d’interroger à distance la valeur de cette variable pour un poste spécifique (en supposant que vous disposez des droits d’accès nécessaires). Il vous suffit de remplacer [SAMPLEHOST] par le nom d’hôte de l’ordinateur. Le code renvoie les valeurs 0 ou 1, ou une exception qui indique que la variable RunAsPPL n’existe pas. Si le résultat de la requête est différent de 1, le paramètre n’est pas activé sur le poste cible.

*Bloc de code* 
invoke-command -Computer [SAMPLEHOST] {Get-itempropertyvalue -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name RunAsPPL} 
*Bloc de code*