Pascal SauliereConsultant Principal SécuritéMicrosoft France
Contrôle de compte utilisateur UAC
Cyril VoisinChef de programme SécuritéMicrosoft Francehttps://blogs.technet.com/voy
Sommaire
ObjectifPrincipesDéfinitionsMeilleure expérience des utilisateurs standardsModes et modèle d’élévationUtilisateur standardAdministrateur protégé
ConfigurationCompatibilité
VirtualisationShims
Contrôle d’intégrité obligatoire (MIC,UIPI)ManifestesConseilsSynthèse
UAC (User Account Control)
Principe de moindre privilège : classique en sécuritéObjectif : un système qui marche pour des utilisateurs standards
Principes d’UAC
Tous les utilisateurs s’exécutent comme des utilisateurs standards même s’ils sont administrateurs
Tâches courantes revues pour fonctionner en tant qu’utilisateur standardNe concerne que le logon interactif
Les administrateurs n’utilisent leurs privilèges que pour les tâches ou applications administrativesL’utilisateur fournit un consentement explicite avant d’utiliser des privilèges élevésHaute compatibilité des applicationsLes installateurs d’applications sont détectésLes applications nécessitant des privilèges « admin » peuvent être marquées comme telles
Définitions
UtilisateurCompte n’appartenant pas au groupe local AdministrateursNe peut pas effectuer des changements sur le système complet (à quelques exceptions près comme les paramètres d’affichage)Utilisateur à moindre privilège (LUA) ou Utilisateur Standard
AdministrateurCompte appartenant au groupe local Administrateurs (ou à Certificate Administrators, Enterprise Administrators, Schema Administrators…) ou ayant certains privilèges comme Backup, Restore, Debug…Par défaut les mêmes privilèges qu’un Utilisateur, mais a la possibilité de les élever pour avoir un accès complet à la machine Administrateur protégé (PA)
Meilleure expérience des utilisateurs standards
Corriger/supprimer les contrôles administratifs inappropriésExemple typique : l’horloge système / calendrierAjout d’imprimante (dont le pilote est installé sur la machine ou autorisé par l’administrateur par stratégie de groupe), d’autres périphériques, changement de fuseau horaire, défragmenteur, options d’alimentation, ajout d’une clé WEP/WPA, configuration d’un VPN, installation d’ActiveX de sites approuvés par l’administrateur, installation de mises à jour Windows critiques …Cacher certains éléments de l’interface si l’utilisateur n’est pas administrateur
Utilisateur standard par défaut lors de la créationBouclier pour identifier lesopérations « admin »
Demande d’élévation de privilèges
Modes d’élévation
Mode Approbation (Demande de consentement)Mode dans lequel il est demandé son consentement à l’Administrateur avant d’effectuer une tâche administrative –sauf pour le compte Administrateur intégré (RID == 500)
Mode saisie (Demande d’informations d’identification)Demande d’intervention d’un administrateur (authentification : nom/mot de passe, carte à puce…)Lorsqu’un Utilisateur effectue une tâche administrative
Modèle d’élévation
Privilèges d’administrateur
Privilèges d’utilisateur standard (par défaut)
Compte administrate
ur
Compte utilisateur standard
Comment demander élévation:
Marquage applicationDétection installationCorrectif compatibilité
(shim)Assistant compatibilité
Exécuter en tant qu’administrateur
Élévation de privilège
À la demande :
Systématiquement,par les propriétés de l’exécutable :
Interface utilisateur PA
Application non signée
Application signée
Application système
Utilisateur standard (Toby) sous Windows Vista
Démo
2 jetons pour un administrateurJeton filtré par défautPrivilèges d’un utilisateur standard
Jeton completPrivilèges d’un administrateur
Consentement par défaut
Administrateur (Abby) sous Windows Vista
Démo
Avertissement
Windows Vista permet à un administrateur de faire une utilisation plus raisonnable de ses privilèges mais un administrateur demeure un administrateurL’objectif global N’est PAS de permettre à plus d’utilisateurs d’être administrateurs mais bien l’inverse
Configuration d’UAC
Par stratégie de groupe (Stratégies locales / Options de sécurité)9 paramètres
Configuration d’UAC
Démo
Compatibilité
Problème : de nombreuses applications pourraient parfaitement fonctionner en utilisateur standard mais stockent sans raison des infos dans HKLM\Software ou %ProgramFiles%
Emplacement globaux (donc accessibles uniquement aux administrateurs) mais informations par utilisateur et non globales
La solution : virtualisationÉcriture : redirige les écritures « par machine » (disque, registre) vers le profil utilisateur
Program Files, HKLM
Lecture : essaie de lire depuis le profil utilisateur en premier
Virtualisation
Virtualisation des processus dont les opérations ont pour origine la session interactive (pas pour le partage de fichiers par ex.) SAUF SI
Ils sont 64 bitsIls ont un requestedExecutionLevel dans leur manifeste (cas de la plupart des exécutables de Windows Vista)Ils s’exécutent avec des privilèges admin
Contrôle du comportement par le manifeste
Windows Vista introduit une nouvelle clé requestedElevationLevel :
asInvoker : s’exécute avec les droits de l’utilisateurhighestAvailable : si utilisateur standard, ne demande rien. Si administrateur, demande élévationrequireAdministrator : demande toujours élévation<description>Windows Firewall Settings</description><trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security></trustInfo>
Virtualisation
Désactivable par stratégie de groupeChemins virtualisés
Système de fichiers %ProgramFiles% (\Program Files)%AllUsersProfile% (\ProgramData – ce qui était dans \Documents and Settings\All Users)%SystemRoot% (\Windows)%SystemRoot%\System32 (\Windows\System32)
RegistreHKLM\Software
Virtualisation
Exceptions: Système de fichiers
Fichiers avec des extensions d’exécutables (.exe, .bat, .vbs, .scr, etc)Ajout d’exceptions dans HKLM\System\CurrentControlSet\Services\Luafv\Parameters\ExcludedExtensionsAdd
RegistreHKLM\Software\Microsoft\WindowsHMLM\Software\Microsoft\Windows NTAutres clés sous Microsoft
Racine virtuelle par utilisateur%UserProfile%\AppData\Local\VirtualStore
Remarque : les fichiers virtualisés ne font pas partie des profils itinérants
HKEY_CURRENT_USER\Software\Classes\VirtualStore
Visualiser les fichiers virtualisés
Bouton Fichiers de compatibilité dans l’Explorateur
Virtualisation
Démo
Compatibilité
Certaines applications ont besoin de davantage d’aide pour tourner en tant qu’utilisateur standard
Windows Vista inclut certaines corrections (shims) en standardLes utilisateurs peuvent en définir d’autres comme :
ForceAdminAccess : pour les requêtes d’appartenance au groupe AdministrateursVirtualizeDeleteFile : pour la suppression d’un fichier globalLocalMappedObject : remplace des objets globaux par des objets locauxVirtualizeHKCRLite, VirtualizeRegisterTypeLib : détourne l’enregistrement global d’objets COM
Corrections (shims)
Utiliser Standard User Analyzer (SUA) pour analyser les applications qui ne fonctionnent par comme utilisateur standard
Téléchargement gratuitNe voit pas forcémenttoutes les opérationsadmin
LUA BuglightAssigner les shims avec le Compatibility Administrator
Partie du Application Compatibility Toolkit 5.0Crée une base de shims (.sdb) que l’on peut installer manuellement ou avec sdbinst.exe
Isolation des processus élevés
Problème : les processus élevés s’exécutent sur le même bureau que les processus LUASolution : Vista isole les fenêtres des processus élevés
User Interface Privilege Isolation (UIPI)Empêche les malwares de piloter les processus élevés
N’empêche pas les applications d’accessibilité (ex : clavier virtuel)
<requestedExecutionLevel level="asInvoker“ uiAccess="true"/>
SignatureEmplacement sécurisé (Program Files, Windows\System32)
Niveaux d’intégrité
Niveaux d’intégrité définis par des SIDs :Low S-1-16-4096 (0x1000)Medium S-1-16-8192 (0x2000)High S-1-16-12288 (0x3000)System S-1-16-16384 (0x4000)
1. Objets : No-Write-Up – un processus de faible intégrité ne peut pas modifier un objet d’intégrité supérieure
2. Processus : No-Write-Up + No-Read-Up – pour éviter les fuites d’informations (mots de passe…)
3. Interface graphique : un processus de faible intégrité ne peut pas envoyer de message à une fenêtre d’un processus d’intégrité supérieure (Shatter attacks)
Accès à des objets ou des processus
Medium ILProcess
High
Medium
Low
High
Medium
Low
LectureEcriture
Low ILProcess
Processus Objets
Isolation des processus
Processus à différents niveaux sur le même bureauLe niveau de privilège (admin, LUA) détermine le niveau d’intégritéIntégrité ~ confianceIsole les interactions spécifiques entre les niveaux de privilège
Bas ne peut pas écrire dans haut
Blocage à la frontière des niveaux d’intégrité
Attaques ShatterInjection de DLL
Compatibilité applicative inchangée au même niveau d’intégrité
IE
Word PPT
Console AV CPL
ServiceSystème
System
Admin
Utilisateur/LUA
Limité
exe téléchargé
Niveau d’intégrité
Isolation de processus
Met en place une frontière de séparation des privilèges entre utilisateur LUA et administrateur protégé PA qui empêche l’élévation de privilèges interprocessus
La vérification est faite à chaque fois qu’un processus utilise un objetUn processus peut démarrer un enfant avec un IL inférieurPrivilège pour lancer dans un IL supérieur : SeRelabelPrivilege
UIPI
Démo
Programme Logo Windows Vista
Inclut le respect d’UACManifeste sur chaque .EXE <requestedExecutionLevel level="asInvoker|highestAvailable|requireAdministrator" uiAccess="true|false"/>Séparation des tâches administrativesProgramme principal pas admin (sauf autorisation demandée à MS; ex: outil système)Ne pas utiliser uiAccess=True (sauf autorisation; ex : outil d’accessibilité)Etc.
Signature des exécutables (exe, dll, ocx, sys, cpl, drv, scr)Signature des pilotesRespect vie privée (cf Anti-Spyware Coalition)…
Conseils – en entreprise
Meilleur
Pas d’élévation pour les utilisateurs standards – tâches administratives par :
stratégies de groupeouverture session locale ou bureau à distance
Bon
Mode Approbation de l’administrateur – pour ceux qui en ont réellement besoin pour :
leur rôleproblèmes de compatibilité applicative non résolus
Mieux
Utilisateurs standardsDemande d’informations d’identification pour les administrateursCtrl+Alt+Suppr pour l’élévationActivation de DEP pour IE (nécessite tests des add-ons)
Synthèse
UAC : rendre possible l’utilisation de comptes utilisateurs standardsProtéger le systèmeProtéger les autres utilisateurs sur le système
Améliorer la compatibilité des applications avec le mode utilisateur standard (virtualisation)Fournir une méthode sécurisée pour exécuter certaines applications dans un contexte de privilèges élevésL’élévation est un moyen pratique, pas une frontière de sécuritéIsoler les processus : niveaux d’intégrité, MIC/UIPI
Références
Blog UAChttp://blogs.msdn.com/uac/Application compatibility with Windows Vistahttp://technet.microsoft.com/en-us/windowsvista/aa905066
Understanding and configuring UAC in Windows Vistahttp://technet.microsoft.com/en-us/windowsvista/aa905117