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 et interactions du contrôle de compte d’utilisateur (UAC)

Chaque application exigeant le jeton d’accès administrateur doit présenter des invites de 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. Les processus parent et enfant doivent toutefois avoir le même niveau d’intégrité. Windows 10 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 exécutant des tâches qui modifient les données système, comme une application de partitionnement de disque, alors qu’une application à intégrité « faible » est une application exécutant des tâches susceptibles de compromettre le système d’exploitation, un navigateur Web par exemple. Les applications dotées de niveaux d’intégrité inférieurs ne peuvent pas modifier les données d’applications dotées de niveaux d’intégrité supérieurs. Lorsqu’un utilisateur standard tente d’exécuter une application nécessitant un jeton d’accès administrateur, le contrôle de compte d’utilisateur (UAC) demande à l’utilisateur de fournir des informations d’identification d’administrateur valides.

Pour mieux comprendre comment ce processus se déroule, étudions le processus d’ouverture de session Windows.

Processus d’ouverture de session

Ce qui suit 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 du contrôle de compte d’utilisateur (UAC)

Par défaut, les utilisateurs standard et les administrateurs accèdent à des 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é (SID) et des privilèges Windows spécifiques.

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 d’administration Windows et les SID sont supprimés. Le jeton d’accès utilisateur standard est utilisé pour démarrer les 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 à partir duquel tous les autres processus lancé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 a donné son consentement ou fourni des informations d’identification pour approuver qu’une application utilise un jeton d’accès d’administration complet.

Un utilisateur membre du groupe Administrateurs peut se connecter, naviguer sur le Web et lire le courrier électronique à l’aide d’un jeton d’accès utilisateur standard. Lorsque l’administrateur doit exécuter une tâche nécessitant le jeton d’accès administrateur, Windows 10 invite automatiquement l’utilisateur à donner son approbation. Cette invite est appelée une 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 d’une stratégie de groupe. Pour plus d’informations, voir Paramètres des stratégies de sécurité du contrôle de compte d’utilisateur.

Expérience utilisateur du contrôle de compte d’utilisateur (UAC)

Lorsque le contrôle de compte d’utilisateur (UAC) est activé, l’expérience des utilisateurs standard est différente de celle des administrateurs en mode d’approbation Administrateur. La méthode recommandée et plus sécurisée d’exécution de Windows 10 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 géré. Grâce au composant d’élévation de contrôle de compte d’utilisateur (UAC) intégré, les utilisateurs standard peuvent facilement exécuter une tâche administrative en entrant les informations d’identification valides d’un compte d’administrateur local. Le composant d’élévation de contrôle de compte d’utilisateur (UAC) intégré par défaut pour les utilisateurs standard est l’invite d’informations d’identification.

Une alternative à l’exécution en tant qu’utilisateur standard consiste à exécuter en tant qu’administrateur en mode d’approbation Administrateur. Grâce au composant d’élévation de contrôle de compte d’utilisateur (UAC) intégré, les membres du groupe Administrateurs local peuvent facilement exécuter une tâche administrative en fournissant une approbation. Le composant d’élévation de contrôle de compte d’utilisateur (UAC) intégré pour un compte d’administrateur en mode d’approbation Administrateur est appelée l’invite de consentement.

Invites de consentement et d’informations d’identification

Lorsque le contrôle de compte d’utilisateur (UAC) est activé, Windows 10 affiche des invites de consentement ou des invites d’informations d’identification d’un compte d’administrateur local valide avant de démarrer un programme ou une tâche nécessitant un jeton d’accès administrateur complet. Cette invite permet de s’assurer qu’aucun logiciel malveillant ne peut être installé sans avertissement.

Invite de consentement

L’invite de consentement est présentée lorsqu’un utilisateur tente d’exécuter une tâche nécessitant le jeton d’accès d’administration d’un utilisateur. Voici un exemple d’invite de consentement de contrôle de compte d’utilisateur (UAC).

Invite de consentement de contrôle de compte d’utilisateur (UAC)

Invite d’informations d’identification

L’invite d’informations d’identification est présentée lorsqu’un utilisateur standard tente d’exécuter une tâche nécessitant le jeton d’accès d’administration d’un utilisateur. Les administrateurs peuvent également être amenés à fournir des informations d’identification en définissant la valeur du paramètre de stratégie Contrôle de compte d’utilisateur : comportement de l’invite d’élévation pour les administrateurs en mode d’approbation Administrateur sur Invite d’informations d’identification.

Voici un exemple d’invite d’informations d’identification de contrôle de compte d’utilisateur (UAC).

Invite d’informations d’identification de contrôle de compte d’utilisateur (UAC)

Invites d’élévation de contrôle de compte d’utilisateur (UAC)

