1. User Access Control
Pourquoi avoir créé la technologie UAC et tous les verrouillages de sécurité qui
en découle ?
La plus part du temps,
tout le monde, chez soi, dispose d'un compte administrateur sous Windows XP. Le
problème à ce niveau est que si vous exécutez un virus dans un mail, ou encore
directement téléchargé d'Internet, le virus va s'exécuter avec vos privilèges,
donc les privilèges administrateur. Le fait de s'exécuter avec ces privilèges
permet donc au virus de faire ce qu'il veut sur la machine. Même problématique
dans une entreprise. Si on dispose des privilèges Administrateurs du domaine, ou
mieux, Administrateurs de l'entreprise, et qu'on exécute un virus, nous allons
non seulement contaminer sa propre machine, mais également toutes les autres
machines du réseau puisque le virus disposera des privilèges Administrateurs du
domaine/entreprise. Pour information, certains virus ne s'exécutent si et
seulement la personne qui le lance dispose des droits administratifs sur la
machine.
Il peut aussi arriver que certaines applications demandent des privilèges
administrateur pour s'exécuter simplement parce qu'elles vont essayer d'écrire
dans un espace protégé du système comme le répertoire "Program Files" par
exemple. Bien sur, pour d'autres applications demandant ces droits, c'est
totalement justifié. Par exemple, une application allant modifier des paramètres
Windows, demandant des fichiers système verrouillés, ou encore lors du déploiement
d'applications.
Sous Windows XP, en tant qu'utilisateur standard, beaucoup
d'actions n'étaient pas possibles. Entre autre, vous ne pouviez pas changer le
fuseau horaire, ce qui est contraignant pour les personnes voyageant. De même,
lors d'une présentation, si vous ne voulez pas que l'écran s'éteigne parce qu'il
est resté inactif durant un certain temps, il était impossible de changer de
profil d'économie d'énergie. Windows XP avait même des problèmes lors de l'ajout de
clef WEP ou WAP. Toutes ces actions ont été corrigées pour permettre l'utilisation
d'un compte standard sous Windows Vista.
C'est donc pour répondre à ces points que Microsoft a
implémenté l'User Account Control, et le principe du moindre privilège. Ces
technologies ont pour but de sécuriser vos stations de travail et votre environnement de travail. L'année dernière, ce
principe a déjà été
présenté sous le nom de LUA ou List User account.
Le principe d'UAC est de lancer toutes les fenêtres
en tant qu'utilisateur standard et ce, quelque soit votre type
(administrateur ou non). Les privilèges administrateur ne seront donc
utilisés seulement pour des tâches administratives. Dans ce cas, la
méthode d'élévation de privilège est claire et explicite puisque
Microsoft a voulu faire une refonte complète du système et de
l'interface. Ainsi, vous savez à quel moment vous utilisez vos
privilèges et pour quelle application. Cette méthode d'élévation de
privilège va pouvoir être faite de deux façons différentes : en mode
consentement, ou en mode saisie.
|
Le mode consentement est le mode utilisé par défaut
lorsque vous utilisez un compte administrateur. C'est un mode dans
lequel on ne vous demande pas de mot de passe, mais juste si vous voulez
lancer l'application avec tous les privilèges. Dans ce mode, vous avez
une notion de signature des applications. En effet, vous pouvez
directement voir dans la fenêtre l'éditeur et son emplacement. Vous avez
également des effets visuels qui sont directement gérés par Windows
Vista. Je fais notamment allusion à la couleur du bandeau "Windows needs
your permission to use this program". Selon l'éditeur et ce que demande
l'application, la couleur changera : Gris pour approuvé et Orange pour
déconseillé. |
 |
|
 |
