Principe du moindre privilge en action - PowerPoint PPT Presentation

1 / 59
About This Presentation
Title:

Principe du moindre privilge en action

Description:

Pourquoi vous auriez tout int r t utiliser un compte utilisateur normal, m me ... compte normal et ex cuter en tant qu'admin uniquement les t ches administratives ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 60
Provided by: cyrilv
Category:

less

Transcript and Presenter's Notes

Title: Principe du moindre privilge en action


1
Principe du moindre privilège en action
Pascal Sauliere Consultant Principal Sécurité,
CISSP Microsoft France
Cyril Voisin Chef de programme Sécurité Microsoft
France
2
Bon à savoir
  • Pour récupérer les présentations mises à jour, se
    connecter sur http//www.microsoft.com/france/secu
    rite, rubrique événements
  • Pour poser une question que vous navez pas eu le
    temps de poser durant une session
    frjms_at_microsoft.com

3
Sommaire
  • Pourquoi vous auriez tout intérêt à utiliser un
    compte utilisateur normal, même si vous êtes
    administrateur
  • Comment faire sans devenir dingue
  • Les conseils
  • Des démos, des démos, des démos !

4
Définitions
  • Non-Admin
  • Utilisateur avec pouvoir Nest PAS un Non-Admin
    !
  • Typiquement Utilisateurs, Utilisateurs du
    domaine
  • LUA
  • Limited User Account
  • Least-privileged User Account
  • Principe du moindre privilège

5
Les expositions aux risques ne manquent pas
  • Navigation sur le Web
  • E-mail
  • Messagerie instantanée
  • Jeux sur Internet
  • Lecteurs audio/vidéo
  • Et ce, quel que soit le fournisseur des
    applications

6
Ce quun compte Admin peut faire, quun LUA ne
peut pas faire
  • Installer des rootkits en mode noyau
  • Installer des keyloggers au niveau système (pour
    capture les mots de passe, y compris ceux saisis
    à louverture de session)
  • Installer des contrôles ActiveX, y compris des
    extensions de lexplorateur ou dIE (activité
    courante pour les spywares)
  • Installer et démarrer des services
  • Arrêter des services existants (comme le pare-feu
    par exemple)
  • Accéder à des données qui appartiennent à
    dautres utilisateurs
  • Faire en sorte que du code sexécute lorsquun
    autre utilisateur ouvrira une session
  • Remplacer des fichiers dapplications ou du
    système dexploitation par des chevaux de Troie
  • Accéder aux secrets LSA (dont les mots de passe
    des comptes de service du domaine servant)
  • Désactiver ou désinstaller lanti-virus
  • Créer ou modifier des comptes utilisateurs
  • Réinitialiser des mots de passe
  • Modifier le fichier hosts et dautres paramètres
    de configuration du système
  • Éliminer ses traces dans le journal des
    événements
  • Rendre votre machine incapable de démarrer

7
Mais mon métier est dêtre administrateur
  • Dans ce cas, ouvrir une session avec un compte
    normal et exécuter en tant quadmin uniquement
    les tâches administratives
  • La plupart des utilisateurs en entreprise ne
    devrait jamais avoir besoin de privilèges élevés

8
Le cas des développeurs
  • Développer sans être administrateur
  • Améliore votre logiciel
  • Vous permet de trouver les bugs plus rapidement
  • Diminue les coûts de développement
  • Est plus sûr
  • Les bugs LUA
  • La fonctionnalité ne marche que si on est admin
  • Cause le développeur était admin de sa machine
    !
  • ça marche sur ma machine !
  • Dépense non nécessaire
  • Résolution
  • Refaire limplémentation ou même ré-architecturer
    ou
  • Demander les privilèges admin pour exécuter le
    produit

9
Je suis en sécurité parce que
  • je suis à jour au niveau des correctifs
  • je maintiens à jour mon antivirus
  • jutilise un pare-feu
  • jutilise Windows XP SP2
  • jutilise Microsoft AntiSpyware !
  • jai un mot de passe fort
  • je nouvre pas les pièces jointes étranges dans
    les e-mails
  • je fais attention à où je navigue
  • je ninstalle pas nimporte quel logiciel
  • jai du bon sens / je suis rusé
  • je nai jamais été infecté

10
Et les Zero-Day Exploits ?
  • Vulnérabilités sans correctifs
  • Reverse-engineering du correctif dès sa sortie
  • Divulgation publique avant larrivée du correctif
  • Vulnérabilités inconnues jusqualors
  • Lexploitation précède la divulgation publique

