Professional Documents
Culture Documents
AB v9 (29/10/2009)
Histoire du DOS
1981 1982
MS-DOS 1.24 06/1982 PC-DOS 1.00 12/08/1981
Histoire de Windows
1988 1989 1990
Windows 3.0 22/05/1990
1991 1992
PC-DOS 5.02 08/1992
MS-DOS 5.0 06/1991 Windows 3.1 06/04/1992 MS-DOS 6.0 30/03/1993 MS-DOS 6.2 11/1993 Windows for Workgroups 3.11 08/11/1993
3
1993
PC-DOS 6.00 1993
Histoire de Windows NT
1994
MS-DOS 6.22 11/03/1994 PC-DOS 7 28/02/1995 OS/2 Warp 3.0 10/1994 Windows NT 3.5 21/09/1994 Windows NT 3.51 30/05/1995
1995
Windows 95 (MS-DOS 7.0) 24/08/1995
1996
1997
1998
Windows 98 25/06/1998
1999
Windows 98 SE 05/05/1999
4
Histoire de Windows NT
2000
Windows Me 14/09/2000 Windows 2000 17/02/2000 Windows XP 25/10/2001
2005
2006 2007
Windows XP x64 Edition 25/04/2005 Windows Server 2003 R2 01/02/2006 Windows Vista 30/01/2007
5
Histoire de Windows NT
2008
Windows Server 2008 04/02/2008
2009
Windows 7 22/07/2009
Famille NT
Client
Windows NT Windows 2000
Windows NT Workstation 4.0 Windows 2000 Professional
Serveur
Windows NT Server 4.0 Windows 2000 Server Windows 2000 Advanced Server Windows 2000 Datacenter Server
Windows XP
Windows XP Home Edition Windows XP Professional Windows XP Media Center Edition Windows XP Tablet PC Edition Windows XP Professional x64 Edition Windows Server 2003 Standard Edition Windows Server 2003 Enterprise Edition Windows Server 2003 Datacenter Edition Windows Server 2003 Web Edition Windows Vista Starter Windows Vista dition Familiale Basique Windows Vista dition Familiale Prenium Windows Vista Professionnel (Business) Windows Vista Entreprise (Enterprise) Windows Vista Intgrale (Ultimate)
Windows 2003
Windows Vista
Famille NT
Client
Windows 2008
Serveur
Windows Server 2008 Standard Windows Server 2008 Enterprise Windows Server 2008 Datacenter Edition Windows Web Server 2008
Windows 7
Windows 7 Starter Windows 7 dition Familiale Basique (Home Basic) Windows 7 dition Familiale Premium (Home Premium) Windows 7 Professionnel (Professional) Windows 7 Entreprise (Enterprise) Windows 7 dition Intgrale (Ultimate)
Caractristiques Windows NT
Systme dexploitation exploitant pleinement les possibilits du processeur 386 (rings 0/3, segmentation et pagination, adressage virtuel, multitche premptif, ) Fonctionne sur plusieurs architectures matrielles : lorigine : x86, Alpha, PowerPC et MIPS actuellement : x86 : tous sauf Server 2008 R2 x86_64 : XP, 2003, 2008, Vista et 7 Itanium : 2003 et 2008
10
Sous-systmes
Trois sous-systmes sont disponibles jusqu Windows XP : Win32 POSIX : remplac par Windows Services for UNIX OS/2 : remplac par lmulation
11
12
Espace utilisateur
Processus systmes
Session manager
smss.exe
Services
service control manager
(SCM) - services.exe
Processus utilisateur
Initialiseur de session
userinit.exe
svchost.exe svchost.exe
Logon process
winlogon.exe
Application
word.exe
Application
firefox.exe
Application
iexplore.exe
13
Sessions utilisateurs
Session manager
smss.exe
Windows subsystem
Session manager
smss.exe
csrss.exe
Services
Windows subsystem
csrss.exe
Logon process
winlogon.exe
Credential provider
Logonui.exe
svchost.exe svchost.exe
Shell graphique
explorer.exe
Processus utilisateur
14
Sous-systmes
smss.exe : gestion des sessions csrss.exe : gestion de lenvironnement Win32 winlogon.exe : gestion des authentifications interactives lsass.exe : gestion de la scurit services.exe : gestion des services rpcss.dll : gestion des RPCs spoolss.exe : gestion de limpression
15
Composants principaux
Gestionnaire de scurit : Local Security Authority (LSA) dans le processus lsass.exe Authentification : Winlogon, Gina, AP (Authentication package), SSPI (Security Support Provider Interface) Cryptographie : CryptoAPI, CSP (Cryptographic Service Providers), CAPICOM Rseau : Windows Sockets 2 (WinSock) Graphique : GDI/GDI+ (Graphics Device Interface) Modle objet : OLE (Object Linking and Embedding), COM/DCOM/COM+ (Component Object Model), ActiveX
16
SSP / AP
msv1_0 (NTLM) Kerberos Negociate Channel Digest SSP
PlugPlay
EventLog
ipsec.sys
17
Composants de Scurit
LSASS (Local security authority subsystem)
%SYSTEMROOT%\System32\lsass.exe
Processus en charge de la scurit locale du poste (connexion locale, gestion des mots de passe, journalisation) SRM (Security reference monitor)
%SYSTEMROOT%\System32\ntoskrnl.exe
Partie du noyau (fonctions SeXxx) responsable de la vrification des permissions, de lutilisation des privilges et de la journalisation
18
Composants de Scurit
Base de LSASS : HKLM\SECURITY
%SYSTEMROOT%\System32\config\SECURITY
Winlogon Processus en charge de traiter les SAS (Secure Authentification Sequence) et de grer les sessions interactives Gina Bibliothque graphique utilise par Winlogon et en charge de rcuprer les credentials des sessions interactives
19
Cls de registre
Gestion des sous-systmes
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
Notification packages
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
Shell
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
Paramtres LSA
HKLM\SYSTEM\CurrentControlSet\Control\Lsa
20
Mise jour
21
Problmatiques
Disposer des mises jour : dure de la priode de mise jour de lditeur
Dployer les mises jour : utilisation de mcanismes intgrs ou tiers Contrler lapplications des mises jour
22
23
24
25
Quelques dates
Produit commercialis
Windows NT Workstation 4.0
30/06/1999
31/03/2000 31/12/2001 27/06/1999 31/05/2001 31/12/2000 / 31/12/2001 30/11/2000
30/06/2002
30/06/2005 14/04/2009 30/06/2004 11/07/2006 Politique des Service Packs 08/04/2008
26
27
La base de registre
30
31
32
34
Base de registre
www.winguides.com Q256986
36
Gestion graphique
37
38
\1
\WinSta0
\Default
\Service0x0-3e4$
\Default
\Default
\Disconnect \Winlogon
\Disconnect \Winlogon
\Service0x0-3e5$
\Default
39
Scurit de Windows
41
Services Windows
Il y deux types de services Windows : Service applicatif (service application) : programme offrant une interface spcifique et gr par le SCM (Service Control Manager) Pilote (driver service) : fichier au format pilote de priphriques (format natif)
Le mot services fait gnralement rfrence aux services applicatifs
42
Services Windows
Un service applicatif est un programme sexcutant en tche de fond. Il est gnralement lanc (dmarr) linitialisation du systme (avant mme la connexion dun utilisateur)
44
Services
Un service est un programme sexcutant en tache de fond, mme si un utilisateur nest pas connect Il faut dsactiver les services inutiles Un service sexcute sous un compte utilisateur : LocalSystem NetworkService ( partir de XP) LocalService ( partir de XP) Spcifique (exemple : IIS, SQLServer, )
45
46
47
LocalSystem
Pseudo-compte trs privilgi Comprend les SIDs : NT AUTHORITY\SYSTEM BUILTIN\Administrators Utilise le profil HKEY_USERS\.DEFAULT, mais possibilit de changement didentit Ne peut pas sauthentifier distance (contexte NULL soit anonyme) Beaucoup de privilges, en particulier : BACKUP, CREATE_TOKEN, DEBUG, LOAD_DRIVER, TAKE_OWNERSHIP, TCB
48
49
50
DLL dexcution :
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters (ServiceDll)
51
52
Les droits (ACL et privilges) sont attribus aux utilisateurs et aux groupes
53
54
Domaine Windows NT 4
Possibilit de regrouper des comptes pour les partager en rseau Centralisation de la gestion des comptes (ajout, modification, mot de passe)
Les comptes sont stocks sur une machine qui joue le rle de contrleur de domaine ou PDC (Primary Domain Controller)
55
Domaine Windows NT 4
Un domaine est identifi par un nom de 15 lettres, comme pour les machines (nom NetBios) Il ne peut y avoir quun seul PDC par domaine, mais il existe des serveurs de sauvegardes, les BDC (Backup Domain Controller) Les clients du domaine sont des machines. On parle alors de membres du domaine On ne peut devenir membre du domaine quaprs lautorisation de ladministrateur du domaine
56
Domaine Windows NT 4
Liaison inter contrleur Lecture seule Lecture / criture
BDC
PDC
BDC
BDC
57
Domaine Windows NT 4
Le nombre dutilisateurs dans un domaine est limit Les connexions entre sites sont mal gres
Ncessit davoir plusieurs domaines
2 domaines qui partagent des informations doivent tre approuvs : ils ont une relation dapprobation Cette relation nest ni bidirectionnelle, ni transitive
58
Domaine 2
Domaine 4 Domaine 3
59
62
DC
DC
DC
63
LActive Directory
LActive Directory stocke les comptes des utilisateurs et machines membres du domaine, mais aussi dautres types dobjets (groupes, contacts, imprimantes, partages rseaux, GPO ainsi que de nombreux paramtres systmes)
Ces lments sont classs dans des Organisations Units (OU) Consultable en LDAP
64
Analyse
Relations
Production
Fr
Int.
65
66
usines.pays.productions.com
creation.demo.net
etude.demo.net
67
Matres doprations
Flexible Single Master Operations (FSMO)
Il existe des rles uniques (matres doprations) qui sont attribus un seul contrleur du domaine : matre d'infrastructure (gestion SID et GUID) matre RID mulateur PDC ou de la fort : matre de schma matre d'attribution des noms de domaine Q223346 : recommandation pour la rpartition
68
Sites
Il existe la notion de Sites
Les sites sont des reprsentations logiques dune structure physique Ils permettent doptimiser la communication entre les contrleurs de domaine
69
Gestion rseau
SMB (Server Message Block) CIFS (Common Internet File System)
70
Protocoles rseau
TCP/IP IPX
WinHTTP
71
72
En tte SMB
0xFF Command Status Flags1 (old) S M Status Flags2 (new) Signature B
PID (Process ID) high Signature Signature TID (Tree ID) UID (User ID)
73
Ngociation des dialectes : PC NETWORK PROGRAM 1.0 LANMAN1.0 Windows for Workgroups 3.1a LM1.2X002 LANMAN21 NT LM 0.12
74
Authentification de lutilisateur, bas sur un bloc GSS-API ou NTLM via appel aux SSP : NTLM : Windows NT et Windows autonomes GSS-API (NTLM ou Kerberos) : partir de Windows 2000 pour les membres dun domaine
75
Connexion un partage
TREE_CONNECT_ANDX_REQUEST
TREE_CONNECT_ANDX_RESPONSE
Connexion une racine de partage : partage fichier : C$, ADMIN$, rpertoire mcanisme des canaux nomms : IPC$ Les partages possdent un descripteur de scurit
76
change classique
NT_CREATE_ANDX READ_ANDX WRITE_ANDX CLOSE_REQUEST
TREE_DISCONNECT_REQUEST TREE_DISCONNECT_RESPONSE
LOGOFF_ANDX_REQUEST LOGOFF_ANDX_RESPONSE
77
Transport de SMB
Deux transports sont disponibles : via NetBIOS (tout Windows) : NetBIOS Name Service (NBNS) : TCP/UDP 137 NetBIOS Datagram Service (NBDS) : UDP 138 NetBIOS Session Service (NBSS) : TCP 139 Services Browser et LmHosts Directement sur TCP ( partir de Windows 2000) : Directhosting : TCP 445
78
IP & SMB
Partage de fichiers
\\srv\partage\...
NetBIOS
UDP/TCP 137-138-139 TCP 445
IP (tcpip)
80
81
Partage de fichiers
\\srv\partage\...
Mailslots (msfs)
\\.\mailslot\...
NetBIOS
UDP/TCP 137-138-139 TCP 445
IP (tcpip)
83
(LPC : mcanisme noyau permettant une communication rapide entre deux processus sur une mme machine)
85
RPC
ncacn_np MS-RPC
Partage de fichiers
ncalrpc
\\srv\partage\...
Mailslots (msfs)
\\.\mailslot\...
lanmanserver (srv)
lanmanworkstation (rdr)
NetBIOS
UDP/TCP 137-138-139 TCP 445
TCP 135
IP (tcpip)
86
Protocoles rseau
ncacn_np MS-RPC
Partage de fichiers
ncalrpc
\\srv\partage\...
Mailslots (msfs)
\\.\mailslot\...
lanmanserver (srv)
lanmanworkstation (rdr)
NetBIOS
UDP/TCP 137-138-139 TCP 445
TCP 135
IP (tcpip)
88
89
90
91
92
93
95
Formes dauthentification
Deux formes dauthentification sont distinguer :
locale un systme (Interactive Authentication) distance (Noninteractive Authentication) via la mise en uvre dun protocole dauthentification
96
97
Implmentation
Les authentifications interactives sont valides par LSASS via un AP (Authentication package)
Winlogon GINA
LSASS AP msv1_0
Base sessions
Base (SAM)
98
99
Session dauthentification
Une session est compose : dun identifiant unique de session (logonID) le domaine et le nom de lutilisateur lidentifiant de scurit (SID) de lutilisateur le nom de lAuthentication Package ayant valid et cr la session le type de session (Interactive, Rseau, Service) Il est galement possible dassocier des credentials aux sessions dauthentification
Lidentifiant de session dauthentification dun processus est dfini par le champ AuthenticationId de la structure nt!_TOKEN du nt!_EPROCESS
100
AP fournis en standard
Windows dispose en standard des AP suivants : msv1_0 authentification locale (via la base SAM) authentification dans un domaine de type prWindows 2000 Kerberos ( partir de Windows 2000) authentification dans un domaine Active Directory
101
Fonctionnement de msv1_0
Pour valider un compte, le plus simple est de le comparer un mot de passe stock localement Il est prfrable de ne pas stocker les mots de passe en clair, mais une forme non rversible, par exemple un condensat (hash) Deux formes de condensats cohabitent sous Windows : condensat LM (hash LM) condensat NTLM (hash NTLM ou hash NT)
102
Gnration du hash LM
MotDeP@2sec MOTDEP@
MOTDEP@2SEC
KGS!@#$%
2SEC
DES
DES
103
Faiblesses de LM
Limit 2x7 soit 14 caractres
Alphabet rduit : Majuscules Chiffres Ponctuation 32 caractres spciaux
Utilisation du DES
104
MD4
105
NTLM
255 caractres (limit 14 par certaines IHM)
Alphabet complet, codage en Unicode Bas sur la fonction MD4
106
Comparaison LM / NTLM
LM NTLM
Apparition
Taille Alphabet
Historique
14 caractres (2x7) Restreint (OEM)
MD4
NON
107
Utilis Winlogon pour valider louverture dune session interactive, mais galement par runas ou les services daccs distants (terminal services)
Les hashs LM et NTLM sont calculs et compars ceux prsents dans la base SAM (Scurit Account Manager) et grs par le services SamSs
108
Processus identique celui de type interactive sauf que le mot de passe est rcupr dans les secrets de la LSA Lentre correspond au nom du service, prfix par _SC_
109
Implmentation
Les authentifications non interactives sont gnres et valides par LSASS via un SSP (Security Support Provider)
Programme client / serveur rseau Programme client / serveur
SSPI
LSASS
Base (SAM)
SSPI
LSASS
Base sessions
SSP msv1_0
SSP msv1_0
Base sessions
Base (SAM)
111
Contexte dauthentification
Implicite : aucun nom dutilisateur et mot de passe nest spcifi. Ce sont alors les credentials de la session dauthentification qui sont utilises (mcanisme de cache ou de SSO)
Explicite : un nom dutilisateur et un mot de passe sont spcifis lors de la phase dauthentification
112
Authentification en standard
LM/NTLM (msv1_0) et Kerberos ( partir de 2000) sont les deux AP/SSP et protocoles disponibles en standard :
Type Interactive Locale (non DC) Locale (DC) Domaine Non-interactive Authentication Package MSV1_0 Kerberos Kerberos Kerberos Negotiate Kerberos NTLM Secure Channel
113
LM / NTLM
Les protocoles LM et NTLM sont les mcanismes historiques pour authentifier les utilisateurs dans les rseaux Microsoft
Par compatibilit, lauthentification LM est toujours implmente
114
115
Serveur
Demande
LM NTLM
LM
NTLM
DS DC R
DS DC R R
Gnration de la rponse LM
MotDeP@2sec MOTDEP@
MOTDEP@2SEC
KGS!@#$%
2SEC
DES
DES
1/3 LM HASH
2/3 LM HASH
LMHASH (21 octets)
3/3 LM HASH
MD4
NTLM HASH
NTLM HASH
NTLMHASH (21 octets)
NTLM HASH
MD4
MD5 (64 sur 128 bits) soit 8 octets NTLM HASH DES DES DES NTLM HASH (16 octets)
NTLM HASH
NTLMHASH (21 octets)
NTLM HASH
Challenge client 8 octets
119
Nom utilisateur
Nom cible
HMACMD5
MD4
NTLM HASH
Blob rponse Signature (4) Rserv (4) Timestamp (8) Challenge client (8) Challenge serveur (8)
120
LM
NTLM NTLM2 NTLMv2
LM
NTLM NTLM NTLM
OUI
OUI OUI OUI
NON
NON OUI OUI
DES
DES DES HMACMD5
121
Bonnes pratiques 1
Dsactivation de la gnration du LMHash au prochain changement Paramtrage via GPO, cl de registre ou autre (cf. Q299656)
122
Bonnes pratiques 2
Ne plus utiliser le dfi/rponse LM ou NTLM pour lauthentification Prfrer NTLMv2 ou Kerberos (si possible)
Paramtrage via GPO ou cl de registre (cf. Q239869) Attention aux consquences cf. Q823659
123
Client (envoie)
LM, NTLM NTLMv2 (si ngoci) LM, NTLM NTLMv2 (si ngoci) NTLM NTLMv2 (si ngoci) NTLMv2 NTLMv2 NTLMv2
Serveur (accepte)
LM NTLM NTLMv2 LM NTLM NTLMv2 LM NTLM NTLMv2 LM NTLM NTLMv2 NTLM NTLMv2 NTLMv2
Non envoy
NTLMv2 (2000 pr SRP1, NT4) NTLMv2 LM NTLMv2 LM NTLM LM LM NTLM
124
NTLMSSP
Le protocole NTLMSSP permet de structurer les changes des protocoles LM, NTLM et NTLMv2 Le protocole dfinit trois types de message : NTLMSSP_NEGOTIATE (Client Serveur) :
dmarre une ngociation NTLMSSP_CHALLENGE (Serveur Client) : permet au serveur denvoyer son dfi NTLMSSP_AUTH (Client Serveur) : permet au client denvoyer ses rponses (champs LM et NTLM)
125
NTLMSSP
Client
NTLMSSP_NEGOTIATE
Demande NTLMSSP_AUTH Dfi (DS) Rponse (R) Rsultat
Serveur
NTLMSSP_CHALLENGE
126
Relations
Mot de passe
Condensat LM
Condensat NTLM
Dfi client
Dfi serveur
Rponse LM
Rponse NTLM
Rponse NTLM2
Rponse LMv2/NTLMv2
127
Kerberos
128
Kerberos
Windows 2000 introduit Kerberos
Kerberos est un standard du MIT Limplmentation dans Windows 2000 sinspire de la version 5, mais y ajoute des extensions
129
Kerberos
Compos de trois services : Authentication Service (AS), qui dlivre :
- un Ticket Granting Ticket (TGT) - une logon session key
Client/Server (CS)
service qui prsente les tickets dun client pour un service
130
Kerberos KRB_AS_REQ
KC KS KKDC
KC
Client
KC{date}
KDC
131
Kerberos KRB_AS_REP
KC KS KKDC SC,K
KC TGT SC,K KC{SC,K} TGT = KKDC{SC,K}
Client
KDC
132
Kerberos KRB_TGS_REQ
KC KS KKDC SC,K
KC TGT SC,K SC,K{Authentifiant} TGT = KKDC{SC,K}
Client
KDC
133
Kerberos KRB_TGS_REP
KC KS KKDC SC,K SC,S
KC TGT T SC,K SC,S SC,K{SC,S} T = KS{SC,S}
Client
KDC
134
Kerberos KRB_AP_REQ
TGT T SC,K SC,S
KS SC,S
SC,S{Authentifiant} T = KS{SC,S}
KC
Client
Serveur
135
Kerberos KRB_AP_REP
TGT T SC,K SC,S
KS SC,S
KC
Client
SC,S{date}
Serveur
136
Kerberos
1 (KRB_AS_REQ)
Client
KDC
(KRB_AP_REQ) 5 6 (KRB_AP_REP)
Serveur
137
Kerberos
Symtrique
Toutes Faible NON NON Microsoft
Symtrique
2K, XP, 2K3 leve Option OUI Extensions IETF
138
Authentification mutuelle NON (sauf v2) Dlgation supporte Support carte puce Standard
Attaques de Kerberos
Peu de faiblesses connues Les cls de sessions (SX,Y), Kkdc et Ks sont supposes tre rsistantes Le problme vient des changes AS protgs par Kc qui drive directement du mot de passe de lutilisateur : sans pr-authentification, tout le monde peut rcuprer un TGT chiffr par Kc avec la pr-authentification, une capture rseau permet de rcuprer Kc{pre-auth} sachant que pre-auth = YYYYMMDDHHMMSSZ
140
Accs anonyme
141
Accs Anonymes
Par compatibilit, il est possible de rcuprer des informations distance sans tre authentifi Fonctionnalit maintenant inutile, mais qui est toujours active dans certaines configurations de base
Dtect par MBSA
Informations accessibles
Canal nomm wkssvc (Station de travail) : NetWkstaGetInfo : nom et de la machine NetWkstaEnumUsers : utilisateurs connects Canal nomm srvsvc (Serveur) : NetShareEnumAll : partages offerts NetSessEnum : sessions en cours
Canal nomm lsaprc - alias de lsass (LSASS) : LsarOpenPolicy, LsarQueryInformationPolicy : nom de la machine, domaine et fort membre, SID associs
143
Informations accessibles
Canal nomm samr - alias de lsass (LSASS) : EnumDomains, LookupDomain, OpenDomain, QueryDomainInfo : information sur le domaine membre, politiques de scurit de LSA (mot de passe, verrouillage) EnumDomainUsers, OpenUser, QueryUserInfo, QuerySecurity, GetGroupsForUser, GetAliasMembership : information sur les utilisateurs
144
Restrictions
Restrictanonymous
lanmanworkstation (rdr) wkssvc.dll lanmanserver (srv) srvsvc.dll LSASS samsrv.dll lsasrv.dll
RestrictanonymousSam DefaultSecurity
NetrWkstaUserEnum
MS-RPC
\pipe\wkssvc \pipe\srvsvc \pipe\lsass \pipe\samr \pipe\lsass \pipe\lsaprc
\\srv\ipc$
NullSessionPipes1
UDP/TCP 137-138-139
TCP 445
IP (tcpip)
Accs anonyme
Sur Windows NT 4 SP3 et Windows 2000
HKLM\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous
0 : se baser sur les autorisations par dfaut 1 : numration des comptes et partages impossible 2 : aucun accs avec une authentification anonyme
146
Accs anonyme
partir de Windows XP, les accs anonymes sont restreints par dfaut Les droits dnumration sont dfinis par le paramtre :
Accs rseau : Ne pas autoriser lnumration anonyme des comptes et partages SAM
Paramtres supplmentaires :
Accs rseau : ne pas autoriser lnumration anonyme des comptes SAM Accs rseau : Permet la traduction de noms/SID anonymes
147
Rebond RPC
La connexion une interface RPC dun processus permet alors daccder toutes les autres interfaces RPC du processus Si un processus exporte plusieurs interfaces, il faut veiller ce quelles soient protges de manire homognes
148
149
Autorisation (Authorization)
Contraintes pour un systme de niveau C2 (Controlled Access Protection) : Secure logon facility : les utilisateurs doivent tre identifis de manire unique aprs authentification Discretionary access control : un propritaire dun objet peut dcider qui peut y accder (utilisateurs et groupes) et quelles actions sont autorises Security auditing : traabilit et imputabilit des actions, la consultation des journaux daudit tant rserve aux utilisateurs privilgis
150
151
152
Autorits
0
SECURITY_NULL_SID_AUTHORITY
0
Null SID
S-1-0-0
Null SID
1
SECURITY_WORLD_SID_AUTHORITY
0
World
S-1-1-0
localhost\Tout le monde
2
SECURITY_LOCAL_SID_AUTHORITY
0
Local
S-1-2-0
localhost\LOCAL
S-1
3
SECURITY_CREATOR_SID_AUTHORITY
Utilis dans lhritage des listes de droits
0
Creator Owner ID
S-1-3-0
CREATEUR PROPRIETAIRE
1
Creator Group ID
S-1-3-1
GROUPE CREATEUR
2
Creator Owner ID
S-1-3-2
CREATOR OWNER SERVER
3
Creator Group ID
S-1-3-3
CREATOR GROUP SERVER
153
S-1-5 SECURITY_NT_AUTHORITY
S-1-5-1 S-1-5-2 S-1-5-3 S-1-5-4 S-1-5-5-X-Y S-1-5-6 S-1-5-7 S-1-5-10 S-1-5-11 S-1-5-12 SECURITY_DIALUP_RID (Groupe) SECURITY_NETWORK_RID (Groupe) SECURITY_BATCH_RID (Groupe) SECURITY_INTERACTIVE_RID (Groupe) SECURITY_LOGON_IDS_RID SECURITY_SERVICE_RID (Groupe) SECURITY_ANONYMOUS_LOGON_RID SECURITY_PRINCIPAL_SELF_RID SECURITY_AUTHENTICATED_USER_RID (Groupe) SECURITY_RESTRICTED_CODE_RID SERVICE ANONYMOUS LOGON SELF Utilisateurs authentifis RESTRICTED LIGNE RESEAU TACHE INTERACTIF
S-1-5-13
S-1-5-14 S-1-5-18 S-1-5-32
SECURITY_TERMINAL_SERVER_RID (Groupe)
SECURITY_LOCAL_SYSTEM_RID SECURITY_BUILTIN_DOMAIN_RID
SYSTEM ou LocalSystem
S-1-5-32-544 S-1-5-32-545 S-1-5-32-546 S-1-5-32-547 BUILTIN\Administrateurs BUILTIN\Utilisateurs BUILTIN\Invits BUILTIN\Utilisateurs avec pouvoir
154
Outils - PsGetSid
psgetsid : (donne SID machine) S-1-5-21-12345678-12345678-12345678
psgetsid s-1-5-18 (SID nom) Well Known Group: AUTORITE NT\SYSTEM psgetsid administrateurs (nom SID) SID for BUILTIN\administrateurs: S-1-5-32-544
157
Privilges et droits
158
Privilges
Certaines actions (actions lies au systme, gestion des ressources) ncessitent davoir un privilge pour pouvoir les raliser Les privilges sont accords des utilisateurs et des groupes. Ils sont ajouts dans le contexte de scurit (Token) dun utilisateur lors de sa connexion Pour pouvoir raliser une action privilgie, il faut : possder le privilge dans son Token ; avoir activ le privilge. Les privilges concernent toujours des actions locales la machine
159
Privilges critiques
SeDebugPrivilege : dboguer nimporte quel processus SeBackupPrivilege : lire un ficher quels que soit les droits (utilis des fins de sauvegarde) SeCreateTokenPrivilege : crer un Token SeAssignPrimaryTokenPrivilege : remplacer le Token dun processus SeTcbPrivilege : agir en tant que partie du systme dexploitation SeTakeOwnershipPrivilege : prendre possession des fichiers et des objets avec contrle daccs SeLoadDriverPrivilege : charger et dcharger des pilotes de priphriques
160
Logon Rights
Dtermine qui peut accder au systme via les diffrentes mthodes dauthentification : Interactive Rseau Service Terminal Services Batch job Chaque mthode autorise un lot puis refuse un sous-lot
161
Token
Le noyau (SRM) utilise un objet nomm Access Token (jeton daccs) pour identifier le contexte de scurit dun processus ou dun thread Le token identifie lutilisateur et ses groupes dappartenance. Il liste galement les privilges de lutilisateur
162
Descripteur de scurit
Ces objets possdent un descripteur de scurit (security descriptor) dfinissant : le numro de version et divers attributs le SID du propritaire de lobjet le SID du groupe primaire de lobjet ventuellement des listes pour le contrle daccs : DACL (Discretionary Access Control List) : liste dfinissant les droits daccs SACL (System Access Control List) : liste dfinissant les audits gnrer lors des accs lobjet
164
Gnriques :
FILE_READ_ATTRIBUTES STANDARD_RIGHTS_EXECUTE SYNCHRONIZE FILE_READ_ATTRIBUTES FILE_READ_DATA FILE_READ_EA STANDARD_RIGHTS_READ SYNCHRONIZE FILE_APPEND_DATA FILE_WRITE_ATTRIBUTES FILE_WRITE_DATA FILE_WRITE_EA STANDARD_RIGHTS_WRITE SYNCHRONIZE
167
GENERIC_READ
GENERIC_WRITE
168
Outils
cacls (standard) icacls (Vista) subinacl (Ressource Kit) : subinacl /file c:\boot.ini subinacl /keyreg HKEY_CURRENT_USER
169
Accs a un objet
Pour dterminer si un utilisateur peut raliser une action sur un objet scuris, le systme confronte le Token du processus ou thread avec le descripteur de scurit de lobjet
Processus
Demande douverture [Masque daccs]
nt!_EPROCESS
170
Accs particuliers
Si le privilge SeTakeOwnershipPrivilege est prsent dans le Token, laccs WRITE_OWNER est donn Si le SID du propritaire de lobjet est prsent dans le Token, les accs READ_CONTROL et WRITE_DAC sont donns
171
Remarques importantes
Si un objet na pas de DACL (null DACL), tous les accs sont autoriss (contrle total) lobjet Si une DACL na pas dACE (empty DACL), aucun naccs nest autoris lobjet Si aucune ACE ne sapplique, il y a un refus implicite Lordre des ACEs est important : le rsultat (autoris, refus) est celui de la premire ACE qui sapplique partir de Windows 2000, la notion dhritage automatique et est introduite
172
Exemples
Fichier A Fichier B
Lecture
Access Token SID : Jean SID : Administrateurs SID : Tout le monde Privilges : Fichier A Jean : NON Marc : OUI Fichier B Jean : NON Marc : OUI Fichier A Propritaire : Marc DACL
ACE 1 : Utilisateurs - Accs autoris Lecture ACE 2 : Marc - Accs interdit Lecture, criture, Excution
criture
Fichier A Jean : NON Marc : NON Fichier B Jean : NON Marc : NON
Access Token SID : Marc SID : Utilisateurs SID : Tout le monde Privilges : SeTakeOwnership
WRITE_OWNER
Fichier A Jean : NON Marc : OUI Fichier B Jean : NON Marc : OUI
WRITE_DAC
Fichier A Jean : NON Marc : OUI Fichier B Jean : OUI Marc : NON
173
lvation de privilges
psexec s at
176
Access tokens
Il existe deux types de jetons de scurit : primary token : cre en rgle gnrale par le systme et assign aux processus impersonation token : permet de reprsenter un contexte de scurit diffrent (gnralement celui dun client) afin dtre assign aux threads dans le cas de limpersonation
177
Client
180
181
Protection standard
Le systme de fichiers NTFS inclut un systme de protection par droits daccs : les ACL (Access Control List)
On peut dfinir au niveau des rpertoires ou des fichiers quelles oprations peuvent raliser tels ou tels utilisateurs ou groupes La scurit daccs est gre par le noyau du systme dexploitation
182
Protection standard
Si le systme dexploitation ne gre plus les droits, nimporte quel utilisateur peut accder aux fichiers protgs
Exemple : DOS avec NTFSDOS
183
EFS
Une protection supplmentaire est de chiffrer les fichiers sur le disque dur Windows 2000 introduit EFS (Encrypted File System) permettant de chiffrer les fichiers de manire transparente sur le disque et en standard
Ne pas confondre EFS et NTFS
184
EFS
Des algorithmes de chiffrement symtriques sont utiliss : Version DESX (40 ou 128) 3DES AES
Windows 2000 Windows XP
Windows XP SP1
Chaque fichier est chiffr avec une cl symtrique unique qui est ensuite chiffre par des cls publiques : au moins une propre lutilisateur ventuellement avec celles des agents de recouvrement
185
Chiffrement
A quick brown fox jumped... File Encryption (DES) *#$fjda^j u539!3t t389E *&...
K
186
Dchiffrement
*#$fjda^j u539!3t t389E *&... File Decryption (DES) A quick brown fox jumped...
Rcupration
*#$fjda^j u539!3t t389E *&... File Decryption (DES) A quick brown fox jumped...
K
Recovery Agent's Private Key
EFS
EFS souffre encore de nombreux dfauts : transfert sur le rseau de fichiers chiffrs travail en groupe dlicat
189
Scurit de Windows
190
191
Modes DEP
OptIn (2) OptOut (3) Protection active pour les programmes du systme Par dfaut sous Windows XP (SP2) et Vista
Protection active pour tous les programmes sauf ceux lists dans les exceptions Par dfaut sous Windows 2003 (SP1) et 2008
Protection active pour tous les programmes Protection dsactive
Vista SP1 / 2008 introduisent la notion de permanence : la fonctionnalit DEP ne peut plus tre chang pendant lexcution du programme
193
Configuration de DEP
Windows XP / 2003 : dans le fichier boot.ini /noexecute=[mode DEP]
Windows Vista / 2008 : dans la base BCD BCDEdit /set nx [mode DEP] Par WMI :
wmic OS Get DataExecutionPrevention_Available wmic OS Get DataExecutionPrevention_SupportPolicy wmic OS Get DataExecutionPrevention_Drivers
194
195
0x0000
0x1000
Non approuv
Faible
S-1-16-0
S-1-16-4096
0x2000
0x3000
Moyen
Haut
S-1-16-8192
S-1-16-12288
0x4000
Systme
S-1-16-16384
Les SID servent labliser le niveau dintgrit : des processus ou threads (via le token) des objets (via le descripteur de scurit)
197
198
Anonyme
Non approuv
199
200
Algorithme
ILToken : niveau dintgrit du Token ILObject : niveau dintgrit de lobjet La restriction nest active que si le token active la politique POLICY_NO_WRITE_UP
Si { ILToken < ILObject } : WRITE refus si lACE dfinit NO_READ_UP READ refus si lACE dfinit NO_EXECUTE_UP EXECUTE refus
205
206
UAC - Principe
Quand un utilisateur membre dun groupe administratif se connecte, deux tokens sont cres : un token normal (elevated token) avec tous ses droits (SID) et privilges un token pur (filtered token) o les SID des groupes sont marqus DENY_ONLY et quelques privilges conservs Toutes les applications lances par lutilisateur utilisent le token filtr
207
UAC - lvation
Si une application ncessite des droits administratifs, lutilisateur doit consentir les utiliser En cas daccord, lapplication est leve : elle est lance avec le token normal
208
Groupes administratifs
{ Built-In, Certificate, Domain, Enterprise, Policy & Schema } Administrators { Domain, Enterprise Read-Only Domain, ReadOnly Domain } Controllers { Account, Backup, Cryptographic, Network Configuration, Network Configuration, Print & System } Operators RAS Servers Power Users Pre-Windows 2000 Compatible Access
209
Privilges standards
SeChangeNotifyPrivilege SeShutdownPrivilege SeUndockPrivilege SeIncreaseWorkingSetPrivilege SeTimeZonePrivilege
210
Virtualisation
Si une application ne dispose plus des droits du groupe Administrateurs, elle ne peut plus crire certaines parties du disque ou de la base de registre Le mcanisme de virtualisation permet dviter des problmes dincompatibilits pour danciennes applications lorsque UAC est activ Les critures sont alors rediriges
211
213
214
215