Aller au contenu
Sécurité medium

Moindre privilège : accorder juste ce qu'il faut

12 min de lecture

Le principe de moindre privilège tient en une phrase : chaque personne, chaque programme et chaque service ne doit recevoir que les droits strictement nécessaires à sa tâche, et pas un de plus. Un droit, c'est une autorisation : le pouvoir de lire un fichier, de modifier une base de données ou d'éteindre un serveur. Quand un compte cumule des droits inutiles, le moindre incident devient une catastrophe. Cette page vous explique ce principe avec des mots simples, pourquoi il protège vraiment, et comment l'appliquer sans être expert. Aucun prérequis technique n'est demandé.

Ce concept est l'un des plus rentables de la sécurité : peu d'efforts, beaucoup d'impact évité. Concrètement, vous saurez :

  • Définir le moindre privilège et le reconnaître dans la vie de tous les jours.
  • Comprendre pourquoi limiter les droits réduit les dégâts d'un piratage (le rayon d'explosion).
  • Appliquer le principe avec des méthodes concrètes : comptes dédiés, droits temporaires, revue régulière des accès.
  • Repérer les pièges qui font échouer le principe, comme l'accumulation de droits ou les comptes partagés.
  • Relier ce principe à la séparation des privilèges, au modèle Zero Trust et au modèle de menaces du référentiel SOCLE, qui l'exigent tous.

Le moindre privilège est une règle de sécurité qui consiste à donner à chaque utilisateur (une personne) ou à chaque service (un programme qui tourne tout seul, comme un site web ou une base de données) uniquement les autorisations dont il a besoin pour faire son travail. Ni plus, ni moins. Si un comptable n'a pas besoin d'accéder aux serveurs techniques, il ne doit pas y avoir accès, même si cela semble anodin.

Le moindre privilège : n'accorder que les droits strictement nécessaires, un accès compromis reste confiné

L'image du trousseau de clés aide à comprendre. Imaginez un immeuble de bureaux. Vous pourriez donner à chaque employé un passe qui ouvre toutes les portes : plus pratique, jamais de porte fermée par erreur. Mais si un employé perd son passe, ou si quelqu'un le vole, le voleur ouvre tout : les bureaux, la salle des serveurs, le coffre. Le moindre privilège consiste à ne remettre à chacun que les clés utiles à son poste. Le passe volé n'ouvre alors que quelques portes, et le reste de l'immeuble reste protégé.

Le badge d'accès limité d'une entreprise sérieuse fonctionne exactement ainsi. Le badge de l'agent d'entretien ouvre les locaux techniques mais pas les bureaux de direction. Le badge du comptable ouvre la comptabilité mais pas le datacenter. Un système informatique suit la même logique : chaque identité, humaine ou logicielle, n'atteint que les ressources requises pour sa mission.

La raison est simple : un piratage arrive toujours par un point d'entrée, un mot de passe volé, un logiciel avec une faille, une pièce jointe piégée. La vraie question n'est pas seulement d'empêcher l'attaquant d'entrer, mais de limiter ce qu'il peut faire une fois entré. C'est là que le moindre privilège change tout.

Les experts parlent de rayon d'explosion (en anglais blast radius). L'idée est empruntée aux explosifs : quand une bombe explose, elle détruit une zone autour d'elle. En sécurité, le rayon d'explosion, c'est l'étendue des dégâts qu'un compte compromis permet de causer. Un compte tout-puissant a un rayon d'explosion énorme : l'attaquant accède à tout. Un compte au périmètre restreint confine les dégâts à une petite zone.

Prenons deux situations avec le même piratage de départ. Dans la première, le site web piraté tournait avec les droits d'administrateur (le compte qui a tous les pouvoirs sur la machine). L'attaquant hérite de ces pouvoirs et prend le contrôle total du serveur, des données, et parfois des autres machines. Dans la seconde, le même site tournait avec un compte dédié minimal. L'attaquant est coincé dans un espace étroit : il ne voit que les données de ce site, ne peut rien détruire ailleurs, et se retrouve enfermé dans une pièce sans autre porte. Le point d'entrée est identique, mais les conséquences n'ont rien à voir.

Au-delà des piratages, le moindre privilège protège aussi des erreurs humaines. Une commande de suppression tapée par mégarde ne peut détruire que ce que le compte a le droit de détruire. Moins de droits, ce sont moins d'accidents irréversibles.

Appliquer le moindre privilège ne demande pas d'outil magique, mais quelques réflexes tenus dans la durée. Voici les plus utiles, avec leur vocabulaire expliqué.

D'abord, les comptes dédiés. Un compte dédié est un compte créé pour une seule mission. Chaque personne a son propre compte nominatif, jamais un compte partagé à plusieurs. Chaque service tourne sous son propre compte de service, c'est-à-dire un compte réservé à un programme (et non à une personne), avec les droits taillés pour ce programme et rien d'autre. Un site web qui n'a besoin que de lire trois tables dans une base ne reçoit que le droit de lire ces trois tables.

