Fonctionnement du contrôle de compte d’utilisateur

Le contrôle de compte d’utilisateur (UAC) est un élément clé de la sécurité Windows. La UAC réduit le risque de programmes malveillants en limitant la capacité du code malveillant à s’exécuter avec des privilèges d’administrateur. Cet article décrit le fonctionnement du contrôle de compte d’utilisateur et son interaction avec les utilisateurs finaux.

Processus de contrôle de compte d’utilisateur et interactions

Avec UAC, chaque application qui nécessite le jeton d’accès administrateur doit inviter l’utilisateur final à donner 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 à haute intégrité est une application qui effectue des tâches qui modifient les données système, telles qu’une application de partitionnement de disque
  • Une application à faible intégrité 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 le fonctionnement de ce processus, examinons de plus près le processus de connexion à Windows.

Processus de connexion

Le diagramme suivant montre en quoi le processus de connexion d’un administrateur diffère du processus de connexion d’un utilisateur standard.

Diagramme décrivant le processus de connexion Windows UAC.

Par défaut, les utilisateurs standard et administrateur accèdent aux ressources et exécutent des applications dans le contexte de sécurité d’un utilisateur standard.
Lorsqu’un utilisateur se connecte, 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. 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
  • Il est utilisé pour démarrer des applications qui n’effectuent pas de tâches d’administration (applications utilisateur standard)
  • Il est utilisé pour afficher le bureau en exécutant le processus 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 l’utilisation d’une application d’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é via une stratégie ou un registre.

Expérience utilisateur UAC

Lorsque le contrôle de compte d’utilisateur est activé, l’expérience utilisateur des utilisateurs standard est différente de celle des utilisateurs administrateurs. La méthode recommandée et plus sécurisée d’exécution de Windows consiste à vous assurer que votre compte d’utilisateur principal est un 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.

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.

Capture d’écran montrant l’invite d’informations d’identification UAC.

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.

Capture d’écran montrant l’invite de consentement de l’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 facilite l’identification du risque potentiel de 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
  • Serveur de publication vérifié (signé)
  • Serveur de publication non vérifié (non signé)

Le codage couleur de l’invite d’élévation est le suivant :

  • Arrière-plan gris : l’application est une application d’administration Windows, telle qu’un élément Panneau de configuration ou une application signée par un éditeur vérifié Capture d’écran montrant l’invite d’informations d’identification UAC avec un exécutable signé.
  • Arrière-plan jaune : l’application est non signée ou signée, mais n’est pas approuvée Capture d’écran montrant l’invite de consentement UAC avec un exécutable non signé.

Icône de bouclier

Certains éléments Panneau de configuration, tels que Date et 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 Date et Heure Panneau de configuration.

Capture d’écran montrant l’icône de bouclier UAC dans propriétés de date et d’heure.

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.

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. 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 sélectionne Oui ou Non, le bureau revient au bureau de l’utilisateur.

Remarque

À compter de Windows Server 2019, il n’est pas possible de coller le contenu du Presse-papiers sur le bureau sécurisé. Il s’agit du même comportement que les versions du système d’exploitation client Windows actuellement prises en charge.

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’est pas élevé si l’utilisateur sélectionne 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 logiciels 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 le contrôle de compte d’utilisateur est activé, l’utilisateur doit explicitement donner son consentement en sélectionnant 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 des stratégies de sécurité.

UAC Architecture

Le diagramme suivant détaille l’architecture UAC.

Diagramme décrivant l’architecture UAC.

Pour mieux comprendre chaque composant, consultez les tableaux suivants :

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. Selon les stratégies configurées, l’utilisateur peut donner son consentement.
É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.
  • Toujours notifier :
    • Vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Vous avertir lorsque vous apportez des modifications aux paramètres Windows.
    • Figer d’autres tâches jusqu’à ce que vous répondiez.
    Recommandé si vous installez souvent de nouveaux logiciels ou visitez des sites web inconnus.
  • M’avertir uniquement lorsque les programmes essaient d’apporter des modifications à mon ordinateur :
    • Vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Ne pas vous avertir lorsque vous apportez des modifications aux paramètres Windows.
    • Figer d’autres tâches jusqu’à ce que vous répondiez.
    Recommandé si vous n’installez pas souvent des applications ou visitez des sites web inconnus.
  • M’avertir uniquement lorsque les programmes tentent d’apporter des modifications à mon ordinateur (ne pas assombrir mon bureau) :
    • Vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Ne pas vous avertir lorsque vous apportez des modifications aux paramètres Windows.
    • Ne figez pas les autres tâches tant que vous n’avez pas répondu.
    Non recommandé. Choisissez cette option uniquement si l’assombrir le bureau sur votre ordinateur prend beaucoup de temps.
  • Ne jamais notifier (désactiver les invites UAC) :
    • Ne pas vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Ne pas vous avertir lorsque vous apportez des modifications aux paramètres Windows.
    • Ne figez pas les autres tâches tant que vous n’avez pas répondu.
    Non recommandé en raison de problèmes de sécurité.
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é :
  • Si le bureau sécurisé est activé, toutes les demandes d’élévation sont envoyées au bureau sécurisé indépendamment des paramètres de stratégie de comportement d’invite pour les administrateurs et les utilisateurs standard.
  • Si le bureau sécurisé n’est pas activé, toutes les demandes d’élévation sont envoyées au bureau de l’utilisateur interactif, et les paramètres par utilisateur pour les administrateurs et les utilisateurs standard sont utilisés.
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 redirigées d’abord 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 :

  • Maintenir 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 de contrôle de compte d’utilisateur
  • 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 sont conçues pour utiliser uniquement un jeton d’accès utilisateur standard. Par conséquent, vous n’avez pas besoin de remplacer la plupart des applications lorsque l’UAC est activée.

Windows inclut la technologie de virtualisation de fichiers et de registre pour les applications qui ne sont pas conformes au contrôle de compte d’utilisateur 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, UAC 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 permette l’exécution de la plupart des 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 nonlevées reçoivent un message de refus d’accès lorsqu’elles tentent d’acquérir un handle (identificateur unique) à un objet Windows. Les applications Windows 64 bits natives doivent être compatibles avec L’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 être liée 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 un niveau d’exécution demandé d’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 détecte de façon heuristique les programmes d’installation et demande les informations d’identification de l’administrateur ou l’approbation de l’utilisateur administrateur pour qu’il s’exécute avec des privilèges d’accès. Windows détecte également 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 contrôle de compte d’utilisateur : Détecter les installations d’application et demander une stratégie d’é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 la liste des paramètres de contrôle de compte d’utilisateur.

Étapes suivantes

En savoir plus sur les paramètres et la configuration du contrôle de compte d’utilisateur.