SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

IT Sec 2006 : Le principe de moindre privilège sous Windows Vista
Accueil > Articles > Evènements
Auteurs 
Mathieu MANSION
EXAKIS
Ingénieur d'études


 Tous les articles de cet auteur

4,5/5

Très Bien


55600
24/109

2. Isolation des processus

2.1 Contrôle d'intégrité obligatoire (MIC)

Dans Windows XP, si on est propriétaire d'un fichier, on peut faire ce que l'on veut dessus même si l'on est pas administrateur de la machine. C'est pourquoi, Windows Vista intègre un contrôle d'intégrité. Ce système de contrôle d'intégrité permet de faire une isolation au niveau des différentes couches d'intégrités. Ainsi, pour pouvoir communiquer avec des processus, il faut être au même niveau d'intégrité. Vous pouvez voir sur le schéma ci-dessous, présenté lors des Journées Microsoft de la Sécurité et refait pour des raisons de lisibilité, les différentes couches disponible.

Dans Windows Vista, les processus, les threads, etc, auront un niveau d'intégrité spécifique. Par exemple, le mode protégé d'Internet Explorer 7. Si vous lancez IE7 sur Windows Vista, vous aurez deux processus : IEUser qui possédera un niveau d'intégrité moyen (utilisateur) car il va permettre l'accès aux favoris ou encore aux préférences de l'utilisateur, tandis que le processus IExplore servant à afficher les pages web, télécharger le contenu, lui va s'exécuter avec un niveau d'intégrité bas (limité). De cette manière, on limite les risques d'attaque provenant des fichiers téléchargés ou des ActiveX dans les pages web puisque le processus s'occupant de toutes ces fonctions s'exécute avec le niveau d'intégrité le plus bas évitant toutes modifications des processus ayant une intégrité supérieure.

2.2 Isolation des privilèges au niveau de l'interface graphique (UIPI)

Lorsque l'on regarde au niveau des jetons contenant les privilèges, on constate la présence de deux niveaux d'intégrité. Nous avons en fait un niveau d'intégrité pour tout ce qui concerne processus ou encore les attaques de type injection de DLL, tandis que nous avons un autre niveau d'intégrité pour toutes les attaques de type Shatter, attaques utilisant la communication des fenêtres Windows. En effet, sous Windows, les fenêtres graphiques peuvent communiquer afin d'envoyer des messages entre elles, comme par exemple des lettres dans le cas du clavier visuel.

Ce contrôle d'intégrité permet d'isoler les fenêtres de différent niveau d'intégrité. Lors de la session, nous avons un exemple avec le clavier visuel des options d'accessibilités. Ce clavier permet d'envoyer des caractères via la souris dans une fenêtre du bureau Windows, comme notepad par exemple. Lorsqu'on lance ces deux applications avec notre niveau d'intégrité, c'est à dire en tant qu'utilisateur standard, l'interaction est possible, et le clavier visuel arrive parfaitement à écrire dans notepad. Par contre, si on lance notepad en tant qu'administrateur et le clavier visuel en tant qu'utilisateur standard, l'interaction n'est plus possible, et notre notepad reste vierge.

2.3 En résumé

Nous vous avions parlé des jetons restreint et administrateur dans le chapitre précédent. Chacun de ces jetons possède le même SID utilisateur plus, un SID de type S-1-5-40-xXxxXx représente le niveau d'intégrité afin de les isoler. C'est donc grâce à ces niveaux d'intégrité obligatoire et inchangeable durant leur durée de vie que va se baser toute la partie contrôle d'intégrité. Lors de chaque appel d'objet par un processus, il y a vérification du contrôle d'intégrité

Il faut savoir que les processus Utilisateur / LUA ne peuvent pas modifier les processus s'exécutant dans un niveau d'intégrité supérieur, comme par exemple Admin. Par contre, ils peuvent lire les informations appartenant aux processus Administrateur puisque le but est de protéger les processus au niveau de la modification. On vient de le voir avec UIPI, les processus ayant un niveau d'intégrité LUA ne pourront pas communiquer, envoyer des messages, avec les fenêtres graphiques de Windows qui ont un niveau d'intégrité plus haut.


Sommaire

1. User Access Control
      1.1 Pourquoi UAC
      1.2 Elévation de privilège
      1.3 Comment ca marche ?
      1.4 La clef de la compatibilité grâce à la virtualisation
      1.5 LUA Predictor

2. Contrôle d'intégrité
      2.1 Contrôle d'intégrité obligatoire (MIC)
      2.2 Isolation des privilèges au niveau de l'interface graphique (UIPI)
      2.3 En résumé

Conclusion



En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft