Aller au contenu

Glossaire

Mode de langage restreint (Constrained Language Mode)

Mode de langage PowerShell qui bloque l'accès arbitraire à .NET, COM et aux API Win32, appliqué automatiquement par les stratégies de script d'App Control ou d'AppLocker.

Le Constrained Language Mode (CLM) est un mode de langage PowerShell qui autorise les cmdlets de base et les éléments simples du langage, mais bloque les fonctionnalités dont la plupart des outils offensifs ont besoin : types et méthodes .NET arbitraires, Add-Type, la plupart des objets COM et les appels directs aux API Win32. Le mode en cours est indiqué par $ExecutionContext.SessionState.LanguageMode.

Le CLM n'est robuste que lorsqu'il est imposé par le contrôle des applications. Avec une stratégie de script App Control for Business ou AppLocker en place, PowerShell exécute les scripts non approuvés et les sessions interactives en Constrained Language Mode, tandis que les scripts autorisés par la stratégie (par exemple signés par un certificat interne) s'exécutent en Full Language Mode. Définir la variable d'environnement __PSLockdownPolicy ne constitue pas une frontière de sécurité.

Voir Sécurité PowerShell : journalisation, v2, CLM et JEA.