You are on page 1of 215

Scurit de Windows

AB v9 (29/10/2009)

Histoire du DOS
1981 1982
MS-DOS 1.24 06/1982 PC-DOS 1.00 12/08/1981

1983 1984 1985 1986 1987


MS-DOS 2.01 05/ 1983 MS-DOS 3.05 11/1984

PC-DOS 2.0 03/1983

PC-DOS 3.0 08/1984 Windows 1.0 20/11/1985

MS-DOS 3.3 08/1987

PC-DOS 3.30 04/1987

Windows 2.0 Windows /386 2.0 09/12/1987

MS OS/2 1.0 (CP/DOS) 02/04/1987


2

Histoire de Windows
1988 1989 1990
Windows 3.0 22/05/1990

PC-DOS 4.0 08/1988

MS-DOS 4.01 11/1988

OS/2 1.1 SE 31/10/1988

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

Windows for Workgroups 3.1 27/10/1992

OS/2 2.0 03/1992

Windows NT 3.1 27/071993

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

OS/2 Warp 4.0 09/1996

Windows NT 4.0 24/08/1996

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

2001 2002 2003 2004

Windows Server 2003 24/04/2003

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

Windows Server 2008 R2 22/07/2009

Familles des Windows


Deux grandes familles : Famille historique (base sur MS-DOS) : Windows 95, 98, Me Famille NT (New Technology): Windows NT, 2000, XP 2003 / 2003R2, Vista, 2008 / 2008R2, 7
7

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

Architecture gnrale du systme

12

Espace utilisateur
Processus systmes
Session manager
smss.exe

Services
service control manager
(SCM) - services.exe

Processus utilisateur
Initialiseur de session
userinit.exe

Shell graphique Windows subsystem


csrss.exe explorer.exe

svchost.exe svchost.exe

Logon process
winlogon.exe

svchost.exe spoolsv.exe inetinfo.exe

Application
word.exe

Application
firefox.exe

Local Security Authority


(LSA) - lsass.exe

Application
iexplore.exe

kernel32.dll, advapi32.dll, user32.dll, gdi32.dll


ntdll.dll

13

Espace utilisateur (Vista+)


Processus systmes
Session manager
smss.exe

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

service control manager


(SCM) - services.exe

Initialiseur de session Windows initialization process - wininit.exe


userinit.exe

svchost.exe svchost.exe

Shell graphique
explorer.exe

Local Security Authority


(LSA) - lsass.exe

svchost.exe Application spoolsv.exe inetinfo.exe


iexplore.exe

Local Session Manager


lsm.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

Composants lis la scurit


Logon process
winlogon.exe Graphical Identification and Authentication (GINA) Notification Packages

Local Security Authority


(LSA) - lsass.exe

SSP / AP
msv1_0 (NTLM) Kerberos Negociate Channel Digest SSP

SamSs Netlogon ProtectedStorage PolicyAgent (IPsec)

SAM Database HKLM\SAM

service control manager


(SCM) - services.exe

PlugPlay

LSASS Policy Database HKLM\SECURITY

EventLog

Journaux dvnements Application (AppEvent.evt) Security (SecEvent.evt) System (SysEvent.evt)

ipsec.sys

ksecdd.sys Kernel Security Support Provider Interface

SRM (Security Reference monitor)

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

Base SAM : HKLM\SAM


%SYSTEMROOT%\System32\config\SAM

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

Types de mise jour dans Windows


Update ou Security Update : disponible via Windows Update ou le centre de tlchargement. Compos de security fixes ou de rollup packages largement tests Branche GDR (General Distribution Release) Hotfixe : correction dun problme spcifique. Disponible au cas par cas et peu test Branche LDR (Limited Distribution Release)
anciennement dnomme QFE (Quick Fix Engineering)

23

Types de mise jour dans Windows


Service Pack (SP) : mise jour majeure dun systme. Contient des amliorations et ajouts ainsi que tous les correctifs des branches GDR et LDR Largement test et disponible via Windows Update ou le centre de tlchargement

24

Dure de vie des produits Microsoft


support.microsoft.com/?pr=lifecycle
Phase principale : support lincident, mises jour de scurit, hotfixes non relatifs la scurit Phase dextension : support payant, mises jour de scurit, hotfixes non relatifs la scurit (payants via contrat), plus de changements de code ou de nouvelles fonctionnalits

25

Quelques dates
Produit commercialis
Windows NT Workstation 4.0

Date de disponibilit gnrale


29/07/1999

Date de fin de la phase principale de support


30/06/2002

Date de fin de la phase d'extension de support


30/06/2004

Windows 98 Deuxime dition


Windows 2000 Professionnel Windows XP Professional Office 2000 Office XP Internet Explorer 5.5 / 6.0 SQL Server 2000

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

11/07/2006 cf. remarque sur site


13/07/2010 08/04/2014 14/07/2009 12/07/2011 Politique des Service Packs 09/04/2013

26

Particularit des Service Packs


support.microsoft.com/gp/sp
Ensemble de mises jour (correctifs de scurit et ajout de fonctionnalits) Dtails sur la dure de vie du support : support.microsoft.com/gp/lifesupsps

27

Outils lis la mise jour Dploiement


Microsoft Update Postes isols et connects Internet WSUS (Windows Server Update Services) Slection des mises jour Gnration de rapports SMS Server (Systems Management Server) Inventaire des parcs informatiques Produit payant
28

Outils lis la mise jour Dtection


MBSA : Q895660 Version 1.2.1 (Arrt depuis le 31/03/2006) Windows 2000, XP et 2003 IIS (4.0-6.0), Office (2000-2003), SQL Server (7.02000), Exchange (5.0-2003) Version 2.1 Windows 2000 SP3, XP, 2003, Vista, 2008 Office (XP-2007), Exchange (2000-2003),SQL Serveur (2000 SP4-2005) Compatible avec Microsoft Update (MU), Windows Server Update Services (WSUS), SMS Server
29

La base de registre

30

Base de registre Cls racines (root keys)


HKEY_LOCAL_MACHINE (HKLM) Configuration de la machine et des composants du systme. Uniquement modifiable par le systme et les Administrateurs. 5 sous cls : HARDWARE, SAM, SECURITY, SOFTWARE, SYSTEM HKEY_USERS (HKU) Chaque utilisateur y dispose dune entre (cl) permettant dy stocker ses paramtres personnels HKEY_PERFORMANCE_DATA (HKPD) journaux de performances

31

Base de registre Cls racines et alias


HKEY_LOCAL_MACHINE (HKLM) HKEY_USERS (HKU) HKEY_PERFORMANCE_DATA (HKPD) HKEY_CURRENT_USER (HKCU) configuration de lutilisateur courant (logu) HKU\<SID utilisateur courant> HKEY_CLASSES_ROOT (HKCR) configuration des objets COM et des associations de fichiers HKLM\SOFTWARE\Classes HKEY_CURRENT_CONFIG (HKCC) configuration et profil du matriel HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current

32

Base de registre Fichiers de stockages HKLM


HKEY_LOCAL_MACHINE\HARDWARE Dynamique HKEY_LOCAL_MACHINE\SAM %SYSTEMROOT%\System32\Config\Sam HKEY_LOCAL_MACHINE\SECURITY %SYSTEMROOT%\System32\Config\Security paramtres de la politique de scurit locale, domaines approuvs, secret didentification des comptes de service HKEY_LOCAL_MACHINE\SOFTWARE %SYSTEMROOT%\System32\Config\Software HKEY_LOCAL_MACHINE\SYSTEM %SYSTEMROOT%\System32\Config\System
33

Base de registre Fichiers de stockage


HKEY_USERS\<SID> \Documents and Settings\<nom>\Ntuser.dat HKEY_USERS\<SID>_Classes \Documents and Settings\<nom>\Local Settings\
Application Data\Microsoft\Windows\Usrclass.dat

34

Base de registre Type de donnes des valeurs


REG_DWORD REG_SZ REG_BINARY
REG_EXPAND_SZ REG_MULTI_SZ Ne pas confondre cls (rpertoires) et valeurs (fichiers)
35

Base de registre
www.winguides.com Q256986

36

Gestion graphique

37

Stations et bureaux (Window station & desktop)


Une station (workstation) est un objet noyau associ chaque processus et contenant : un presse-papier une table datom un ou plusieurs bureaux Un bureau (desktop) est un objet noyau associ chaque thread et disposant dune surface daffichage contenant les objets graphiques

38

Nommage des espaces graphiques


Kernel Object Manager : \sessions \0
\WinSta0
\Service0x0-3e7$
\Default

\1
\WinSta0

\Default
\Service0x0-3e4$

\Default
\Default

\Disconnect \Winlogon

\Disconnect \Winlogon

\Service0x0-3e5$
\Default

39

Stations et bureaux par dfaut


: station (unique) connecte lcran et recevant les entres clavier/souris : station rserve aux services (a-b reprsente le logonID du compte associ) : bureau par dfaut de lutilisateur connect : bureau utilis pour le verrouillage cran : bureau utilis pour la squence dauthentification scurise (SAS)
40

