Vulnérabilité : L’élévation de privilèges

Cet article aborde une vulnérabilité bien particulière : l’élévation de privilèges.

Si vous suivez un peu les actualités de sécurité et notamment les bulletins de sécurité produit pour vos logiciels.
Vous avez probablement croisé à un moment donné des vulnérabilités de type élévation de privilèges.

Qu’est-ce que ce la permet et en quoi est-ce un risque ?
Voici un article complet sur ce type de vulnérabilités bien particulières.

Introduction

Dans les bulletins de sécurité, on retrouve beaucoup d’informations comme la version du logiciel affectées, les versions qui corrigent etc.
Parmi ces informations, on trouve généralement les conséquences potentielles de la vulnérabilité comme :

  • lead to code execution – exécuter un code ce qui peut permettre de charger un logiciel malveillant.
  • denial of service – permet de lancer des attaques DoS.
  • escalation of privileges – permet une élévation de privilèges dans le système affecté.

Voici un exemple avec ce bulletin de sécurité touchant les pilotes Nvidia.

Bulletin de sécurité Nvidia avec les types de vulnérabilités
Bulletin de sécurité Nvidia avec les types de vulnérabilités

Voici encore une autre bulletin de sécurité Microsoft avec les types de vulnérabilités.

Bulletin de sécurité Microsoft avec les types de vulnérabilités
Bulletin de sécurité Microsoft avec les types de vulnérabilités

Le fonctionnement des utilisateurs sur un OS

Pour bien comprendre ce type de vulnérabilises, il faut dans un premier temps le fonctionnement général des utilisateurs au sein du système d’exploitation.

Dans un OS, il existe plusieurs « grades » d’utilisateurs avec des accès et autorisations différentes.
L’administrateur est l’utilisateur possédant le plus de privilèges car il peut modifier la configuration du système, installer de nouvelles applications, etc.

Sur un ordinateur de bureau et parfois sur des serveurs, des utilisateurs avec des accès plus restreint existent.
Par exemple, sur Windows, on peut avoir un utilisateur standard ou un compte invité.
Rappelons que les applications exécutées par l’utilisateur possède les mêmes permissions que ce dernier.

En effet, en utilisant cette vulnérabilité pour gagner des accès hauts dans le système, un pirate ou un utilisateur pourra modifier la configuration système ou implanter une backdoor.

Les types d’élévation de privilèges

Il existe plusieurs type d’élévation de privilèges sur Windows.
GNU/Linux fonctionne d’une autre manière et peut aussi posséder ces propres méthodes d’attaques.

Voici les types d’élévations de privilèges sur Windows :

Jeton d’accès

Lorsque vous lancez un processus, Windows créé un jeton d’accès.
Cela permet de lier le processus à l’utilisateur courant.

Cette attaque d’élévation privilèges vise à faire croire à Windows qu’un processus s’exécute avec autre utilisateur en falsifiant ce jeton d’accès.

Un jeton peut être usurper ou voler ou encore créer de toutes pièces selon les vulnérabilités disponibles.

Contourner l’UAC

L’UAC ou contrôle des comptes utilisateurs est un mécanisme qui permet de limiter les accès par les applications.
Lorsqu’un utilisateur ayant des accès administrateurs exécute une application, celle-ci n’est pas lancée avec ces autorisations sauf si une autorisation par l’UAC a été donnée.
Un jeton virtuelle administrateur est alors créée pour cette application le temps de son exécution.

Ci-dessous Firefox est lancé avec un utilisateur administrateur mais ne possède pas des accès administrateur, car, aucune élévation de privilèges par UAC n’a été faites.

L'UAC bloque l'accès administrateur aux applications lancées
L’UAC bloque l’accès administrateur aux applications lancées

Pour une description plus complète de l’UAC de Windows, suivez l’article : Le contrôle des comptes utilisateurs (UAC) de Windows

Toutefois, certaines processus ne sont pas exposés à l’UAC notamment certains processus systèmes ou pouvant lancer des Component Object Model (COM) élevées.
C’est par exemple le cas du processus rundll32.exe.
Des vulnérabilités sur ces derniers peuvent permettre une élévation de privilèges.

La vidéo montre comment à partir d’une invite de commandes lancée avec l’utilisateur courant, on peut ouvrir une invite de commandes en administrateur sans que l’UAC se déclenche.

(Visité 474 fois, 4 visites ce jour)