Lsass.exe – Processi di Windows

Lsass.exe corrisponde a Local Security Authority Subsystem Service, si tratta del processo che si occupa di autenticare gli utenti e autorizzare l’accesso alle risorse.
Quando un utente si autentica il sistema operativo crea un access token che contiene il SID (security identifier) dell’account dell’utente e dei gruppi di cui è membro.

Gli account utente non sono l’unico tipo di account disponibile in Windows.
Possiamo distinguere tre tipi di account chiamati security principal a cui possono essere associati i processi
-Account Utente
-Account Gruppo
-Account Computer
L’access token viene associato a ogni processo creato dall’utente
Quando un processo creato dall’utente deve accedere a un oggetto il sistema confronta i SID del token con quelli delle ACL dell’oggetto e se questi corrispondono viene permesso l’accesso.

Il processo di access control inizia con l’autenticazione dell’account.
Quando un utente si logga inserisce nome utente e password che vengono passati a LSASS.
Se le credenziali sono valide LSASS crea un access token che rimane valido per tutta la sessione dell’utente e viene utilizzato per l’accesso alle risorse.

Il token contiene la lista di tutti i SID associati all’utente inclussi quelli dei gruppi di cui è membro.
Quando un utente tenta di accedere a una risorsa Windows confronta il token con le acl impostate sulla risorsa che specificano quali SID possono accedere e che tipo di accesso hanno.

In Windows i security principals (gli account degli utenti e dei gruppi) sono identificati da un numero a 48 bit chiamato security identified (SID) che permette al sistema di distinguere account con lo stesso nome di computer diversi.

I SID hanno la seguente forma
S-1-5-12-7723811915-3361004348-033306820-515
e di divide in più parti.
Il SID hanno come prefisso S e le varie parti sono divise da -.
Il primo valore indica il numero della revisione. La struttura del SID non cambia una volta creato e quindi questo valore è 1.
Il secondo valore (in questo caso 5) specifica l’identifier authority. L’identifier authority indica il livello più alto dell’authority che può generare un SID per questo tipo di account.
L’identifier authority può avere uno dei seguenti valori
0 – Null authority
1 – World authority
2 – Local authority
3 – Creator authority
4 – Non unique authority
5 – NT authority
I successivi quattro valori sono chiamati subauthority fields e identificano il dominio nel quale è stato creato il SID.
L’ultimo valore è il relative identifier (RID) che distingue un accounti all’interno di un dominio.

In Windows Vista il sistema di controllo degli accessi è stato modificato con l’introduzione di Mandatory Integrity Control (MIC) che utilizza i seguenti quattro nuovi security principals chiamati Integrity Levels (IL) che possono essere aggiunti agli accesso token e alle ACL
-Low
-Medium
-High
-System
Windows Vista quindi quando deve effettuare il controllo sull’accesso di una risorsa effettua un’ulteriore confrontro verificando se l’Integrity Level del token access corrisponde con quello impostato nelle ACL della risorsa.
MIC è utilizzato in Vista da User Account Control (UAC).

Gli sviluppatori possono utilizzare un application manifest per richiedere privilegi elevati per l’esecuzione di un’applicazione in questo modo sull’applicazione viene impostato l’integrity level High.
LSA crea due token per le utenze amministrative un token filtered e uno linked.
Di default le applicazioni vengono eseguite utilizzando il token filtered che non contiene i privilegi elevati mentre il token linked che ha l’integrity level High viene utilizzato solo per eseguire le applicazioni che lo richiedono.
Quando è necessario utilizzare il token linked all’utente compare una richiesta di conferma dell’operazione e se non è membro di un gruppo amministrativo viene richiesto di inserire le credenziali di un utente con i permessi richiesti.