11
Exemple Download.Ject
  • Zero-day pour Internet Explorer
  • Exploitation venant de sites Web légitimes
  • Ce nétait pas la première fois, et ça ne sera
    probablement pas la dernière

12
Non-admin et les rootkits
  • Sujet de la dernière session de la journée
  • La plupart des rootkits nécessitent des
    privilèges Admin
  • Installent/chargent des pilotes noyau
  • Installent des services
  • Détournent des fonctions noyau ou des
    interruptions
  • Modifient les structures de données du noyau
  • Les rootkits en mode LUA
  • Plus faciles à détecter
  • Moins dendroits où se cacher et assurer leur
    démarrage automatique
  • Naffectent quun seul utilisateur

13
OK, cest bon je suis convaincu. Et comment
fait-on ?
14
Passer Admin quand cest nécessaire
  • Changement rapide dutilisateur (Fast User
    Switching)
  • Windows XP Edition Familiale
  • Windows XP Professionnel, hors domaine
  • Les sessions de logon sont isolées les unes des
    autres
  • Suggestion pour lusage domestique
  • Un LUA par personne, compte invité optionnel
  • Un compte Admin
  • Pas de mots de passe !

15
démo
  • Changement rapide dutilisateur

16
RunAs
  • Démarre un programme avec un utilisateur
    différent (ou le même mais avec un jeton de
    sécurité modifié)
  • Même bureau
  • En ligne de commande ou avec une boîte de
    dialogue dans linterface graphique
  • Les programmes  fils  héritent du contexte de
    sécurité de leur  parent 
  • Démarrer CMD en tant quadmin
  • Lancer des applications depuis ce CMD
  • Elles sexécutent en tant quadmin

17
Boîte de dialogue Exécuter en tant que (RunAs)
  • Menu contextuel par clic droit
  • Applis, raccourcis
  • Console MMC (.msc)
  • Shiftclic droit pour
  • Les applis du Panneau de configuration (.cpl)
  • Les liens spéciaux Windows Installer

18
Boîte de dialogue Exécuter en tant que (RunAs)
  • Faire en sorte quun raccourci propose
    systématiquement la boîte de dialogue Exécuter
    en tant que
  • Propriétés du raccourci, Propriétés avancées

19
RunAs en ligne de commande
  • Exemple runas /uAdministrateur cmd.exe

20
RunAs Indication visuelle
  • cmd.exe /t4f /k cd c\ title Console
    admin runas.exe /usercomputername\Admini
    strator "cmd.exe /k color 4f title Console
    Admin "

Utiliser la commande color -? pour trouver les
couleurs qui vous vont bien..
21
RunAs indication visuelle
  • Image de fond pour IE et lexplorateur
  • Réglé via TweakUI par ex.

22
PrivBar
Exécution dIE en tant quadmin comme
utilisateur avec pouvoir comme
utilisateur normal avec Protéger ma
machine
23
PrivBar (suite)
24
démo
  • RunAs / PrivBar / TweakUI

25
RunAs et les fichiers .MSI
  • Les fichiers Windows Installer (.msi) noffrent
    pas loption RunAs
  • On peut lajouter dans les Options des dossiers
    ou
  • En exécutant tout simplement le fichier depuis un
    CMD Admin
  • C\Downloadsgt gpmc.msi

26
Parfois RunAs ne fonctionne pas
  • Certaines applications sont mono-instances
  • Lexplorateur de Windows
  • Microsoft Office Word
  • Certaines applications sont lancées par le shell
  • ShellExecuteEx
  • DDE
  • La version précédente de WindowsUpdate (v5)! ?
    (v6 dispo depuis le 6 juin !!)

27
RunAs et lexplorateur
  • Deux solutions
  • Indiquer à lexplorateur dexécuter plusieurs
    instances
  • Launch folder windows in a separate process
  • Avertissement concernant ce paramétrage
  • Ou utiliser Internet Explorer à la place
  • ie.cmd
  • _at_start "" /b "ProgramFiles\Internet
    Explorer\iexplore.exe"
  • Exemple ie c\

28
démo
  • RunAs et lexplorateur

29
Problèmes liés à lutilisation dun compte Admin
local
  • Pas daccès aux ressources du domaine
  • Des paramètres de profil différents
  • Certaines applications supposent que la personne
    qui linstalle est celle qui va lutiliser
  • Paramètres de stratégie par utilisateur
  • Options dalimentation
  • Solution ?
  • Script MakeMeAdmin dAaron Margosis

