Le principe du moindre privilège

le jeudi des experts
Le principe du moindre privilège est relativement simple. Chacun connaît la recommandation qui consiste à ne pas ouvrir une session administrateur, lorsque l’on utilise son ordinateur pour effectuer des tâches courantes. En effet, en cas d’exécution malencontreuse d’un code malveillant (virus, cheval de Troyes, etc.) les dégâts seront plus limités si ce code est exécuté avec les privilèges réduits d’un “simple utilisateur”.

Ce principe, n’est pas toujours bien appliqué dans les applications complexes, dont l’architecture est multicouche, c’est à dire des applications qui ne s’exécutent pas uniquement dans la session de l’utilisateur. Un exemple typique est une application web accédant à une base de données. Souvent, l’application web s’authentifie auprès de la base de données avec un compte applicatif dédié unique, dont le niveau de privilège sur la base de données correspond aux privilèges nécessaires pour l’utilisateur le plus privilégié de l’application.

Du point de vue de la sécurité cette situation n’est pas optimale car, en cas d’exploitation d’une vulnérabilité dans l’application web, l’attaquant dispose alors des privilèges les plus élevés sur les données de la base et ce, quels que soient les privilèges dont il dispose dans l’application web. Dans le jargon de la cybersécurité, la vulnérabilité sera alors classée de type “élévation de privilèges”.

Pour éviter cela, il est possible de déployer une infrastructure d’authentification qui permette de propager l’identité et les privilèges de l’utilisateur depuis l’application cliente (typiquement le navigateur) jusqu’à la base de données. Dans cette configuration, les données de la base sont accédées sous l’identité de l’utilisateur et avec ses propres privilèges. Dit autrement, l’application web ne dispose plus d’un compte dédié, mais ne fait que relayer les droits de l’utilisateur auprès de la base de données. En cas d’exploitation d’une vulnérabilité dans l’application web à partir d’un compte utilisateur non privilégié, l’attaquant ne peut alors plus accéder aux données privilégiées de la base de données, puisque l’application web ne dispose pas de ces privilèges.

La sécurité globale de l’application est alors substantiellement améliorée et, s’il reste nécessaire de corriger rapidement toute vulnérabilité découverte dans l’application web, leur criticité s’en trouve réduite.

Stéphane ADENOT