Ensuite, les droits temporaires. Beaucoup de tâches sensibles ne sont qu'occasionnelles : une intervention une fois par mois, un dépannage ponctuel. Plutôt qu'un droit permanent (accordé pour toujours), on accorde un droit temporaire qui expire automatiquement après quelques heures. Ainsi, le droit disparaît de lui-même une fois la tâche finie, sans qu'on ait à penser à le retirer. C'est le principe du juste-à-temps : le bon droit, au bon moment, pour la durée juste nécessaire.

Vient ensuite la revue régulière des accès. Avec le temps, les gens changent de poste, des projets se terminent, des personnes quittent l'équipe. Sans ménage, les droits s'accumulent. Une revue consiste à examiner, par exemple chaque trimestre, qui a accès à quoi, et à retirer ce qui n'est plus justifié. Le départ d'une personne doit déclencher la révocation (le retrait) immédiate de tous ses accès.

Un mot enfin sur le RBAC, un sigle que vous croiserez souvent. RBAC signifie Role-Based Access Control, soit contrôle d'accès basé sur les rôles. Au lieu d'attribuer des droits personne par personne, on définit des rôles (développeur, comptable, administrateur) auxquels on attache un jeu de droits précis. Chaque personne reçoit alors un rôle. C'est plus simple à gérer et plus facile à auditer : on sait exactement ce que « rôle développeur » autorise, et on le contrôle en un seul endroit.

Une petite équipe déploie une boutique en ligne. Au début, pour aller vite, le site tourne sous le compte administrateur de la machine, se connecte à la base de données avec un compte tout-puissant, et détient une clé d'accès qui ouvre tous les autres serveurs de l'entreprise. Tout marche, personne ne se pose de question.

Six mois plus tard, une faille dans le site permet à un attaquant d'exécuter ses propres commandes. Comme le site avait tous les droits, l'attaquant les récupère : il lit et efface les bases de données, se sert de la clé pour sauter d'un serveur à l'autre, et compromet toute l'infrastructure en quelques minutes. Le rayon d'explosion est maximal.

Rejouons la scène avec le moindre privilège. Le site tourne désormais sous un compte dédié sans pouvoirs d'administration. Il se connecte à la base avec un compte qui a seulement le droit de lire et écrire ses propres tables. Il ne détient aucune clé vers les autres serveurs, car les mises en production passent par un système automatisé séparé. La même faille est exploitée, mais l'attaquant se retrouve enfermé : il ne voit que les données de la boutique, ne peut rien détruire ailleurs, et ne peut sauter sur aucune autre machine. L'incident reste une gêne locale au lieu de devenir une crise majeure.

Le principe est simple, mais plusieurs travers reviennent sans cesse et le vident de son efficacité. Les connaître, c'est déjà les éviter.

Le premier est l'accumulation de droits. Au fil des projets et des années, une personne gagne des accès mais n'en perd jamais. Au bout de trois ans, elle peut tout ouvrir sans avoir besoin de la moitié. Sans revue régulière, chaque compte grossit lentement jusqu'à redevenir un passe universel.

Le deuxième est le compte administrateur partagé. Plusieurs personnes se connectent avec le même compte tout-puissant, souvent avec le même mot de passe noté quelque part. Deux problèmes en découlent : ce compte a des droits énormes (gros rayon d'explosion), et on ne sait plus qui a fait quoi, car toutes les actions portent le même nom. En cas d'incident, impossible de remonter au responsable.

Le troisième est le droit permanent pour un besoin ponctuel. Une personne a besoin d'un accès élevé une fois par mois, alors on lui accorde ce droit en permanence « pour ne pas y revenir ». Ce droit dort la plupart du temps, mais reste une porte grande ouverte si son compte est piraté. La bonne réponse est un droit temporaire qui expire tout seul.

Le dernier, plus discret, est l'oubli des comptes de service. On soigne les droits des humains, mais on laisse les programmes tourner avec tous les pouvoirs « au cas où ». Or un compte de service compromis est aussi dangereux qu'un compte humain, parfois plus, car personne ne le surveille au quotidien.

  1. Juste ce qu'il faut, pas plus : chaque droit inutile agrandit le rayon d'explosion en cas de piratage.

  2. Un compte compromis reste confiné quand ses droits sont limités : le point d'entrée est le même, les dégâts sont bien moindres.

  3. Des comptes dédiés partout : un compte par personne, un compte par service, jamais de compte partagé anonyme.

  4. Des droits temporaires plutôt que permanents pour les besoins ponctuels : un accès qui expire tout seul ne peut plus être exploité une fois la tâche finie.

  5. Une revue régulière des accès évite l'accumulation silencieuse : ce qui n'est plus justifié doit être retiré, et un départ déclenche la révocation immédiate.

  6. Les rôles (RBAC) simplifient tout : gérer des droits par rôle est plus clair et plus facile à contrôler que compte par compte.

  7. Ce principe est un pilier du modèle de menaces SOCLE : limiter les droits est l'une des parades les plus efficaces contre la plupart des vecteurs d'attaque décrits dans le référentiel.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn