Fonctionnement du contrôle de compte d’utilisateur

S'applique à

  • Windows10
  • Windows 11
  • Windows Server 2016 et versions ultérieures

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 et interactions UAC

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 des données système, telles qu’une application de partitionnement de disque, tandis qu’une application d’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, L’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 comment le processus d’ouverture de session d’un administrateur diffère du processus d’ouverture de session d’un utilisateur standard.

Processus d’ouverture de session windows uac.

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 se connecte, 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 administratives (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 à partir duquel 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 afin d’utiliser un jeton d’accès administratif complet.

Un utilisateur membre du groupe Administrateurs peut se connecter, parcourir le web et lire des messages électroniques à l’aide d’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 10 ou Windows 11 demande automatiquement l’approbation de l’utilisateur. 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 les paramètres de stratégie de sécurité du contrôle de compte d’utilisateur.

Expérience utilisateur UAC

Lorsque l’UAC est activé, l’expérience utilisateur pour les utilisateurs standard est différente de celle des administrateurs en mode d’approbation Administration. La méthode recommandée et plus sécurisée pour exécuter Windows 10 ou Windows 11 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 UAC 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 UAC 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 à s’exécuter en tant qu’administrateur en mode d’approbation Administration. Avec le composant d’élévation UAC 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 UAC intégré par défaut pour un compte administrateur en mode d’approbation Administration est appelé l’invite de consentement.

Les invites de consentement et d’informations d’identification

Une fois L’UAC activé, Windows 10 ou Windows 11 invite à donner son consentement ou à demander 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.

L’invite de consentement

L’invite de consentement est présentée 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 de consentement UAC.

Invite d’informations d’identification

L’invite d’informations d’identification est présentée 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 le contrôle de compte d’utilisateur : comportement de l’invite d’élévation pour les administrateurs dans Administration valeur de paramètre de stratégie en mode d’approbation sur Demander des informations d’identification.

Voici un exemple d’invite d’informations d’identification UAC.

Invite d’informations d’identification UAC.

Invites d’élévation UAC

Les invites d’élévation UAC sont codées en couleur pour être spécifiques à l’application, ce qui permet d’identifier immédiatement le risque de sécurité potentiel d’une application. Lorsqu’une application tente de s’exécuter avec le jeton d’accès complet d’un administrateur, Windows 10 ou Windows 11 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 illustre comment Windows détermine l’invite d’élévation de couleurs à présenter à l’utilisateur.

Le codage des couleurs 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 est 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 signée, mais 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 du système local. Voici une capture d’écran de l’élément Panneau de configuration Propriétés de date et d’heure.

Icône du bouclier UAC dans les propriétés de date et d’heure

L’icône du 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 UAC.

Sécurisation de l’invite d’élévation

Le processus d’élévation est sécurisé en redirigeant l’invite vers le bureau sécurisé. Les invites de consentement et d’informations d’identification sont affichées par défaut sur le bureau sécurisé 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 contrôle de compte d’utilisateur : basculez vers le bureau sécurisé lorsque vous invitez à activer le paramètre de stratégie d’élévation.

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é atténue 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 contrôle de compte d’utilisateur : comportement de l’invite d’élévation pour les administrateurs dans Administration paramètre de stratégie du mode d’approbation est défini sur Demander le consentement, le programme malveillant n’obtient pas d’élévation si l’utilisateur clique sur Oui sur l’imitation. Si le paramètre de stratégie est défini sur Invite pour les informations d’identification, les programmes malveillants imitant l’invite d’informations d’identification peuvent être en mesure de collecter les informations d’identification 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 atténuent les programmes malveillants de prendre le contrôle de l’interface utilisateur, même avec un mot de passe récolté.

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 s’installer en mode silencieux lorsque l’UAC est activé, l’utilisateur doit fournir explicitement son consentement en cliquant sur Oui ou en fournissant les informations d’identification de l’administrateur. Le comportement spécifique de l’invite d’élévation UAC dépend de stratégie de groupe.

UAC Architecture

Le diagramme suivant détaille l’architecture UAC.

architecture uac.

Pour mieux comprendre chaque composant, consultez le tableau ci-dessous :

Utilisateur

Composant Description

L’utilisateur effectue une opération nécessitant un privilège

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 Application Information 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 d’informations sur les applications

Service système qui permet de démarrer des applications qui nécessitent un ou plusieurs privilèges élevés ou droits d’utilisateur à exécuter, tels que des tâches d’administration locales, et des 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 (selon stratégie de groupe) le consentement est donné par l’utilisateur pour ce 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 contrôle de compte d’utilisateur : basculez vers le bureau sécurisé lors de la demande d’élévation stratégie de groupe paramètre est vérifié.

Vérifier le niveau du curseur UAC

UAC dispose d’un curseur à sélectionner parmi quatre niveaux de notification.

  • Notifier toujours :

    • Vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Informez-vous lorsque vous apportez des modifications aux paramètres Windows.
    • Figez d’autres tâches jusqu’à ce que vous répondiez.

    Recommandé si vous installez souvent de nouveaux logiciels ou si vous visitez des sites web inconnus.

  • M’avertir uniquement lorsque les programmes tentent d’apporter des modifications à mon ordinateur :

    • Vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Ne vous avertissez pas lorsque vous apportez des modifications aux paramètres Windows.
    • Figez d’autres tâches jusqu’à ce que vous répondiez.

    Recommandé si vous n’installez pas souvent des applications ou si vous visitez des sites web inconnus.

  • M’avertir uniquement lorsque les programmes tentent d’apporter des modifications à mon ordinateur (ne pas griser mon bureau) sera :

    • Vous avertir lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Ne vous avertissez pas lorsque vous apportez des modifications aux paramètres Windows.
    • Ne figez pas d’autres tâches tant que vous ne répondez pas.

    Non recommandé. Choisissez cette option uniquement si l’atténuation du bureau sur votre ordinateur prend beaucoup de temps.

  • Ne jamais notifier (désactiver les invites UAC) :

    • Ne vous avertissez pas lorsque des programmes tentent d’installer des logiciels ou d’apporter des modifications à votre ordinateur.
    • Ne vous avertissez pas lorsque vous apportez des modifications aux paramètres Windows.
    • Ne figez pas d’autres tâches tant que vous ne répondez pas.

    Non recommandé en raison de problèmes de sécurité.

Bureau sécurisé activé

Contrôle de compte d’utilisateur : basculez vers le bureau sécurisé lors de la vérification du paramètre de stratégie d’élévation :

  • Si le bureau sécurisé est activé, toutes les demandes d’élévation sont envoyées au bureau sécurisé, quels que soient les 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 à l’utilisateur interactif'bureau, et les paramètres par utilisateur pour les administrateurs et les utilisateurs standard sont utilisés.

CreateProcess

CreateProcess appelle la détection AppCompat, Fusion et Installer pour déterminer si l’application nécessite une élévation. Le fichier est ensuite inspecté pour déterminer le 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 de correctif de compatibilité de l’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 sans que l’utilisateur'ses connaissances et son consentement.

Noyau

Composant Description

Virtualisation

La technologie de virtualisation garantit que les applications non conformes ne manquent pas d’exécution ou d’échec en mode silencieux d’une manière dont la cause ne peut pas être déterminée. UAC fournit également la virtualisation et la journalisation des fichiers et registres pour les applications qui écrivent dans des zones protégées.

Système de fichiers et registre

La virtualisation de fichier et de registre par utilisateur redirige les demandes d’écriture de registre et de fichier par ordinateur vers des emplacements équivalents par utilisateur. Les demandes de lecture sont redirigées vers l’emplacement virtualisé par utilisateur en premier 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 :

  • Conservez le service UAC en cours d’exécution.
  • Entraîne l’approbation automatique de toutes les demandes d’élévation lancées par les administrateurs sans afficher d’invite UAC.
  • Refuser automatiquement toutes les demandes d’élévation pour les utilisateurs standard.

Important

Pour désactiver entièrement l’UAC, vous devez désactiver le contrôle de compte d’utilisateur de stratégie : exécutez tous les administrateurs en mode d’approbation Administration.

Avertissement

Certaines applications plateforme Windows universelle peuvent ne pas fonctionner lorsque l’UAC est désactivé.

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 majorité des applications lorsque l’UAC est activé.

Windows 10 et Windows 11 inclure la technologie de virtualisation de fichiers et de registre pour les applications qui ne sont pas conformes à l’UAC et qui nécessitent que le jeton d’accès d’un administrateur s’exécute correctement. Lorsqu’une application administrative qui n’est pas conforme à l’UAC tente d’écrire dans un dossier protégé, tel que Program Files, L’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 autorise l’exécution de la majorité 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, au lieu de s’appuyer sur la virtualisation des fichiers, dossiers et registres.

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 exécutées avec un jeton d’accès administratif complet.

  • La virtualisation prend en charge uniquement les applications 32 bits. Les applications 64 bits non élevées reçoivent simplement un message d’accès refusé lorsqu’elles tentent d’acquérir un handle (identificateur unique) pour un objet Windows. Les applications Windows 64 bits natives doivent être compatibles avec 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 des demandes

Un manifeste d’application est un fichier XML qui décrit et identifie les assemblys côte à côte partagés et privés auxquels une application doit se lier au moment de l’exécution. Le manifeste d’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 demandent à l’utilisateur l’autorisation d’accéder au jeton d’accès de l’utilisateur. Bien qu’il n’y ait pas d’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é d’application. Les correctifs de compatibilité des applications sont des entrées de base de données qui permettent aux applications qui ne sont pas conformes à l’UAC de fonctionner correctement.

Tous les applications conformes à l’UAC doivent avoir un niveau d’exécution demandé ajouté au manifeste de l’application. 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 en tant qu’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 n’ont pas un accès suffisant pour installer des programmes. Windows 10 et Windows 11 détectent de manière heuristique les programmes d’installation et demandent des informations d’identification d’administrateur ou une approbation de l’utilisateur administrateur pour pouvoir s’exécuter avec des privilèges d’accès. Windows 10 et Windows 11 détectent également de manière heuristique les mises à jour et les programmes qui désinstallent les applications. L’un des objectifs de conception de l’UAC est d’empêcher l’exécution des installations à 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 « install », « setup » ou « update ».
  • Les champs 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 d’exportation.
  • Les mots clés dans le manifeste côte à côte sont incorporés dans le fichier exécutable.
  • Les mots clés dans des entrées StringTable spécifiques sont liés dans le fichier exécutable.
  • Les attributs clés des 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.

Notes

Les mots clés et les séquences d’octets ont été dérivés des caractéristiques communes observées à partir de différentes technologies de programme d’installation.

Notes

Le contrôle de compte d’utilisateur : détecter les installations d’application et demander le paramètre de 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 les paramètres de stratégie de sécurité du contrôle de compte d’utilisateur.