Les distributions GNU/Linux les plus courantes intègrent toutes un système de hiérarchie des utilisateurs à double niveau : d'un côté les utilisateurs standards, qui exploitent les ressources préinstallées sur la machine, et d'un autre le super-utilisateur — souvent appelé root — unique, possédant un niveau de privilège suprême et ayant toutes les permissions sur le système. Pour donner plus de souplesse, il est possible d'affiner et de donner des privilèges d'administrateurs à des utilisateurs standards pour certaines actions grâce à la commande sudo.

A quoi ça sert ?

Cette distinction administrateur / utilisateur a plusieurs buts.

D'abord, éviter les erreurs humaines pouvant êtres fatales au fonctionnement du système, comme par exemple la suppression involontaire d'un fichier racine. C'est donc un garde-fou qui protège en partie le système tout en autorisant l'exécution des applications de la vie de tous les jours.

C'est aussi un moyen d'empêcher l'installation d'un logiciel malveillant ayant besoin de privilèges élevés sur la machine, et pouvant ainsi s'installer et s'exécuter discrètement. Ce n'est malheureusement pas un moyen de protection ultime, d'autres faiblesses peuvent être exploitées y compris sur les distributions Linux pourtant jugées comme plus sécurisées.

Et Windows alors ?

C'est seulement sur Windows Vista, donc en 2007, que Windows s'est décidé à mettre en place un système équivalent. Auparavant, tous les comptes possédaient des droits à haut privilèges et l'utilisateur pouvait donc modifier tout ce qu'il voulait sur le système. Windows a donc introduit l'UAC que l'on remarque grâce à cette petite fenêtre s'affichant lors de l'exécution de certains programmes :

Capture d'écran de demande d'approbation administrateur
Pour une session utilisateur standard, l'exécution de certaines applications doit être approuvée par un administrateur


L'équivalent Linux du compte root est baptisé Administrateur chez Windows et les autres comptes sont nommés Utilisateurs standards.

Les sessions administrateurs

Windows ne fonctionne pas tout à fait comme Linux, et pousse le concept un peu plus loin. Un compte administrateur dispose de deux moyen d'identification de session (un jeton, ou token en anglais) :

  • Un jeton d'utilisateur, qui permet d'exécuter les mêmes applications qu'un utilisateur standard
  • Un jeton d'administrateur, pour les application à privilèges élevés

En pratique, un compte administrateur peut faire la même chose qu'un compte utilisateur mais doit valider les actions à privilèges élevés par validation d'un invite d'élévation. C'est une simple fenêtre sur laquelle il faut cliquer "Oui" pour valider l'action.

L'invite d'élévation Windows
L'invite d'élévation Windows d'une session administrateur


Tout cela est très bien expliqué sur la page en français dédiée à l'UAC du site de Microsoft. Je mets ci-dessous une image extraite de cette page, et qui résume bien ce modèle de sécurité :

Schéma token utilisateurs windows
Schéma des tokens utilisateurs windows. Source : microsoft.com

Les sessions utilisateurs

Un compte utilisateur ne possède qu'un jeton utilisateur standard, et pour exécuter un programme à haut privilèges, il doit obtenir l'autorisation explicite de l'administrateur par saisie de son login et mot de passe. On pourrait le voir comme une mise en abyme : on ouvre une session dans une session, la première demandant l'autorisation à la seconde.

Il est possible de régler ces paramètres d'alerte. Il faut aller dans Panneau de configuration > Sécurité et maintenance > Modifier les paramètres de contrôle de compte d'utilisateur :

Paramètres de contrôle de comptes utilisateurs
On peut faire varier les avertissements UAC en déplaçant le curseur

Les règles d'utilisation que j'applique à la clinique

Etre admin ou ne pas être admin ?

J'ai, dès la mise en place des postes clients, opté pour la stratégie du moindre privilège : toujours se contenter des droits strictement nécessaires à l'usage.

Lors de l'installation de Windows, l'installateur ne laisse pas le choix : il crée un premier utilisateur ayant des droits d'administrateur sans laisser la possibilité de créer un compte utilisateur simultanément. Je crée donc un compte administrateur avec un login et un mot de passe suffisamment fort identique sur tous les postes (c'est vraiment beaucoup beaucoup plus simple ainsi !). Ensuite, je crée un compte utilisateur en allant dans le menu Paramètres Windows > Comptes > Famille et autres utilisateurs > Créer un autre utilisateur sur ce PC et je choisis l'option "utilisateur standard".

Il est toujours possible de changer plus tard le statut d'un compte, voire de créer plusieurs comptes administrateur — bien qu'inutile à mon sens :

Le changement de type de compte Windows
Le changement de type de compte Windows

Les paramètres de contrôles de comptes d'utilisateur

Pas grand chose à dire si ce n'est que je laisse toujours le curseur à fond, c'est-à-dire en haut. Autrement, je ne vois pas bien à quoi servirait la création de 2 comptes à privilèges distincts... Même les deux curseurs intermédiaires me paraissent un peu léger : ils peuvent, selon le choix, bloquer la modification des paramètres Windows voire ne pas geler les tâches en cours d'exécution (voir cette page explicative).

La gestion d'ouverture de session

Chaque poste ouvre son compte utilisateur par un code PIN à 6 caractères. On peut l'établir en allant dans le menu Paramètres > Comptes > Options de connexions > Code PIN de Windows Hello. Bien plus simple que le mot de passe et permet d'éviter la réticence à établir un délai de verrouillage du poste. Pour ce faire, je vais dans Paramètres > Ecran de verrouillage > Paramètres de l'écran de veille et je coche "A la reprise, demander l'ouverture de session".

Le menu écran de veille
Le menu écran de veille à l'esprit "années 90" a pour grande qualité de proposer un verrouillage de session


N.B. : Lors de la jonction à un domaine Active Directory, le code PIN Windows Hello n'est pas activé par défaut. Il faut, préalablement dans Windows Server, créer une GPO spécifique, un groupe Windows Hello et joindre les utilisateurs pouvant en bénéficier. De plus, le code PIN Windows Hello doit, pour des raisons évidentes de sécurité, systématiquement être activé manuellement sur chaque poste après validation du mot de passe utilisateur.

...et concrètement, ça change quoi ??

Cela demande une petite discipline au départ mais qui est totalement invisible au quotidien. En pratique, on se rend compte que très rares sont les fois où l'UAC est sollicité, sauf quelques rares logiciels demandant des privilèges élevés.

Au moins, le contrôle des utilisateurs est meilleur et cela offre une certaine garantie qu'un logiciel non autorisé ne sera pas installé. C'est une sécurité ni ultime ni autosuffisante mais c'est mieux que rien.

A noter que cette stratégie a récemment été, dans mon cas et grâce à l'acquisition de Windows Server 2022, grandement simplifiée par la gestion des utilisateurs via l'annuaire Windows Active Directory.