30
MakeMeAdmin
  • Élévation temporaire au niveau Admin de votre
    compte actuel
  • Résultat CMD sexécute en tant que votre compte
    normal mais avec des privilèges Admin
  • Les applications démarrées depuis ce CMD héritent
    de ce contexte de sécurité
  • Disponible sur le blog dAaron Margosis

31
démo
  • MakeMeAdmin

32
Autres remarques
  • Il nest pas possible dutiliser un IE admin via
    RunAs pour mettre à jour la machine depuis
    Windows Update v5 (il faut soit ouvrir une
    session complète séparée, soit faire une
    installation automatique linstallation de mise
    à jour à lextinction de la machine fonctionne en
    LUA)
  • Regedit est mono-instance (utiliser /m)
  • Changement dheure non permis en tant que LUA
  • Attribuer le privilège SeSytemTimePrivilege
  • Attention tolérance limitée de Kerberos

33
Autres remarques
  • Pour savoir quel est le compte
  • Set username
  • Whoami
  • Dans un CMD en RunAs, le CtrlC ne marche pas
    utiliser CtrlBreak
  • Panneau de configuration
  • possibilité de lancer des .cpl directement (si
    Explorateur configuré correctement)
  • Winsudo

34
Astuces
  • Modifier la configuration réseau ou activer /
    désactiver la carte Wi-Fi  ajouter son compte du
    domaine dans le groupe local Network
    Configuration Operators
  • Pour les grands voyageurs qui veulent changer
    leur time zone en fonction du continent sur
    lequel ils se trouvent, ajouter pour son compte
    la permission Set Value sur la clé
    HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInfo
    rmation

35
Astuces pour les scripts
  • Trouver le nom du groupe local Administrateurs
    avec psgetsid.exe 
  • _at_echo off setlocal for /F "skip1 tokens2" x
    in ('psgetsid S-1-5-32-544') do set ADMINNAMEx
    echo ADMINNAMEADMINNAME endlocal
  • Trouver le nom de l'administrateur local avec
    psgetsid.exe  _at_echo off setlocal for /F "skip1"
    x in ('psgetsid computername') do set
    COMPSIDx for /F "skip1 tokens2" x in
    ('psgetsid COMPSID-500') do set ADMINNAMEx
    echo ADMINNAMEADMINNAME endlocal
  • Déterminer si on est administrateur ou non, avec
    whoami.exe des Support Tools de Windows XP 
  • _at_echo off whoami.exe /groups /noverbose find
    "BUILTIN\Administrat" if "ERRORLEVEL""0" (
    echo Admin!! ) else ( echo Non admin !! )

36
Développeurs
  • 90 des programmes ne fonctionnent pas sans les
    privilèges administrateurs à cause de
  • Écriture dans ProgramFiles, windir
  • Écriture dans HKEY_LOCAL_MACHINE (HKLM)
  • Pour faire en sorte quun programme sexécute
    sans les privilèges administrateurs
  • ACT 4.01 (Application Compatibility Toolkit )
    Outil gratuit sur le site web de Microsoft
  • Regmon et Filemon outils gratuits de
    sysinternals
  • Emprunt didentité (Impersonation) lorsquun
    thread sexécute sous un contexte de sécurité
    différent de son processus père.Attention tous
    les threads dun processus partagent la même
    table des handles.

37
Longhorn
  • LUA est un des objectifs de cette version

38
Ressources
39
Références
  • Site sécurité http//www.microsoft.com/france/se
    curite
  • Le blog non-Admin dAaron Margosis
    http//blogs.msdn.com/aaron_margosis
  • Le Wiki Non-Admin http//nonadmin.editme.com
  • Browsing the Web and Reading E-mail Safely as an
    Administrator Part 1 http//msdn.microsoft.com/
    library/en-us/dncode/html/secure11152004.aspPart
    2 http//msdn.microsoft.com/library/en-us/dncode
    /html/secure01182005.asp

40
Références
  • TweakUI http//www.microsoft.com/windowsxp/downlo
    ads/powertoys/xppowertoys.mspx
  • Outils SysInternals http//www.sysinternals.com
  • Developing Software in Visual Studio .NET with
    Non-Administrative Privilegeshttp//msdn.microsof
    t.com/library/default.asp?url/library/en-us/dv_vs
    techart/html/tchDevelopingSoftwareInVisualStudioNE
    TWithNon-AdministrativePrivileges.asp
  • How to develop code as a non-admin
    http//www.pluralsight.com/keith/book/html/howto_r
    unasnonadmin.html