Scurit de Windows

Services Windows et pilotes

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

SCM (Service Control Manager)


Cest le SCM (Service Control Manager) qui est charg de la gestion des services : gestion de la base des services installs : ajout/suppression/configuration des services verrouillage de la base dmarrage (automatique/manuel) et arrt des services gestion de lexcution des services (liste des services actifs, )
43

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

Base des services


ServicesActive database ou SCM database Situe dans la base de registre : HKLM\SYSTEM\CurrentControlSet\Services Il ne faut jamais la modifier directement, mais passer par les API du SCM (ou par des outils)

46

Comptes excutant les services


Chaque service applicatif sexcute dans le contexte de scurit dun compte utilisateur Il est possible de spcifier nimporte quel compte ou dutiliser un compte prdfini : LocalSystem (avec optionnellement la possibilit dinteragir avec le bureau) LocalService ( partir de XP) NetworkService ( partir de XP)

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

NetworkService (NT AUTHORITY\NETWORK SERVICE)


Compte restreint disponible partir de XP Utilise le profil HKEY_USERS\S-1-5-20 Sauthentifie avec le compte de lordinateur lors des authentifications distantes Peu de privilges : AUDIT, CHANGE_NOTIFY, UNDOCK Ceux de Utilisateurs et Utilisateurs authentifis

49

LocalService (NT AUTHORITY\LOCALSERVICE)


Compte restreint disponible partir de XP Utilise HKEY_USERS\S-1-5-19 Ne peut pas sauthentifier distance (contexte NULL soit anonyme) Peu de privilges : AUDIT, CHANGE_NOTIFY, UNDOCK Ceux de Utilisateurs et Utilisateurs authentifis

50

Service Host Process (svchost.exe)


Cest un hbergeur de services pour ceux implments dans une librairie (DLL) Plusieurs instances peuvent tourner simultanment
Liste des groupes de services :
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

DLL dexcution :
HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters (ServiceDll)

51

Gestion des comptes Domaine NT & Active Directory

52

Gestion des comptes


Les comptes locaux des utilisateurs sont stocks dans la base nomme SAM (Security Account Manager)
Il existe galement la notion de groupe utilisateurs

Les droits (ACL et privilges) sont attribus aux utilisateurs et aux groupes

53

Gestion des comptes SAM


Administrateurs

Autorisation de grer tout le systme

Administrateur Dupont Martin


Utilisateurs

Simple utilisation de la machine

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

Machine membre du domaine

BDC

PDC

Machine membre du domaine

BDC

Machine membre du domaine

BDC

Machine membre du domaine

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

Approbation entre domaines NT


n(n-1) relations !!
Domaine 1

Domaine 2

Domaine 4 Domaine 3

59

Nouveauts de Windows 2000


Windows 2000 introduit de nombreuses nouveauts : organisation des domaines, scurit, administration
2 ditions : Professional Server, Advanced server, Datacenter server Windows 2000 se veut plus orient vers la scurit et les standards
60

Domaine Windows 2000


Le nommage des domaines est maintenant proche de celui dInternet Il existe toujours une compatibilit avec lancien systme (nom NetBios)
Ex : demo.net (DEMO) Lannuaire qui stocke les comptes et dautres ressources est lActive Directory
61

Domaine Windows 2000


Il nexiste plus la notion de PDC/BDC. Chaque serveur qui gre lActive Directory sappelle un DC (Domain Controller)
Nommage des domaines identiques ceux des domaines dInternet (DNS)

62

Domaine Windows 2000

DC

Machine membre du domaine

Machine membre du domaine

Domaine demo.net (DEMO)


DC

DC

Machine membre du domaine

Machine membre du domaine

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

Domaine Windows 2000

Domaine demo.net (DEMO)

Analyse

Relations

Production

Fr

Int.

65

Domaines Windows 2000


Les relations dapprobations sont modifies : elles sont maintenant transitives et bidirectionnelles Deux domaines dans un mme nommage font partis dun mme arbre
Deux arbres peuvent appartenir une fort commune

66

Domaines Windows 2000


production.com demo.net
pays.production.com

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

SMB/CIFS (avec NetBios / NbT) RPC LDAP Kerberos

uPNP SNMP Multicast QoS


Bluetooth IrDA

DNS DHCP NTP

WinHTTP

71

Historique et contexte de SMB


Protocole trs ancien permettant le partage de fichiers De nombreuses implmentations existent, mais celle de Microsoft est la plus utilise

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)

Rserv PID (Process ID) MID (Multiplex ID)

73

changes classiques Phase 1


NEGOTIATE_PROTOCOL_REQUEST NEGOTIATE_PROTOCOL_RESPONSE

Ngociation des dialectes : PC NETWORK PROGRAM 1.0 LANMAN1.0 Windows for Workgroups 3.1a LM1.2X002 LANMAN21 NT LM 0.12
74

SESSION_SETUP_ANDX_REQUEST SESSION_SETUP_ANDX_RESPONSE SESSION_SETUP_ANDX_REQUEST SESSION_SETUP_ANDX_RESPONSE

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

Partage de fichiers Format du nommage des partages


\\ Machine \ Partage \ Chemin \ vers \ fichier
Machine : nom de la machine : . : machine locale Nom NetBios Adresse IP ou FQDN Partage : nom du partage C$, ADMIN$ , rpertoire IPC$
79

IP & SMB

Partage de fichiers
\\srv\partage\...

lanmanserver (srv) lanmanworkstation (rdr)

SMB / CIFS (netbt)

NetBIOS
UDP/TCP 137-138-139 TCP 445

IP (tcpip)
80

Communications IPC Mailslots


Permet une communication asynchrone entre deux machines via lenvoi de message La taille des messages est limite : 424 octets Possibilit de diffuser les message tous les membres dun domaine ou dun rseau
Nom de partage SMB : \\.\mailslot\[path\]name (insensible la case)

81

Communications IPC Pipes


Deux types de canaux : anonymes : permet une communication entre deux processus sur une mme machine nomms (named pipe) : permet une communication entre processus sur deux machines diffrentes nom de partage SMB : (insensible la case) \\ServerName\pipe\PipeName IPC$ est le nom du partage SMB le canal nomm possde un descripteur de scurit Utilisation dalias :
HKLM\SYSTEM\CurrentControlSet\Services\Npfs\Aliases
82

Mailslots et Named Pipes

Partage de fichiers
\\srv\partage\...

Mailslots (msfs)
\\.\mailslot\...

Canaux nomms (npfs)


\\.\pipe\... \\srv\ipc$\...

lanmanserver (srv) lanmanworkstation (rdr)

SMB / CIFS (netbt)

NetBIOS
UDP/TCP 137-138-139 TCP 445

IP (tcpip)
83

Remote Procedure Call (RPC)


Mcanisme de gestion dun modle client/serveur rparti : fonctions exportes par un serveur et appeles par un client La gestion des communications rseau est gre par le systme dexploitation Chaque interface RPC est identifie par : un UUID (Universal Unique Identifier) un numro de version Les fonctions sont ensuite identifies par un numro dopcode
84

Principaux protocoles rseau RPC


ncacn_ip_tcp : protocole TCP ncadg_ip_udp : protocole UDP ncacn_np : canal nomm ncacn_http : HTTP via IIS ncalrpc : Local Inter-Process Communication

(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\...

Canaux nomms (npfs)


\\.\pipe\... \\srv\ipc$\...

lanmanserver (srv)

ncacn_ip_tcp ncadg_ip_udp RPCSS


Non dtermin

lanmanworkstation (rdr)

SMB / CIFS (netbt)

NetBIOS
UDP/TCP 137-138-139 TCP 445

TCP 135

IP (tcpip)
86

Services RPC Microsoft


Beaucoup de fonctions du systme sont exportes via RPC, gnralement via un canal nomm (\pipe\x) : atsvc : planificateur de tches browser : explorateur dordinateur (browser) epmapper : service rpcss eventlog : journal des journaux lsarpc : politique LSA ntsvcs : service plug and play (plugplay sous Vista) samr : base SAM spoolss : imprimantes partages srvsvc : service serveur svcctl : gestionnaire de services (SCM) winreg : base de registres wkssvc : service client (workstation)
87

Protocoles rseau
ncacn_np MS-RPC

Partage de fichiers
ncalrpc
\\srv\partage\...

Mailslots (msfs)
\\.\mailslot\...

Canaux nomms (npfs)


\\.\pipe\... \\srv\ipc$\...

lanmanserver (srv)

ncacn_ip_tcp ncadg_ip_udp RPCSS


Non dtermin

lanmanworkstation (rdr)

SMB / CIFS (netbt)

NetBIOS
UDP/TCP 137-138-139 TCP 445

TCP 135

IP (tcpip)
88

89

Script WMI pour dsactiver NetBios/TCP sur toutes les interfaces


Option Explicit On Error Resume Next Dim objWMIService Dim objNetAdapter Dim strComputer Dim colNetAdapters
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each objNetAdapter in colNetAdapters objNetAdapter.SetTcpipNetbios(2) ' 2 = Disable Netbios Next

90

Group Policy Object (GPO)

91

Politiques de groupes : GPO


Dans un rseau, il est difficile de maintenir une configuration homogne des postes Politique de scurit Composants systmes Logiciels
Windows 2000 introduit les Group Policy (GPO)

92

Politiques de groupes : GPO


Un GPO est un ensemble de paramtres : Ordinateur : logiciels, scripts, imprimantes, gestion des sessions, rseaux, composants Windows, Utilisateur : logiciels, scripts,
Possibilit dtendre les paramtres via des Modles dAdministration

93

Priorit des GPO


Ordre dapplication des GPO : Local Site Domaine OU (Pres) OU Nouvel utilitaire de gestion : GPMC www.microsoft.com/windowsserver2003/gpmc/
94

Authentification LM / NTLM / NTLMv2 Kerberos

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

Authentification locale (Interactive Authentication)


Permet de valider les demandes dauthentification locale la machine Cadre dutilisation : authentification des utilisateurs authentification des comptes de services cration de la session dauthentification de la machine

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

Session dauthentification (logon session)


Pour chaque entit qui sauthentifie localement, une session dauthentification est cre. Elle reprsente un contexte dauthentification associ aux processus ou aux threads chaque processus (et ventuellement thread) est associ une session dauthentification

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

LM HASH (2*8 = 16)

103

Faiblesses de LM
Limit 2x7 soit 14 caractres
Alphabet rduit : Majuscules Chiffres Ponctuation 32 caractres spciaux

Utilisation du DES
104

Gnration du hash NTLM


MotDeP@2sec

MD4

NTLM HASH (16 octets)

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)

Windows NT4 SP3


255 caractres Large (Unicode)

Algorithme de calcul DES


Graine (salted) NON

MD4
NON

107

Processus de validation dune authentification locale interactive par msv1_0 (LogonType=2)

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 de validation dune authentification de service par msv1_0 (LogonType=5)

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

Authentification distante (Noninteractive Authentication)


Permet de sauthentifier distance via lutilisation dun protocole dauthentification Plusieurs formes possibles : clair dfi / rponse formes avances (drivation, )
Gnralement, on utilise un protocole permettant de ne pas dvoiler en clair ses authentifiants
110

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

Security Support Provider

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

Protocoles dauthentification LM/NTLM


Plusieurs volutions des protocoles sont disponibles : Protocole historique, bas sur le condensat LM : LM Nouveaux protocoles, bass sur le condensat NTLM : NTLM NTLM2 NTLMv2

115

Schma gnral du dfi / rponse (exemple avec LM/NTLM)


Client
Mot de passe

Serveur
Demande
LM NTLM

LM

NTLM

DS DC R

Dfi (DS) Rponse (R) Rsultat

DS DC R R

DS : dfi serveur DC : dfi client

R : rponse client R : rponse calcule


116

Gnration de la rponse LM
MotDeP@2sec MOTDEP@
MOTDEP@2SEC

KGS!@#$%

Challenge serveur 8 octets


DES DES DES

2SEC

DES

DES

1/3 LM HASH

LM HASH (2*8 = 16)

2/3 LM HASH
LMHASH (21 octets)

3/3 LM HASH

LM RESPONSE (24 octets)


117

Gnration de la rponse NTLM


MotDeP@2sec

Challenge serveur 8 octets


DES DES DES

MD4

NTLM HASH

NTLM HASH (16 octets)

NTLM HASH
NTLMHASH (21 octets)

NTLM HASH

NTLM RESPONSE (24 octets)


118

Gnration de la rponse NTLM2


MotDeP@2sec

Challenge serveur 8 octets

Challenge client 8 octets

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

NTLM RESPONSE (24 octets)

Gnration de la rponse NTLMv2


MotDeP@2sec

Nom utilisateur

Nom cible
HMACMD5

MD4

NTLM HASH

Blob rponse Signature (4) Rserv (4) Timestamp (8) Challenge client (8) Challenge serveur (8)

NTLMv2 HASH HMACMD5

NTLM RESPONSE (16)

120

Comparaison des protocoles


Protocole Condensat Utilis Dfi serveur Dfi client Calcul rponse

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

Choix des protocoles


La cl de registre suivante permet dactiver ou de refuser les protocoles LM, NTLM, NTLMv2 :
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel Niveau
0 1 2 3 4 5

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

Ticket-Granting Service (TGS), qui dlivre :