Les invites d’élévation de contrôle de compte d’utilisateur (UAC) sont codées par couleur pour être spécifiques à l’application, permettant ainsi une identification immédiate du risque de sécurité potentiel d’une application. Lorsqu’une application tente une exécution avec le jeton d’accès complet d’un administrateur, Windows 10 analyse tout d’abord le fichier exécutable pour déterminer son éditeur. Les applications sont tout d’abord séparées en trois catégories en fonction de l’éditeur du fichier : Windows 10, éditeur vérifié (signé) et éditeur non vérifié (non signé). Le schéma suivant illustre comment Windows 10 détermine l’invite d’élévation 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 une stratégie de groupe ou provient d’un éditeur qui a été bloqué.

  • Arrière-plan bleu avec une icône de bouclier or et bleu : l’application est une application d’administration Windows 10, un élément du panneau de configuration par exemple.

  • Arrière-plan bleu avec une icône de bouclier bleu : l’application est signée à l’aide d’Authenticode et 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 est signée mais pas encore approuvée par l’ordinateur local.

Icône du bouclier

Certains éléments du panneau de configuration, tels que Propriétés de date et heure, contiennent une combinaison d’opérations administrateur et utilisateur standard. Les utilisateurs standard peuvent afficher l’horloge et changer de 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 du panneau de configuration Propriétés de date et heure.

Icône du bouclier de contrôle de compte d’utilisateur (UAC)

L’icône du bouclier sur le bouton Changer la date et l’heure indique que le processus nécessite un jeton d’accès administrateur complet et qu’une invite d’élévation de contrôle de compte d’utilisateur (UAC) sera affichée.

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

Le processus d’élévation est davantage 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. Seuls les processus Windows peuvent accéder au bureau sécurisé. Pour de meilleurs niveaux de sécurité encore, nous recommandons de conserver le paramètre de stratégie Contrôle de compte d’utilisateur : passer au Bureau sécurisé lors d’une demande d’élévation activé.

Lorsqu’un fichier exécutable demande une élévation, le bureau interactif, également appelé bureau de l’utilisateur, passe au bureau sécurisé. Le bureau sécurisé estompe le bureau de l’utilisateur et affiche une invite d’élévation à laquelle l’utilisateur doit répondre pour pouvoir continuer. Lorsque l’utilisateur clique sur Oui ou Non, le bureau revient au bureau de l’utilisateur.

Des 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 en mode d’approbation Administrateur est défini sur Invite de consentement, le logiciel malveillant n’accède pas à l’élévation si l’utilisateur clique sur Oui sur l’imitation. Si le paramètre de stratégie est défini sur Invite d’informations d’identification, les programmes malveillants imitant l’invite d’informations d’identification peuvent collecter les informations d’identification de l’utilisateur. Toutefois, le logiciel malveillant ne peut pas accéder au privilège élevé et le système dispose d’autres protections qui empêchent les programmes malveillants de prendre le contrôle de l’interface utilisateur et ce, 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 se produit que si un utilisateur a déjà installé le programme malveillant sur son PC. Étant donné que les processus nécessitant un jeton d’accès administrateur ne peuvent pas être installés sans avertissement lorsque le contrôle de compte d’utilisateur (UAC) est activé, l’utilisateur doit donner explicitement 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 (UAC) dépend de la stratégie de groupe.

Architecture du contrôle de compte d’utilisateur (UAC)

Le schéma suivant présente l’architecture du contrôle de compte d’utilisateur (UAC).

Architecture du contrôle de compte d’utilisateur (UAC)

Pour mieux comprendre chaque composant, passez en revue le tableau ci-dessous :

Composant

Utilisateur

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

ShellExecute

CreateProcess

Système

Service des informations de l’application

Élévation d’une installation ActiveX

Vérifier le niveau de curseur de contrôle de compte d’utilisateur (UAC)

Bureau sécurisé activé

CreateProcess

AppCompat

Fusion

Détection du programme d’installation

Noyau

Virtualisation

Système de fichiers et Registre

 

