"NT AUTHORITY \ SYSTEM" è un utente o un gruppo?


17

In Windows l'utente Systemviene visualizzato con il simbolo del gruppo: inserisci qui la descrizione dell'immagine. (Utilizzando l'API Win32 interna LookupAccountSid rivela anche che sembra essere un gruppo SidTypeGroup .)

D'altra parte i processi possono essere eseguiti in modo system contextsimile in a user context. Inoltre i documenti Microsoft lo descrivono come "utente di sistema" o "account di sistema" e non come "gruppo di sistema".

È un utente che viene visualizzato come gruppo per scopi legacy?

(O è qualcosa a cui Werner Heisenberg sarebbe stato interessato?)


Nota: che cos'è l'utente NT AUTHORITY \ SYSTEM? è simile ma non risponde alla domanda sul perché viene visualizzato come gruppo e si comporta come un utente.


Questo forse risponde al tuo? domanda qui: superuser.com/questions/471769/…
XsiSec

Hai ragione, mi scuso
XsiSec,

I SID non devono essere nessuno dei due, vero?
user1686

Risposte:


13

Innanzitutto, il token di accesso contiene molto più dell'identificatore di sicurezza (SID) . È sufficiente "Esegui come amministratore" un programma per vedere nel Task Manager che il suo utente è se stesso e non Amministratore, e questo miracolo si ottiene semplicemente modificando il token di accesso, non sostituendo il SID.

In secondo luogo, NT-AUTHORITY e SYSTEM non sono né account né gruppi, nonostante ciò che dicono varie altre fonti (anche all'interno di Microsoft). Un SID di solito ha un nome che viene visualizzato quando richiesto. Un account utente fornirà il proprio SID come SID principale al token di accesso, che determinerà anche il nome visualizzato da varie utility. Ma il token di accesso può contenere SID aggiuntivi, ad esempio per tutti i gruppi a cui appartiene quell'account utente. Durante il controllo delle autorizzazioni, Windows cercherà qualsiasi SID nel token di accesso che dispone di tale autorizzazione.

Alcuni noti SID di Windows avranno nomi segnalati da Windows, sebbene in realtà non appartengano a nessun account.

Un identificatore di sicurezza è definito da Wikipedia come:

un identificatore univoco e immutabile di un utente, di un gruppo di utenti o di un'altra entità di sicurezza .

Il SID non deve nemmeno definire un account utente o un gruppo. Definisce solo un insieme di autorizzazioni. L'articolo di Wikipedia sopra riportato aggiunge:

Windows concede o nega l'accesso e i privilegi alle risorse in base agli elenchi di controllo di accesso (ACL), che utilizzano i SID per identificare in modo univoco gli utenti e le loro appartenenze ai gruppi. Quando un utente accede a un computer, viene generato un token di accesso che contiene SID utente e di gruppo e livello di privilegio utente. Quando un utente richiede l'accesso a una risorsa, il token di accesso viene verificato rispetto all'ACL per consentire o negare un'azione particolare su un oggetto particolare.

Il SID di NT-AUTHORITY\SYSTEMpuò essere aggiunto ad altri account. Ad esempio, questo si dice sull'account LocalSystem :

L'account LocalSystem è un account locale predefinito utilizzato dal gestore controllo servizi. [...] Il token include i SID NT AUTHORITY \ SYSTEM e BUILTIN \ Administrators; questi account hanno accesso alla maggior parte degli oggetti di sistema.

Si può già vedere nel testo sopra la confusione che regna anche nella documentazione Microsoft per quanto riguarda i SID di sistema, che non sono esattamente account o gruppi - che sono solo un insieme di autorizzazioni. Questa confusione si estende ulteriormente ad altre utilità e articoli, quindi qualsiasi informazione restituita dovrebbe essere attentamente esaminata.

L'articolo di Microsoft Identificatori di sicurezza noti nei sistemi operativi Windows descrivono in dettaglio tutti i SID di sistema, alcuni dei quali includo di seguito:

Immagine

Conclusione : NT-AUTHORITY \ SYSTEM è il nome di un ID di sicurezza, che non è né un gruppo né un account. Viene visualizzato in Task Manager come SYSTEM quando è il SID principale di un programma. Il più che chiamerei è "uno pseudo account".


1
Mi hai battuto, amico mio. Ero a metà della scrittura di una risposta simile quando è arrivata la tua risposta. Questa è la spiegazione corretta. È solo una raccolta di autorizzazioni e se viene visualizzato come gruppo o come utente è sbagliato. Poiché la maggior parte degli strumenti può mostrare solo "utente o" gruppo, selezionano semplicemente l'uno o l'altro. Di solito si raggruppano quando l'API WIn32 imposta SidTypeGroup di conseguenza e cioè la maggior parte delle applicazioni ottengono le loro informazioni.
Tonny

Wow! Inizio una taglia per premiare una risposta esistente, e cosa succede? Viene visualizzata una risposta migliore. :-) Una domanda però: l'account LocalSystem ha anche il proprio SID ("account") o utilizza semplicemente il SID NT-AUTHORTY \ SYSTEM come SID principale?
Heinzi,

1
@Heinzi: LocalSystem è un altro "account pseudo". Lo si può vedere nel collegamento che dice: "Questo account non è riconosciuto dal sottosistema di sicurezza, quindi non è possibile specificarne il nome in una chiamata alla funzione LookupAccountName".
harrymc,

- which are just a set of permissions: Fa il che si riferiscono alla ID di sistema o per i conti o gruppi ?
René Nyffenegger,

@ RenéNyffenegger: entrambi.
harrymc,

7

IMHO la tua osservazione è corretta. NT-AUTHORITY\SYSTEMè un gruppo, quindi è possibile fare riferimento ad esso come gruppo di sistema . Questo gruppo esiste almeno da Windows NT 4 ed è già stato un gruppo lì:

Gruppi speciali

[...]

Sistema: il sistema operativo.

C'è anche un account chiamato LocalSystem che

[...] include NT AUTHORITY \ SYSTEM [...]

quindi potresti chiamarlo l' utente di sistema che è membro del gruppo SYSTEM.

SysInternals PsGetSid sostiene la teoria dei gruppi per SYSTEM:

C:\>PsGetsid.exe S-1-5-18

PsGetSid v1.44 - Translates SIDs to names and vice versa
Copyright (C) 1999-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

Account for YOURPCNAMEHERE\S-1-5-18:
Well Known Group: NT-AUTHORITY\SYSTEM

Per quanto riguarda l'inizio di un processo come gruppo:

Per gestire la sicurezza, un processo ottiene un token di accesso . Il token di accesso contiene solo SID. Non sono sicuro se esiste un controllo se il SID dell'utente è davvero un utente o un gruppo. In linea di principio non avrebbe importanza: il SID definisce ciò a cui è possibile accedere. Forse l' articolo CodeProject può aiutare con l'implementazione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.