Fonctionnement du contrôle de compte d’utilisateur
Le contrôle de compte d’utilisateur (UAC) est un composant fondamental de la vision globale de la sécurité de Microsoft. Le contrôle de compte d’utilisateur (UAC) permet de limiter l’impact des logiciels malveillants.
Processus de contrôle de compte d’utilisateur et interactions
Chaque application qui nécessite le jeton d’accès administrateur doit demander son consentement. La seule exception est la relation qui existe entre les processus parent et enfant. Les processus enfants héritent du jeton d’accès de l’utilisateur du processus parent. Toutefois, les processus parent et enfant doivent avoir le même niveau d’intégrité. Windows protège les processus en marquant leurs niveaux d’intégrité. Les niveaux d’intégrité sont des mesures de confiance. Une application à intégrité « élevée » est une application qui effectue des tâches qui modifient les données système, telles qu’une application de partitionnement de disque, tandis qu’une application à intégrité « faible » est une application qui effectue des tâches susceptibles de compromettre le système d’exploitation, comme un navigateur Web. Les applications avec des niveaux d’intégrité inférieurs ne peuvent pas modifier les données dans les applications avec des niveaux d’intégrité plus élevés. Lorsqu’un utilisateur standard tente d’exécuter une application qui nécessite un jeton d’accès administrateur, la UAC exige que l’utilisateur fournisse des informations d’identification d’administrateur valides.
Pour mieux comprendre comment ce processus se produit, examinons le processus d’ouverture de session Windows.
Processus d’ouverture de session
L’exemple suivant montre en quoi le processus d’ouverture de session d’un administrateur diffère du processus d’ouverture de session d’un utilisateur standard.
Par défaut, les utilisateurs et administrateurs standard accèdent aux ressources et exécutent des applications dans le contexte de sécurité des utilisateurs standard. Lorsqu’un utilisateur se connecte à un ordinateur, le système crée un jeton d’accès pour cet utilisateur. Le jeton d’accès contient des informations sur le niveau d’accès accordé à l’utilisateur, notamment des identificateurs de sécurité spécifiques (SID) et des privilèges Windows.
Lorsqu’un administrateur ouvre une session, deux jetons d’accès distincts sont créés pour l’utilisateur : un jeton d’accès utilisateur standard et un jeton d’accès administrateur. Le jeton d’accès utilisateur standard contient les mêmes informations spécifiques à l’utilisateur que le jeton d’accès administrateur, mais les privilèges Windows d’administration et les SID sont supprimés. Le jeton d’accès utilisateur standard est utilisé pour démarrer des applications qui n’effectuent pas de tâches d’administration (applications utilisateur standard). Le jeton d’accès utilisateur standard est ensuite utilisé pour afficher le bureau (explorer.exe). Explorer.exe est le processus parent dont tous les autres processus initiés par l’utilisateur héritent de leur jeton d’accès. Par conséquent, toutes les applications s’exécutent en tant qu’utilisateur standard, sauf si un utilisateur fournit un consentement ou des informations d’identification pour approuver une application pour utiliser un jeton d’accès administratif complet.
Un utilisateur membre du groupe Administrateurs peut se connecter, naviguer sur le web et lire des messages électroniques tout en utilisant un jeton d’accès utilisateur standard. Lorsque l’administrateur doit effectuer une tâche qui nécessite le jeton d’accès administrateur, Windows invite automatiquement l’utilisateur à approuver. Cette invite est appelée invite d’élévation et son comportement peut être configuré à l’aide du composant logiciel enfichable Stratégie de sécurité locale (Secpol.msc) ou stratégie de groupe. Pour plus d’informations, consultez Paramètres de stratégie de sécurité du contrôle de compte d’utilisateur.
Expérience utilisateur UAC
Lorsque la UAC est activée, l’expérience utilisateur des utilisateurs standard est différente de celle des administrateurs en mode d’approbation Administration. La méthode recommandée et plus sécurisée d’exécution de Windows consiste à faire de votre compte d’utilisateur principal un compte d’utilisateur standard. L’exécution en tant qu’utilisateur standard permet d’optimiser la sécurité d’un environnement managé. Avec le composant d’élévation de contrôle de compte d’utilisateur intégré, les utilisateurs standard peuvent facilement effectuer une tâche d’administration en entrant des informations d’identification valides pour un compte d’administrateur local. Le composant d’élévation de contrôle de compte d’utilisateur intégré par défaut pour les utilisateurs standard est l’invite d’informations d’identification.
L’alternative à l’exécution en tant qu’utilisateur standard consiste à exécuter en tant qu’administrateur en mode d’approbation Administration. Avec le composant d’élévation de contrôle de compte d’utilisateur intégré, les membres du groupe Administrateurs local peuvent facilement effectuer une tâche d’administration en fournissant une approbation. Le composant d’élévation de contrôle d’utilisateur intégré par défaut pour un compte administrateur en mode d’approbation Administration est appelé invite de consentement.
Les invites de consentement et d’informations d’identification
Lorsque le contrôle de compte d’utilisateur est activé, Windows demande le consentement ou demande les informations d’identification d’un compte d’administrateur local valide avant de démarrer un programme ou une tâche qui nécessite un jeton d’accès administrateur complet. Cette invite garantit qu’aucun logiciel malveillant ne peut être installé en mode silencieux.
Invite de consentement
L’invite de consentement s’affiche lorsqu’un utilisateur tente d’effectuer une tâche qui nécessite le jeton d’accès administratif d’un utilisateur. Voici un exemple d’invite de consentement UAC.
Invite d’informations d’identification
L’invite d’informations d’identification s’affiche lorsqu’un utilisateur standard tente d’effectuer une tâche qui nécessite le jeton d’accès administratif d’un utilisateur. Les administrateurs peuvent également être tenus de fournir leurs informations d’identification en définissant la valeur Contrôle de compte d’utilisateur : Comportement de l’invite d’élévation pour les administrateurs dans Administration paramètre de stratégie Mode d’approbation sur Demander des informations d’identification.
Voici un exemple d’invite d’informations d’identification UAC.
Invites d’élévation de contrôle de compte d’utilisateur
Les invites d’élévation de contrôle de compte d’utilisateur sont codées en couleur pour être spécifiques à l’application, ce qui permet d’identifier immédiatement le risque potentiel pour la sécurité d’une application. Lorsqu’une application tente de s’exécuter avec le jeton d’accès complet d’un administrateur, Windows analyse d’abord le fichier exécutable pour déterminer son éditeur. Les applications sont d’abord séparées en trois catégories en fonction de l’éditeur du fichier : Windows 10 ou Windows 11, éditeur vérifié (signé) et éditeur non vérifié (non signé). Le diagramme suivant montre comment Windows détermine l’invite d’élévation de couleur à présenter à l’utilisateur.
Le codage couleur de l’invite d’élévation est le suivant :
- Arrière-plan rouge avec une icône de bouclier rouge : l’application est bloquée par stratégie de groupe ou provient d’un éditeur bloqué.
- Arrière-plan bleu avec une icône de bouclier bleu et or : l’application est une application d’administration Windows 10 et Windows 11, telle qu’un élément Panneau de configuration.
- Arrière-plan bleu avec une icône de bouclier bleu : l’application est signée à l’aide d’Authenticode et est approuvée par l’ordinateur local.
- Arrière-plan jaune avec une icône de bouclier jaune : l’application n’est pas signée ou n’est pas encore approuvée par l’ordinateur local.
Icône de bouclier
Certains éléments Panneau de configuration, tels que Les propriétés de date et d’heure, contiennent une combinaison d’opérations d’administrateur et d’utilisateur standard. Les utilisateurs standard peuvent afficher l’horloge et modifier le fuseau horaire, mais un jeton d’accès administrateur complet est nécessaire pour modifier l’heure système locale. Voici une capture d’écran de l’élément Propriétés de date et d’heure Panneau de configuration.
L’icône de bouclier sur le bouton Modifier la date et l’heure indique que le processus nécessite un jeton d’accès administrateur complet et affiche une invite d’élévation de contrôle d’utilisateur.
Sécurisation de l’invite d’élévation
Le processus d’élévation est sécurisé en dirigeant l’invite vers le bureau sécurisé. Les invites de consentement et d’informations d’identification sont affichées sur le bureau sécurisé par défaut dans Windows 10 et Windows 11. Seuls les processus Windows peuvent accéder au bureau sécurisé. Pour des niveaux de sécurité plus élevés, nous vous recommandons de conserver le paramètre contrôle de compte d’utilisateur : Basculer vers le bureau sécurisé lorsque vous demandez que le paramètre de stratégie d’élévation soit activé.
Lorsqu’un fichier exécutable demande une élévation, le bureau interactif, également appelé bureau utilisateur, est basculé vers le bureau sécurisé. Le bureau sécurisé assombrit le bureau de l’utilisateur et affiche une invite d’élévation à laquelle vous devez répondre avant de continuer. Lorsque l’utilisateur clique sur Oui ou Non, le bureau revient au bureau de l’utilisateur.
Les programmes malveillants peuvent présenter une imitation du bureau sécurisé, mais lorsque le paramètre de stratégie Contrôle de compte d’utilisateur : comportement de l’invite d’élévation pour les administrateurs dans Administration paramètre de stratégie Mode d’approbation est défini sur Demander le consentement, le programme malveillant n’a pas d’élévation si l’utilisateur clique sur Oui sur l’imitation. Si le paramètre de stratégie est défini sur Demander des informations d’identification, un programme malveillant imitant l’invite d’informations d’identification peut être en mesure de collecter les informations d’identification auprès de l’utilisateur. Toutefois, le programme malveillant ne bénéficie pas de privilèges élevés et le système dispose d’autres protections qui empêchent les programmes malveillants de prendre le contrôle de l’interface utilisateur, même avec un mot de passe collecté.
Bien que les programmes malveillants puissent présenter une imitation du bureau sécurisé, ce problème ne peut se produire que si un utilisateur a déjà installé le programme malveillant sur le PC. Étant donné que les processus nécessitant un jeton d’accès administrateur ne peuvent pas être installés en mode silencieux lorsque l’UAC est activé, l’utilisateur doit explicitement donner son consentement en cliquant sur Oui ou en fournissant des informations d’identification d’administrateur. Le comportement spécifique de l’invite d’élévation de contrôle de compte d’utilisateur dépend de stratégie de groupe.
UAC Architecture
Le diagramme suivant détaille l’architecture UAC.
Pour mieux comprendre chaque composant, consultez le tableau ci-dessous :
Utilisateur
Composant | Description |
---|---|
L’utilisateur effectue une opération nécessitant des privilèges |
Si l’opération modifie le système de fichiers ou le Registre, la virtualisation est appelée. Toutes les autres opérations appellent ShellExecute. |
ShellExecute |
ShellExecute appelle CreateProcess. ShellExecute recherche l’erreur ERROR_ELEVATION_REQUIRED de CreateProcess. S’il reçoit l’erreur, ShellExecute appelle le service Informations sur l’application pour tenter d’effectuer la tâche demandée avec l’invite avec élévation de privilèges. |
CreateProcess |
Si l’application nécessite une élévation, CreateProcess rejette l’appel avec ERROR_ELEVATION_REQUIRED. |
Système
Composant | Description |
---|---|
Service Informations sur l’application |
Service système qui permet de démarrer des applications qui nécessitent un ou plusieurs privilèges élevés ou droits d’utilisateur pour s’exécuter, telles que les tâches d’administration locales et les applications qui nécessitent des niveaux d’intégrité plus élevés. Le service Informations sur l’application permet de démarrer ces applications en créant un processus pour l’application avec le jeton d’accès complet d’un utilisateur administratif lorsque l’élévation est requise et (en fonction de stratégie de groupe) le consentement est donné par l’utilisateur pour le faire. |
Élévation d’une installation ActiveX |
Si ActiveX n’est pas installé, le système vérifie le niveau du curseur UAC. Si ActiveX est installé, le paramètre Contrôle de compte d’utilisateur : basculer vers le bureau sécurisé lorsque vous demandez une élévation stratégie de groupe est activé. |
Vérifier le niveau du curseur UAC |
UAC dispose d’un curseur pour sélectionner parmi quatre niveaux de notification.
|
Poste de travail sécurisé activé |
Le paramètre Contrôle de compte d’utilisateur : Basculer vers le bureau sécurisé lorsque vous êtes invité à entrer la stratégie d’élévation est coché :
|
CreateProcess |
CreateProcess appelle appCompat, Fusion et détection du programme d’installation pour évaluer si l’application nécessite une élévation. Le fichier est ensuite inspecté pour déterminer son niveau d’exécution demandé, qui est stocké dans le manifeste de l’application pour le fichier. CreateProcess échoue si le niveau d’exécution demandé spécifié dans le manifeste ne correspond pas au jeton d’accès et retourne une erreur (ERROR_ELEVATION_REQUIRED) à ShellExecute. |
AppCompat |
La base de données AppCompat stocke des informations dans les entrées du correctif de compatibilité d’application pour une application. |
Fusion |
La base de données Fusion stocke des informations à partir des manifestes d’application qui décrivent les applications. Le schéma de manifeste est mis à jour pour ajouter un nouveau champ de niveau d’exécution demandé. |
Détection du programme d’installation |
La détection du programme d’installation détecte les fichiers d’installation, ce qui permet d’empêcher l’exécution des installations à l’insu et au consentement de l’utilisateur. |
Noyau
Composant | Description |
---|---|
Virtualisation |
La technologie de virtualisation garantit que les applications non conformes n’échouent pas en mode silencieux ou échouent de manière à ce que la cause ne puisse pas être déterminée. UAC fournit également la virtualisation et la journalisation des fichiers et des registres pour les applications qui écrivent dans des zones protégées. |
Système de fichiers et registre |
La virtualisation de fichiers et de registre par utilisateur redirige les demandes d’écriture de fichiers et de registre par ordinateur vers des emplacements équivalents par utilisateur. Les demandes de lecture sont d’abord redirigées vers l’emplacement virtualisé par utilisateur et vers l’emplacement par ordinateur en second. |
Le curseur ne désactive jamais complètement L’UAC. Si vous le définissez sur Ne jamais notifier, il :
- Maintenez le service UAC en cours d’exécution.
- Faire en sorte que toutes les demandes d’élévation lancées par les administrateurs soient approuvées automatiquement sans afficher d’invite UAC.
- Refuser automatiquement toutes les demandes d’élévation pour les utilisateurs standard.
Important
Pour désactiver complètement le contrôle de compte d’utilisateur, vous devez désactiver la stratégie Contrôle de compte d’utilisateur : Exécuter tous les administrateurs en mode d’approbation Administration.
Warning
Certaines applications plateforme Windows universelle peuvent ne pas fonctionner lorsque l’UAC est désactivée.
Virtualisation
Étant donné que les administrateurs système dans les environnements d’entreprise tentent de sécuriser les systèmes, de nombreuses applications métier (LOB) sont conçues pour utiliser uniquement un jeton d’accès utilisateur standard. Par conséquent, vous n’avez pas besoin de remplacer la majorité des applications lorsque l’UAC est activée.
Windows 10 et Windows 11 incluent la technologie de virtualisation de fichiers et de registre pour les applications qui ne sont pas conformes à l’UAC et qui nécessitent le jeton d’accès d’un administrateur pour s’exécuter correctement. Lorsqu’une application d’administration qui n’est pas conforme au contrôle de compte de compte d’utilisateur tente d’écrire dans un dossier protégé, tel que Program Files, le contrôle de compte d’utilisateur donne à l’application sa propre vue virtualisée de la ressource qu’elle tente de modifier. La copie virtualisée est conservée dans le profil de l’utilisateur. Cette stratégie crée une copie distincte du fichier virtualisé pour chaque utilisateur qui exécute l’application non conforme.
La plupart des tâches d’application fonctionnent correctement à l’aide des fonctionnalités de virtualisation. Bien que la virtualisation autorise l’exécution d’une majorité d’applications, il s’agit d’un correctif à court terme et non d’une solution à long terme. Les développeurs d’applications doivent modifier leurs applications pour qu’elles soient conformes dès que possible, plutôt que de s’appuyer sur la virtualisation de fichiers, de dossiers et de registre.
La virtualisation n’est pas une option dans les scénarios suivants :
La virtualisation ne s’applique pas aux applications qui sont élevées et qui s’exécutent avec un jeton d’accès administratif complet.
La virtualisation prend uniquement en charge les applications 32 bits. Les applications 64 bits sans élévation de privilèges reçoivent simplement un message de refus d’accès lorsqu’elles tentent d’acquérir un handle (identificateur unique) pour un objet Windows. Les applications Windows 64 bits natives doivent être compatibles avec la UAC et écrire des données dans les emplacements appropriés.
La virtualisation est désactivée si l’application inclut un manifeste d’application avec un attribut de niveau d’exécution demandé.
Niveaux d’exécution de la demande
Un manifeste d’application est un fichier XML qui décrit et identifie les assemblys partagés et privés côte à côte auxquels une application doit lier au moment de l’exécution. Le manifeste de l’application inclut des entrées à des fins de compatibilité des applications UAC. Les applications administratives qui incluent une entrée dans le manifeste de l’application invitent l’utilisateur à obtenir l’autorisation d’accéder au jeton d’accès de l’utilisateur. Bien qu’elles ne disposent pas d’une entrée dans le manifeste de l’application, la plupart des applications administratives peuvent s’exécuter sans modification à l’aide de correctifs de compatibilité des applications. Les correctifs de compatibilité des applications sont des entrées de base de données qui permettent aux applications qui ne sont pas compatibles UAC de fonctionner correctement.
Un niveau d’exécution demandé doit être ajouté au manifeste de l’application pour toutes les applications compatibles UAC. Si l’application nécessite un accès administratif au système, le marquage de l’application avec le niveau d’exécution demandé « exiger l’administrateur » garantit que le système identifie ce programme comme une application administrative et effectue les étapes d’élévation nécessaires. Les niveaux d’exécution demandés spécifient les privilèges requis pour une application.
Technologie de détection du programme d’installation
Les programmes d’installation sont des applications conçues pour déployer des logiciels. La plupart des programmes d’installation écrivent dans les répertoires système et les clés de Registre. Ces emplacements système protégés sont généralement accessibles en écriture uniquement par un administrateur dans la technologie de détection du programme d’installation, ce qui signifie que les utilisateurs standard ne disposent pas d’un accès suffisant pour installer des programmes. Windows 10 et Windows 11 détecter de manière heuristique les programmes d’installation et demander des informations d’identification d’administrateur ou l’approbation de l’utilisateur administrateur afin de s’exécuter avec des privilèges d’accès. Windows 10 et Windows 11 également détecter de manière heuristique les mises à jour et les programmes qui désinstallent les applications. L’un des objectifs de conception de la UAC est d’empêcher les installations d’être exécutées à l’insu et au consentement de l’utilisateur, car les programmes d’installation écrivent dans les zones protégées du système de fichiers et du registre.
La détection du programme d’installation s’applique uniquement à :
- Fichiers exécutables 32 bits.
- Applications sans attribut de niveau d’exécution demandé.
- Processus interactifs s’exécutant en tant qu’utilisateur standard avec UAC activé.
Avant la création d’un processus 32 bits, les attributs suivants sont vérifiés pour déterminer s’il s’agit d’un programme d’installation :
- Le nom de fichier inclut des mots clés tels que « installer », « configurer » ou « mettre à jour ».
- Les champs de ressource de contrôle de version contiennent les mots clés suivants : Fournisseur, Nom de la société, Nom du produit, Description du fichier, Nom de fichier d’origine, Nom interne et Nom de l’exportation.
- Les mots clés du manifeste côte à côte sont incorporés dans le fichier exécutable.
- Les mots clés des entrées StringTable spécifiques sont liés dans le fichier exécutable.
- Les attributs clés dans les données de script de ressource sont liés dans le fichier exécutable.
- Il existe des séquences ciblées d’octets dans le fichier exécutable.
Remarque
Les mots clés et les séquences d’octets ont été dérivés des caractéristiques courantes observées à partir de différentes technologies d’installation.
Remarque
Le paramètre de stratégie Contrôle de compte d’utilisateur : Détecter les installations d’application et demander l’élévation doit être activé pour que la détection du programme d’installation détecte les programmes d’installation. Pour plus d’informations, consultez Paramètres de stratégie de sécurité du contrôle de compte d’utilisateur.