Title: Principe du moindre privilge en action
1Principe du moindre privilège en action
Pascal Sauliere Consultant Principal Sécurité,
CISSP Microsoft France
Cyril Voisin Chef de programme Sécurité Microsoft
France
2Bon à 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
3Sommaire
- 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 !
4Dé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
5Les 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
6Ce 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
-
7Mais 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
8Le 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
9Je 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é
-
10Et 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
11Exemple 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
12Non-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
13OK, cest bon je suis convaincu. Et comment
fait-on ?
14Passer 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 !
15démo
- Changement rapide dutilisateur
16RunAs
- 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
17Boî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
18Boî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
19RunAs en ligne de commande
- Exemple runas /uAdministrateur cmd.exe
20RunAs 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..
21RunAs indication visuelle
- Image de fond pour IE et lexplorateur
- Réglé via TweakUI par ex.
22PrivBar
Exécution dIE en tant quadmin comme
utilisateur avec pouvoir comme
utilisateur normal avec Protéger ma
machine
23PrivBar (suite)
24démo
- RunAs / PrivBar / TweakUI
25RunAs 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
26Parfois 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 !!)
27RunAs 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\
28démo
29Problè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
30MakeMeAdmin
- É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
31démo
32Autres 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
33Autres 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
34Astuces
- 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
35Astuces 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 !! )
36Dé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.
37Longhorn
- LUA est un des objectifs de cette version
38Ressources
39Ré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
40Ré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
41Autre 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
42Remerciements
- Aaron Margosis
- Arnaud Jumelet
43Microsoft France 18, avenue du Québec 91 957
Courtaboeuf Cedex www.microsoft.com/france 0
825 827 829 msfrance_at_microsoft.com
44Compléments
45Le panneau de configuration
- Utiliser cmd.exe fichier .cpl
46Complé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
47Utilisation 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
48Winsudo
49Winsudo
50Winsudo
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\""
51Jeton
- 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
52Privilèges
53Privilè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.
54Privilèges
- SeDebugPrivilege Lutilisateur peut sattacher
à nimporte quel processus pour le débugger. - Ce privilège nest pas requis pour débugger vos
propres programmes.
55Privilè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.
56Privilè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.
57Privilè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 . -
58Privilè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
59Autres
- 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/