- un service ticket - une service 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

2 (KRB_AS_REP) TGT 3 (KRB_TGS_REQ) 4 (KRB_TGS_REP ) T

KDC

(KRB_AP_REQ) 5 6 (KRB_AP_REP)

Serveur

137

Comparaison NTLM / Kerberos


LM/NTLM
Type de crypto
Plateformes Microsoft Monte en charge

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

Utilisation de Kerberos dans W2K


Lutilisation est compltement transparente pour lutilisateur Les logiciels doivent utiliser le SSP Kerberos Les services clients en standard sont : CIFS/SMB - DFS LDAP IPsec / QoS Web via IE / IIS 5 RPC
139

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

Paramtrage via GPO ou cl de registre (Q246261)


142

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

Canaux nomms (npfs)

\\srv\ipc$

NullSessionPipes1

SMB / CIFS (netbt)


NullSessionShares2
NetBIOS

UDP/TCP 137-138-139

TCP 445

IP (tcpip)

Certains pipes sont implicites 2 IPC$ toujours implicite


145

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

Modle de scurit de Windows NT

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

Les SIDs (Security IDentifier)

151

SID (Security IDentifier)


Format : S-R-I-S-S-
R : rvision (actuellement toujours 1) I : identifiant de lautorit mettrice (48 bits) S : identifiant dune sous-autorit ou RID (32 bits) S : identifiant dune sous-autorit ou RID (32 bits)

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)

UTILISATEUR TERMINAL SERVER


REMOTE INTERACTIVE LOGON

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

SID introduits avec Vista


MIC (Mandatory Integrity Control) : S-1-16 : SECURITY_MANDATORY Untrusted (0000) : S-1-16-0 Low (1000) : S-1-16-4096 Medium (2000) : S-1-16-8192 High (3000) : S-1-16-12288 System (4000) : S-1-16-16384 SID par services : S-1-80
155

SID comptes locaux


linstallation, un SID est affect la machine
Les SID des comptes locaux sont composs : du SID de la machine dun RID diffrent pour chaque compte S-1-5-21-X-Y-Z-500 : Machine\Administrateur Les SID des comptes du domaine sont composs : du SID du domaine dun RID diffrent pour chaque compte
156

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

Contrle daccs des Objets scuriss


De nombreux objets dans le systme sont des objets scuriss (securable object) : Fichiers et rpertoires dun systme NTFS Named pipes, Anonymous pipes, Mailslots Processus et threads File-mapping Cls de registre Partages rseaux Imprimantes Objets de synchronisation (events, mutexes, smaphores, timers) Objets de lActive Directory Objets du noyau (Tokens)
163

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

Listes ACL (DACL et SACL)


Chaque ACL est constitue dACEs (Access Control Entries) compose : dun SID auquel lentre (lACE) sapplique. Ce SID reprsente un utilisateur, un groupe ou une session (logon session) des droits daccs le type de lACE : Access-denied ACE (DACL) Access-allowed ACE (DACL) System-audit ACE (SACL)
165

Droits daccs un objet


Standards (communs tous les types dobjets) : WRITE_OWNER : permet de changer le propritaire de lobjet READ_CONTROL : lire la DACL WRITE_DAC : modifier la DACL DELETE SYNCHRONIZE Spcifiques (diffrents pour chaque type dobjets) : FILE_WRITE_ATTRIBUTES KEY_CREATE_SUB_KEY TOKEN_ADJUST_PRIVILEGES Gnriques : READ, WRITE, EXECUTE, ALL
166

Exemple de droits pour les objets de type fichiers et rpertoires


Spcifiques : FILE_ADD_FILE FILE_APPEND_DATA FILE_EXECUTE FILE_READ_DATA FILE_WRITE_ATTRIBUTES
FILE_ADD_SUBDIRECTORY FILE_CREATE_PIPE_INSTANCE FILE_LIST_DIRECTORY FILE_READ_EA FILE_WRITE_DATA GENERIC_EXECUTE FILE_ALL_ACCESS FILE_DELETE_CHILD FILE_READ_ATTRIBUTES FILE_TRAVERSE FILE_WRITE_EA

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

Exemple de droits pour les objets de type processus


Spcifiques : PROCESS_CREATE_PROCESS PROCESS_DUP_HANDLE PROCESS_QUERY_LIMITED_INFORMATION PROCESS_SET_QUOTA PROCESS_TERMINATE PROCESS_VM_READ PROCESS_CREATE_THREAD PROCESS_QUERY_INFORMATION PROCESS_SET_INFORMATION PROCESS_SUSPEND_RESUME PROCESS_VM_OPERATION PROCESS_VM_WRITE