Le deuxième mode d'élévation de privilèges est le mode saisie. C'est
un mode qui sera utilisé dans beaucoup de fonctionnalités de Windows
Vista (comme le control parental) puisqu'il demande à l'utilisateur de
rentrer un compte et un mot de passe pour accéder à l'application en
administrateur. C'est donc le mode utilisé en tant qu'utilisateur
standard.
Dans la version finale de Windows Vista, ces fenêtres
devraient apparaitre dans un bureau différent de Windows. Par exemple,
un bureau sous Windows correspond à la fenêtre Ctrl+alt+Suppr d'une
station Windows 2000 ou d'une station appartenant à un domaine. De cette
manière, on s'assure que la personne qui lance l'application est bien
l'utilisateur de la machine et non un pirate. |
Certains programmes d'installation requièrent également les droits
administrateurs car ils vont placer des fichiers dans des dossiers systèmes ou
protégés. Avec Windows XP, dans un environnement limité, vous lanciez
l'installation jusqu'au moment où un fichier a besoin d'être écrit dans un
espace protégé comme la clef "HKLM" ou "Program Files". Cet opération va faire "crasher" l'installation rendant le
logiciel à moitié installé et donc inutilisable. Avec Windows Vista, ce genre de
problème n'existera plus. Windows Vista va détecter le logiciel d'installation
et il vérifiera si celui-ci ira écrire dans un répertoire protégé afin de
demander avant le lancement si vous voulez faire une élévation de privilège.
Ainsi, lorsque vous allez avoir une application, ou bien une option dans une
fenêtre, qui demande les privilèges administratif, vous aurez la présence du
bouclier quadricolore vous indiquant que vous devrez faire une élévation de
privilège pour accéder à cette fonctionnalité ou ce programme.
Sans expliquer en détail le fonctionnement de l'UAC, nous allons poser
quelques bases de cette technologie.
Lorsque vous ouvrez une session de manière générale avec
Windows, le service de sécurité LSASS va créer un jeton qui contiendra tous les
SID de l'utilisateur auxquels on ajoute les privilèges administrateurs. C'est ce
jeton qui sera utilisé pour lancer des applications. Avec Windows Vista, lorsque
vous ouvrez une session, LSASS va créer deux jetons. Un qui va contenir toutes
les informations comme dans Windows XP et un autre jeton "restreint" qui ne
contiendra que les privilèges d'un utilisateur standard. C'est donc ce deuxième
jeton qui sera utilisé pour lancer les différentes applications. Pour utiliser
le premier jeton, celui avec tous les privilèges, vous devrez passer par une
élévation de privilège. Concrètement, vous devez faire un clic droit sur
l'application pour la lancer en tant qu'administrateur. Il existe aussi une
autre méthode pour lancer ses applications en utilisant tout le temps le jeton
avec tous les privilèges. Il suffit de cocher une case dans les propriétés de
l'exécutable.

Vous pouvez voir avec les deux images ci-dessous une
application lancée avec le jeton "restreint" (à gauche) et une application
lancée avec le jeton disposant de tous les privilèges. On peut tout de suite
voir une différence au niveau des privilèges disponibles.
La configuration de l'UAC se passe directement dans la
console d'administration de Windows : Stratégie de sécurité locale.
On peut imaginer que dans la prochaine version de Windows Server, une GPO
puisse nous permettre de configurer facilement toutes ces options.

Dans l'ordre, nous avons les paramètres suivants :
-
La première option permet de configurer le
comportement de l'interface d'élévation de privilèges pour les
administrateurs. Vous disposez de trois paramètres pour cette option :
demande si on approuve l'élévation de privilège, demande de mot de passe
lors de l'élévation de privilège ou bien désactiver la fonctionnalité.
-
La deuxième option concerne l'élévation des
privilèges d'un point de vue utilisateur standard. Vous disposez des
mêmes paramètres que l'option précédente, hormis que la désactivation
est bien sur impossible.
-
La troisième option concerne la détection des
installations. Est-ce qu'on active ou non l'élévation de privilège pour
un installeur.
-
Quatrième option qui permet d'activer ou non UAC.
-
La cinquième option concerne la vérification des
signatures des exécutables.
-
La dernière option permet de désactiver ou d'activer
la virtualisation de fichier.
Vous devez vous en douter mais l'UAC peut avoir quelques problèmes pour
fonctionner avec certaines applications. Pour prévoir ce type de problème,
Microsoft a créer tout un système de virtualisation de dossier dans Windows
Vista. Ainsi, une application, devant être exécutée avec les privilèges
administrateur parce qu'elle va écrire dans Program Files ou dans la clef de
registre HKLM, est exécutée avec un
jeton "restreint", il n'y aura aucune erreur de la part du
système. En effet, au final toutes les applications peuvent écrire dans les
dossiers systèmes et sécurisés de Windows. Seulement, ce ne sont pas les vrais dossiers systèmes de
Windows. Ce sont en fait des dossiers virtualisés situés dans le compte de
l'utilisateur. Lors du lancement de l'application, celle-ci ira dans un
premier temps regarder dans le dossier virtuel du profil, et si elle ne trouve
rien, elle chargera les
paramètres dans le Program Files réél.
Grâce à ce système, près de 90% des applications allant
écrire dans Program Files ou dans des dossiers systèmes fonctionnent. Seulement,
comme les informations sont stockées dans le répertoire utilisateur, cela peut
être gênant. Par exemple, une application qui stocke les meilleurs scores :
l'utilisateur fera toujours le meilleur score. Il faut également noter que ce
système de dossier virtuel est utilisé pour les contrôles ActiveX d'Internet
Explorer 7.
Ce petit outil permet de savoir si l'application que vous lui
soumettez va pouvoir s'exécuter en tant qu'utilisateur standard et si elle va
écrire dans un répertoire protégé du système. Il doit être utilisé pour
déterminer si l'application va être compatible ou non avec Windows Vista. Vous
pourrez trouver cet utilitaire
ici.
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
|
|
 |
Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft
|
|