41
Autre idée (peu recommandée)
  • Pour les irréductibles  comment exécuter de
    applications avec des privilèges réduits lorsque
    l'on est administrateur, avec l'outil
    DropMyRights.exe de Michael Howard
  • http//msdn.microsoft.com/security/securecode/col
    umns/default.aspx?pull/library/en-us/dncode/html/
    secure11152004.asphttp//blogs.msdn.com/michael_H
    oward/archive/2005/01/17/354708.aspx

42
Remerciements
  • Aaron Margosis
  • Arnaud Jumelet

43
Microsoft France 18, avenue du Québec 91 957
Courtaboeuf Cedex www.microsoft.com/france 0
825 827 829 msfrance_at_microsoft.com
44
Compléments
45
Le panneau de configuration
  • Utiliser cmd.exe fichier .cpl

46
Compléments
  • Runas /netonly
  • Ne pas faire save credentials avec runas (par
    principe de sécurité)
  • Dans XP Home, pas de PowerUser, seulement 2
    groupes Owners et Users
  • Usage domestique jeux choisir loption
     Installer pour tous les utilisateurs de cet
    ordinateur  si lapplication propose ce choix.
    Dans le cas contraire ladministrateur sera la
    seule personne capable de pouvoir jouer au jeu à
    la fin de linstallation

47
Utilisation Familiale
  • Créer un Administrateur sans mot de passe
    (louverture de session ne sera possible que de
    façon interactive, pas de netlogon et runas)
  • Créer un utilisateur limité
  • Différencier les 2 comptes avec un fond décran
    spécial pour ladministrateur

48
Winsudo
49
Winsudo
50
Winsudo
windir\system32\runas /useradministrator "cmd
/c start \"\" control timedate.cpl
windir\system32\eventcreate.exe /ID 700 /T
INFORMATION /D \"WINSUDOCPL_DATE_AND_TIME-RUNAS_A
DMIN\""
51
Jeton
  • La fonction CreateProcessWithLogon génère un
    jeton en créant une nouvelle session de connexion
    avec un processus initial. La commande RunAs
    fonctionne de cette manière.
  • Note restriction mot de passe vide pour Windows
    XP et Windows Server 2003

52
Privilèges
53
Privilèges
  • SeBackupPrivilege revient à donner les
    permissions suivantes sur lensemble du système
    de fichier présent sur lordinateur local
  • Traverse Folder/Execute File, List Folder/Read
    Data, Read Attributes, Read Extended Attributes
    et Read Permissions.

54
Privilèges
  • SeDebugPrivilege Lutilisateur peut sattacher
    à nimporte quel processus pour le débugger.
  • Ce privilège nest pas requis pour débugger vos
    propres programmes.

55
Privilèges
  • SeLoadDriverPrivilege Lutilisateur est
    autorisé à installer et désinstaller un pilote de
    périphérique. Il peut également démarrer et
    stopper les périphériques.
  • Les pilotes de périphériques sexécutent en mode
    noyau, et peuvent ainsi prendre le contrôle total
    du système.

56
Privilèges
  • SeSytemTimePrivilege Lutilisateur est autorisé
    à changer lheure de lhorloge interne de son
    ordinateur.
  • A partir de Windows 2000, par défaut, les
    utilisateurs ne possèdent pas ce privilège afin
    de pas interférer avec lauthentification
    Kerberos.

57
Privilèges
  • SeRestorePrivilege Lutilisateur est autorisé à
    passer outre les permissions sur le système de
    fichiers afin de restaurer des fichiers et des
    dossiers.Peut également redéfinir le
    propriétaire dun objet .

58
Privilèges
  • SeTakeOwnershipPrivilege Permet à un
    utilisateur de devenir le propriétaire de
    nimporte quel objet comportant un descripteur de
    sécurité.
  • Cela inclut les objets Active Directory, les
    fichiers et les répertoires, les imprimantes, les
    clés de registre, les processus

59
Autres
  • NeoExec de NeoValens - un outil qui permet de
    définir des privilèges au niveau des
    applications. Le principe est de définir pour
    certaines applications qu'elles s'exécuteront
    toujours avec le privilèges administrateur. Utile
    à la maison pour certains jeux.
  • http//www.neovalens.com/
Write a Comment
User Comments (0)
About PowerShow.com