Si le privilge SeDebugPrivilege est activ, tous les droits sont accords

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]

Objet Descripteur de scurit SID propritaire DACL


ACE : Type / SID / Masque daccs ACE : Type / SID / Masque daccs ACE : Type / SID / Masque daccs

nt!_EPROCESS

Token SID SID SID

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

Fichier B Propritaire : Jean DACL


ACE 1 : Jean - Accs interdit Lecture, criture, Excution ACE 2 : Administrateurs - Accs autoris Lecture, criture, Excution ACE 3 : Tout le monde - Accs autoris Lecture

WRITE_DAC
Fichier A Jean : NON Marc : OUI Fichier B Jean : OUI Marc : NON

173

Descente de droits et privilges


tre membre du groupe Administrateurs donne des droits trs importants : criture dans les rpertoires Windows et Programs Files criture dans la partie HKLM de la base de registre lecture des profils de tous les utilisateurs Ainsi que les privilges critiques (cf. planche) Il est donc dangereux dtre identifi sous un compte membres du groupe Administrateurs (cest--dire avoir le SID Administrateurs dans le Token) : violation de lintgrit du systme chargement de drivers
174

Descente de droits et privilges


Une bonne pratique est de se connecter en tant que simple utilisateur et dutiliser la commande RunAs pour effecteur les oprations privilgies Si lutilisateur est membre du groupe Administrateur, il est possible de descendre ses droits et privilge en utilisant : la commande RunAs pour changer dutilisateur la fonction Protger mon ordinateur et mes donnes des programmes tels que PsExec l ou DropMyRights
175

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

Primary token Fonctionnement usuel


Le Primary Token est cr par : l'authentification dun utilisateur (LogonUser) la restriction dun Token existant (CreateRestrictedToken) Ce Token est ensuite assign un nouveau processus (CreateProcessAsUser), opration qui ncessite le privilge SeAssignPrimaryTokenPrivilege (sauf dans le cadre dun jeton de type restreint) Par dfaut, chaque processus fils cr hrite dune copie du Token de son pre
178

Changement didentit (Client Impersonation)


Un thread peut changer son contexte de scurit (Token) ce qui permet : de modifier son contexte ou ses droits dans affecter ceux du processus de prendre une autre identit Ce mcanisme est principalement utilis par les services de type serveur pour emprunter lidentit des clients : les accs aux objets scuriss sont alors effectus dans le contexte du client distant
179

Fonctionnement usuel de limpersonation


Serveur (LocalSystem) Traitement connexion ImpersonateClient Thread (Client) Accs lobjet RevertToSelf DACL Objet

Connexion & Authentification

Client

180

Encrypted File System (EFS)

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 *&...

User's Public Key

Data Decryption Field Generation (RSA)


Random Number Generator

Data Decryption Field

Data Recovery Field Generation (RSA)


Recovery Public Key

Data Recovery Field

Randomly Generated File Encryption Key

K
186

Dchiffrement
*#$fjda^j u539!3t t389E *&... File Decryption (DES) A quick brown fox jumped...

File Encryption Key

User's Priv ate Key

Data Decryption Field Extraction (RSA)


Data Decryption Field
187

Rcupration
*#$fjda^j u539!3t t389E *&... File Decryption (DES) A quick brown fox jumped...

K
Recovery Agent's Private Key

File Encryption Key

Data Recovery Field Extraction (RSA)


Data Recovery Field
188

EFS
EFS souffre encore de nombreux dfauts : transfert sur le rseau de fichiers chiffrs travail en groupe dlicat

189

Scurit de Windows

Nouveaux mcanismes lis la scurit

190

Nouveaux mcanismes lis la scurit


Compilateur : Systme : /GS Safe Exception Handlers (SAFESEH) /SafeSEH SEHOP /NXCompat DEP /DynamicBase ASLR Applications : UAC Virtualisation dInternet Windows Integrity Mechanism Explorer 7 User Interface Privilege Isolation (UIPI) Isolation des services Protection du Tas (Heap) Kernel Patch Protection (PatchGuard)

191

Data Execution Prevention (DEP)


Introduit avec Windows XP SP2 / 2003 SP1 Est bas sur les fonctionnalits des processeurs : No Execute (NX) dAMD Execute Disable Bit (XD) dIntel Le mode PAE (Physical Address Extension) du processeur doit tre activ Le 64me bit des tables des pages PTE (Page Table Entry) est utilis pour marquer les pages mmoires comme non excutables
192

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

