370 likes | 554 Vues
Contrôle de compte utilisateur UAC. Cyril Voisin Chef de programme Sécurité Microsoft France https:// blogs.technet.com/voy. Pascal Sauliere Consultant Principal Sécurité Microsoft France. Sommaire. Objectif Principes Définitions Meilleure expérience des utilisateurs standards
E N D
Contrôle de compte utilisateur UAC Cyril Voisin Chef de programme Sécurité Microsoft France https://blogs.technet.com/voy Pascal Sauliere Consultant Principal Sécurité Microsoft France
Sommaire • Objectif • Principes • Définitions • Meilleure expérience des utilisateurs standards • Modes et modèle d’élévation • Utilisateur standard • Administrateur protégé • Configuration • Compatibilité • Virtualisation • Shims • Contrôle d’intégrité obligatoire (MIC,UIPI) • Manifestes • Conseils • Synthè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 standard • Ne concerne que le logon interactif • Les administrateurs n’utilisent leurs privilèges que pour les tâches ou applications administratives • L’utilisateur fournit un consentement explicite avant d’utiliser des privilèges élevés • Haute compatibilité des applications • Les installateurs d’applications sont détectés • Les applications nécessitant des privilèges « admin » peuvent être marquées comme telles
Définitions • Utilisateur • Compte n’appartenant pas au groupe local Administrateurs • Ne 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 • Administrateur • Compte 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és • Exemple typique : l’horloge système / calendrier • Ajout 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éation • Bouclier pour identifier lesopérations « admin »
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 Comment demander élévation:Marquage application Détection installationCorrectif compatibilité (shim)Assistant compatibilitéExécuter en tant qu’administrateur Compte administrateur Privilèges d’utilisateur standard (par défaut) Compte utilisateur standard
Élévation de privilège Systématiquement, par les propriétés de l’exécutable : À la demande :
Interface utilisateur PA Application système Application non signée Application signée
2 jetons pour un administrateur Jeton filtré par défaut Privilèges d’un utilisateur standard Jeton complet Privilèges d’un administrateur Consentement par défaut
Avertissement • Windows Vista permet à un administrateur de faire une utilisation plus raisonnable de ses privilèges mais un administrateur demeure un administrateur • L’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 bits • Ils 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’utilisateur • highestAvailable : si utilisateur standard, ne demande rien. Si administrateur, demande élévation • requireAdministrator : demande toujours élévation <description>Windows Firewall Settings</description> <trustInfoxmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo>
Virtualisation • Désactivable par stratégie de groupe • Chemins virtualisés • Système de fichiers • %ProgramFiles% (\Program Files) • %AllUsersProfile% (\ProgramData – ce qui était dans \Documents and Settings\AllUsers) • %SystemRoot% (\Windows) • %SystemRoot%\System32 (\Windows\System32) • Registre • HKLM\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 • Registre • HKLM\Software\Microsoft\Windows • HMLM\Software\Microsoft\Windows NT • Autres 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 standard • Les utilisateurs peuvent en définir d’autres comme : • ForceAdminAccess : pour les requêtes d’appartenance au groupe Administrateurs • VirtualizeDeleteFile : pour la suppression d’un fichier global • LocalMappedObject : remplace des objets globaux par des objets locaux • VirtualizeHKCRLite, 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 gratuit • Ne voit pas forcémenttoutes les opérationsadmin • LUA Buglight • Assigner les shims avec le Compatibility Administrator • Partie du Application Compatibility Toolkit5.0 • Cré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 LUA • Solution : 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) • <requestedExecutionLevellevel="asInvoker“ uiAccess="true"/> • Signature • Emplacement sécurisé (Program Files, Windows\System32)
Niveauxd’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) • Objets : No-Write-Up – un processus de faible intégrité ne peut pas modifier un objet d’intégrité supérieure • Processus : No-Write-Up + No-Read-Up – pour éviter les fuites d’informations (mots de passe…) • 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 (Shatterattacks)
Accès à des objetsou des processus Objets Processus High High Medium Medium Medium IL Process Low Low Low IL Process Lecture Ecriture
Isolation des processus Niveau d’intégrité Service Système • Processus à différents niveaux sur le même bureau • Le niveau de privilège (admin, LUA) détermine le niveau d’intégrité • Intégrité ~ confiance • Isole 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 Shatter • Injection de DLL • Compatibilité applicative inchangée au même niveau d’intégrité System CPL Console AV Admin Word PPT Utilisateur/LUA IE Limité exe téléchargé
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 objet • Un processus peut démarrer un enfant avec un IL inférieur • Privilège pour lancer dans un IL supérieur : SeRelabelPrivilege
UIPI Démo
Programme Logo Windows Vista • Inclut le respect d’UAC • Manifeste sur chaque .EXE <requestedExecutionLevellevel="asInvoker|highestAvailable|requireAdministrator" uiAccess="true|false"/> • Séparation des tâches administratives • Programme 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 pilotes • Respect vie privée (cfAnti-Spyware Coalition) • …
Conseils – en entreprise Bon Mieux Meilleur • Mode Approbation de l’administrateur – pour ceux qui en ont réellement besoin pour : • leur rôle • problèmes de compatibilité applicative non résolus • Utilisateurs standards • Demande d’informations d’identification pour les administrateurs • Ctrl+Alt+Suppr pour l’élévation • Activation de DEP pour IE (nécessite tests des add-ons) • Pas d’élévation pour les utilisateurs standards – tâches administratives par : • stratégies de groupe • ouverture session locale ou bureau à distance
Synthèse • UAC : rendre possible l’utilisation de comptes utilisateurs standards • Protéger le système • Proté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és • L’é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