37
Pascal Sauliere Consultant Principal Sécurité Microsoft France Contrôle de compte utilisateur UAC Cyril Voisin Chef de programme Sécurité Microsoft France https:// blogs.technet.com/voy

ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Embed Size (px)

Citation preview

Page 1: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 2: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 3: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

UAC (User Account Control)

Principe de moindre privilège : classique en sécuritéObjectif : un système qui marche pour des utilisateurs standards

Page 4: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 5: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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)

Page 6: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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 »

Page 7: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Demande d’élévation de privilèges

Page 8: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 9: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 10: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Élévation de privilège

À la demande :

Systématiquement,par les propriétés de l’exécutable :

Page 11: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Interface utilisateur PA

Application non signée

Application signée

Application système

Page 12: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Utilisateur standard (Toby) sous Windows Vista

Démo

Page 13: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

2 jetons pour un administrateurJeton filtré par défautPrivilèges d’un utilisateur standard

Jeton completPrivilèges d’un administrateur

Consentement par défaut

Page 14: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Administrateur (Abby) sous Windows Vista

Démo

Page 15: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 16: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Configuration d’UAC

Par stratégie de groupe (Stratégies locales / Options de sécurité)9 paramètres

Page 17: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Configuration d’UAC

Démo

Page 18: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 19: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 20: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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>

Page 21: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 22: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 23: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Visualiser les fichiers virtualisés

Bouton Fichiers de compatibilité dans l’Explorateur

Page 24: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Virtualisation

Démo

Page 25: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 26: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 27: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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)

Page 28: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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)

Page 29: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

Accès à des objets ou des processus

Medium ILProcess

High

Medium

Low

High

Medium

Low

LectureEcriture

Low ILProcess

Processus Objets

Page 30: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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é

Page 31: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 32: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

UIPI

Démo

Page 33: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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)…

Page 34: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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)

Page 35: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 36: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims

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

Page 37: ObjectifPrincipesDéfinitions Meilleure expérience des utilisateurs standards Modes et modèle délévation Utilisateur standard Administrateur protégé ConfigurationCompatibilitéVirtualisationShims