Le curseur ne désactive jamais complètement le contrôle de compte d’utilisateur (UAC). Si vous le définissez sur Ne jamais m’avertir, cela permet de :

  • Maintenir le service de contrôle de compte d’utilisateur (UAC) en cours d’exécution.

  • Entraîner l’approbation automatique de toutes les demandes d’élévation lancées par des administrateurs sans afficher d’invite de contrôle de compte d’utilisateur (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 (UAC), vous devez désactiver la stratégie Contrôle de compte d’utilisateur : exécuter tous les administrateurs en mode d’approbation Administrateur.

 

Avertissement  

Les applications Windows universelles ne fonctionnent pas lorsque le contrôle de compte d’utilisateur (UAC) est désactivé.

 

Virtualisation

Étant donné que les administrateurs système dans des environnements d’entreprise tentent de sécuriser les systèmes, de nombreuses applications métier sont conçues pour utiliser un jeton d’accès utilisateur standard uniquement. Par conséquent, vous ne devez pas remplacer la plupart des applications lorsque le contrôle de compte d’utilisateur (UAC) est activé.

Windows 10 inclut la technologie de virtualisation de fichier et de Registre pour les applications non compatibles avec le contrôle de compte d’utilisateur (UAC) et dont l’exécution nécessite un jeton d’accès administrateur. Lorsqu’une application d’administration non compatible avec le contrôle de compte d’utilisateur (UAC) tente d’écrire dans un dossier protégé, Program Files par exemple, le contrôle de compte d’utilisateur (UAC) donne à l’application une vue virtualisée propre 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 une application non compatible.

La plupart des tâches d’application fonctionne correctement à l’aide de fonctionnalités de virtualisation. Bien que la virtualisation autorise l’exécution d’une majorité d’applications, elle constitue une solution à court terme et non à long terme. Les développeurs d’applications doivent modifier leurs applications afin qu’elles soient compatibles le plus rapidement possible, plutôt que se reposer sur la virtualisation du fichier, du dossier et du Registre.

La virtualisation n’est pas une option dans les scénarios suivants :

  • La virtualisation ne s’applique pas aux applications élevées et exécutées avec un jeton d’accès d’administration complet.

  • La virtualisation prend uniquement en charge les applications 32 bits. Les applications 64 bits non élevées reçoivent simplement un message d’accès refusé lorsqu’elles tentent d’obtenir un handle (identificateur unique) sur un objet Windows. Les applications Windows 64 bits natives doivent être compatibles avec le contrôle de compte d’utilisateur (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 demandés

Un manifeste d’application est un fichier XML qui décrit et identifie les assemblys côte à côte partagés et privés qu’une application doit lier au moment de l’exécution. Le manifeste de l’application inclut des entrées conçues à des fins de compatibilité de l’application avec le contrôle de compte d’utilisateur (UAC). Les applications d’administration incluant une entrée dans le manifeste de l’application invitent l’utilisateur à donner une autorisation d’accès au jeton d’accès de l’utilisateur. Même si l’entrée n’est pas présente dans le manifeste de l’application, la plupart des applications d’administration peut être exécutée sans modification à l’aide de correctifs de compatibilité de l’application. Les correctifs de compatibilité de l’application sont des entrées de base de données qui permettent aux applications non compatibles avec le contrôle de compte d’utilisateur (UAC) de fonctionner correctement.

Un niveau d’exécution demandé doit être ajouté au manifeste de toutes les applications compatibles avec le contrôle de compte d’utilisateur (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é « exiger administrateur » permet de s’assurer que le système identifie ce programme comme une application d’administration et exécute les tâches 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 le logiciel. La plupart des programmes d’installation écrit dans des répertoires système et des clés de Registre. Ces emplacements système protégés ne sont généralement accessibles en écriture que 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 détecte de manière heuristique les programmes d’installation et demande des informations d’identification ou l’approbation d’un administrateur pour exécuter avec des privilèges d’accès. Windows 10 détecte également de manière heuristique les mises à jour et les programmes de désinstallation d’applications. Un des objectifs de conception du contrôle de compte d’utilisateur (UAC) consiste à empêcher l’exécution d’installations sans conscience ou consentement de l’utilisateur, car les programmes d’installation écrivent dans des zones protégées du système de fichiers et du Registre.

La détection du programme d’installation s’applique uniquement aux :

  • Fichiers exécutables 32 bits.

  • Applications sans attribut de niveau d’exécution demandé.

  • Processus interactifs exécutés en tant qu’utilisateur standard avec le contrôle de compte d’utilisateur (UAC) activé.

Avant de créer 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 du fichier inclut des mots clés tels que « installer », « configurer » ou « mettre à jour ».

  • Les champs de contrôle de version de ressource contiennent les mots clés suivants : fournisseur, nom de la société, nom du produit, description du fichier, nom du fichier d’origine, nom interne et nom d’exportation.

  • Les mots clés dans le manifeste côte à côte sont intégré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 de clé 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 de caractéristiques communes observées à partir de diverses technologies de programme d’installation.

 

Remarque  

Le paramètre de stratégie « Contrôle de compte d’utilisateur : détecter les installations d’applications et demander l’élévation » doit être activé pour que la détection du programme d’installation puisse détecter les programmes d’installation. Pour plus d’informations, voir Paramètres des stratégies de sécurité du contrôle de compte d’utilisateur.