AlwaysOn (1) AlwaysOff (0)

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

Address Space Layout Randomization (ASLR)


Introduit avec Windows Vista / 2008 Permet de rendre alatoire la position en mmoire : des modules (EXE et DLL) des tas (heaps) des piles (stacks)

195

Windows Integrity Mechanism


Mcanisme de scurit de type mandataire bas sur des niveaux (qualifis niveaux dintgrit) Vient en complment de la scurit discrtionnaire du systme Implment partir de Windows Vista et ne peut pas tre dsactiv
Principe : chaque objet et processus dispose dun niveau de scurit (implicite ou explicite) ainsi que dune politique associe au niveau
196

Niveaux dintgrit prdfinis


Valeur Nom SID

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

Niveau dintgrit des processus


Chaque processus possde obligatoirement un niveau dintgrit Le niveau est dfini dans le token sous la forme dun SID rajout dans la liste UserAndGroups
Le systme fixe le niveau dintgrit en fonction de la prsence de certains SID dans le token

198

Niveau dintgrit des processus


SID dans le token LocalSystem LocalService NetworkService Administrateurs Oprateurs de sauvegarde Oprateurs de configuration rseau Oprateurs de chiffrement Utilisateurs authentifis Tout le monde Niveau dintgrit assign Systme Systme Systme Haut Haut Haut Haut Moyen Faible

Anonyme

Non approuv

199

Niveau dintgrit des objets


Chaque objet scuris peut possder un niveau dintgrit (sauf les processus, threads, token et job o un niveau dintgrit est systmatiquement assign leur cration) Le niveau est dfini dans le descripteur de scurit sous la forme dune ACE rajout dans la SACL Si lobjet na pas de niveau explicite, le niveau implicite moyen est assign

200

Politiques sur les tokens


Chaque token peut mettre en uvre les politiques : TOKEN_MANDATORY_POLICY_NO_WRITE_UP : le processus ne peut pas crite dans un objet dont le niveau dintgrit est suprieur TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN : le niveau dintgrit dun processus fils sera le minimum entre : le niveau dintgrit de ce processus (le pre) le niveau dintgrit du programme (i.e. de lobjet de type fichier sur le disque)
201

Politiques sur les objets


Chaque descripteur de scurit dun objet peut dfinir les politiques daccs NO_WRITE_UP, NO_READ_UP ou NO_EXECUTE_UP lobjet Si un objet ne dfinit pas de politique explicite, une politique implicite est applique : NO_WRITE_UP & NO_READ_UP pour les processus et threads NO_WRITE_UP pour tous les autres objets Ces politiques ne sappliquent que dans le cas o un processus de niveau infrieur souhaite accder lobjet
202

Restrictions sur les privilges


Les privilges les plus critiques ne sont accords quaux processus ayant au minimum le niveau lev : SE_CREATE_TOKEN_PRIVILEGE SE_TCB_PRIVILEGE SE_TAKE_OWNERSHIP_PRIVILEGE SE_BACKUP_PRIVILEGE SE_RESTORE_PRIVILEGE SE_DEBUG_PRIVILEGE SE_IMPERSONATE_PRIVILEGE SE_RELABEL_PRIVILEGE SE_LOAD_DRIVER_PRIVILEGE
203

Changer le niveau dintgrit dun objet


Descendre : ncessite le droit WRITE_OWNER
ne peut tre fix qu une valeur infrieure ou gale au niveau dintgrit du token ralisant laction Augmenter : Le privilge SE_RELABEL_NAME (par dfaut accord aucun utilisateur) permet de fixer de niveau dintgrit dun objet un niveau suprieur celui du token ralisant laction
204

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

User Account Control (UAC)


UAC permet de restreindre les droits et privilges des administrateurs afin de leur permettre deffectuer leur tche courante en tant quutilisateur standard

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

Virtualisation des fichiers


Les fichiers crs ou modifis dans les rpertoires suivants : \Program Files \Windows \Windows\System32 sont redirigs dans le profil de lutilisateur (%LocalAppData%\VirtualStore) Les fichiers excutables ne sont jamais virtualiss
212

Virtualisation de la base de registre


Les clefs de registre cres ou modifies dans la ruche HKLM\Software sont rediriges dans la partie utilisateur de la base (HKCU\Software\Classes\VirtualStore) Le drapeau REG_ KEY_DONT_VIRTUALIZE permet de dfinir des exceptions

213

Isolation des services Sessions dans Windows XP et 2003

214

Isolation des services Sessions dans Windows Vista et 2008

215

You might also like