Ist "NT AUTHORITY \ SYSTEM" ein Benutzer oder eine Gruppe?

17

In Windows der Benutzer Systemwird mit dem Gruppensymbol angezeigt: Bildbeschreibung hier eingeben. (Die Verwendung der internen Win32-API LookupAccountSid zeigt auch, dass es sich anscheinend um eine Gruppe SidTypeGroup handelt .)

Auf der anderen Seite können Prozesse system contextin a user context. Auch Microsoft-Dokumente beschreiben es als "Systembenutzer" oder "Systemkonto" und nicht als "Systemgruppe".

Handelt es sich um einen Benutzer, der für ältere Zwecke als Gruppe angezeigt wird?

(Oder hätte sich Werner Heisenberg dafür interessiert?)


Hinweis: Was ist der Benutzer von NT AUTHORITY \ SYSTEM? ist ähnlich, beantwortet aber nicht die Frage, warum es als Gruppe angezeigt wird und sich wie ein Benutzer verhält.

Sumpf-Wackeln
quelle
Dies beantwortet vielleicht deine? Frage hier: superuser.com/questions/471769/...
XsiSec
Sie haben Recht, mein schlechtes entschuldigen
XsiSec
SIDs müssen keine von diesen sein, oder?
user1686

Antworten:

13

Erstens enthält das Zugriffstoken viel mehr als die Sicherheitskennung (SID) . Man muss nur ein Programm "Als Administrator ausführen", um im Task-Manager zu sehen, dass sein Benutzer sich selbst und nicht der Administrator ist, und dieses Wunder wird nur durch die Änderung des Zugriffstokens erreicht, nicht durch das Ersetzen der SID.

Zweitens sind NT-AUTHORITY und SYSTEM trotz verschiedener anderer Quellen (auch innerhalb von Microsoft) weder Konten noch Gruppen. Eine SID hat normalerweise einen Namen, der bei Bedarf angezeigt wird. Ein Benutzerkonto trägt seine SID als Haupt-SID zum Zugriffstoken bei, wodurch auch der von verschiedenen Dienstprogrammen angezeigte Name bestimmt wird. Das Zugriffstoken kann jedoch zusätzliche SIDs enthalten, beispielsweise für alle Gruppen, denen dieses Benutzerkonto angehört. Bei der Überprüfung der Berechtigungen sucht Windows im Zugriffstoken nach einer SID, die über diese Berechtigung verfügt.

Einige bekannte Windows-SIDs haben Namen, die von Windows gemeldet werden, obwohl sie eigentlich keinem Konto angehören.

Eine Sicherheitskennung wird von Wikipedia definiert als:

Eine eindeutige, unveränderliche Kennung eines Benutzers, einer Benutzergruppe oder eines anderen Sicherheitsprinzips .

Die SID muss nicht einmal ein Benutzerkonto oder eine Gruppe definieren. Es definiert nur eine Reihe von Berechtigungen. Der obige Wikipedia-Artikel fügt hinzu:

Windows gewährt oder verweigert den Zugriff und die Berechtigungen auf Ressourcen basierend auf Zugriffssteuerungslisten (Access Control Lists, ACLs), die SIDs verwenden, um Benutzer und ihre Gruppenmitgliedschaften eindeutig zu identifizieren. Wenn sich ein Benutzer bei einem Computer anmeldet, wird ein Zugriffstoken generiert, das Benutzer- und Gruppen-SIDs sowie Benutzerberechtigungen enthält. Wenn ein Benutzer Zugriff auf eine Ressource anfordert, wird das Zugriffstoken anhand der ACL überprüft, um bestimmte Aktionen für ein bestimmtes Objekt zuzulassen oder abzulehnen.

Die SID von NT-AUTHORITY\SYSTEMkann anderen Konten hinzugefügt werden. Dies gilt zum Beispiel für das LocalSystem-Konto :

Das LocalSystem-Konto ist ein vordefiniertes lokales Konto, das vom Dienststeuerungs-Manager verwendet wird. [...] Das Token enthält die SIDs NT AUTHORITY \ SYSTEM und BUILTIN \ Administrators. Diese Konten haben Zugriff auf die meisten Systemobjekte.

Man kann bereits im obigen Text die Verwirrung sehen, die selbst in der Microsoft-Dokumentation herrscht, wenn es um System-SIDs geht, bei denen es sich nicht genau um Konten oder Gruppen handelt, sondern nur um eine Reihe von Berechtigungen. Diese Verwirrung erstreckt sich auch auf andere Dienstprogramme und Artikel. Daher sollten alle zurückgegebenen Informationen sorgfältig geprüft werden.

In dem Microsoft-Artikel Bekannte Sicherheitskennungen in Windows-Betriebssystemen werden alle System-SIDs aufgeführt, von denen einige im Folgenden aufgeführt sind:

Bild

Schlussfolgerung : NT-AUTHORITY \ SYSTEM ist der Name einer Sicherheits-ID, die weder eine Gruppe noch ein Konto ist. Es wird im Task-Manager als SYSTEM angezeigt, wenn es die Haupt-SID eines Programms ist. Das meiste, was ich es nennen würde, ist "ein Pseudo-Account".

Harrymc
quelle
1
Du hast mich geschlagen, mein Freund. Ich habe gerade eine ähnliche Antwort geschrieben, als Ihre Antwort einging. Dies ist die richtige Erklärung. Es handelt sich lediglich um eine Sammlung von Berechtigungen, und es ist falsch, ob sie als Gruppe oder als Benutzer angezeigt werden. Da die meisten Tools nur "Benutzer" oder "Gruppe" anzeigen können, wählen sie nur das eine oder das andere aus. Normalerweise wird die SidTypeGroup durch die WIn32-API entsprechend gruppiert und die meisten Anwendungen erhalten ihre Informationen von.
Tonny
Beeindruckend! Ich beginne eine Prämie, um eine vorhandene Antwort zu belohnen, und was passiert? Eine bessere Antwort erscheint. :-) Eine Frage: Verfügt das LocalSystem-Konto auch über eine eigene ("Konto") SID oder verwendet es einfach die NT-AUTHORTY \ SYSTEM-SID als Haupt-SID?
Heinzi
1
@Heinzi: LocalSystem ist ein weiteres "Pseudo-Konto". Dies können Sie dem Link entnehmen, der besagt: "Dieses Konto wird vom Sicherheitssubsystem nicht erkannt, daher können Sie seinen Namen nicht in einem Aufruf der LookupAccountName-Funktion angeben."
Harrymc
- which are just a set of permissions: bezieht sich das was auf die System IDs oder auf die Accounts oder Gruppen ?
René Nyffenegger
@ RenéNyffenegger: Beides.
Harrymc
7

IMHO ist Ihre Beobachtung richtig. NT-AUTHORITY\SYSTEMist eine Gruppe, so dass Sie es als das System beziehen könnte Gruppe . Diese Gruppe existiert seit Windows NT 4 mindestens und war dort bereits eine Gruppe:

Spezielle Gruppen

[...]

System - Das Betriebssystem.

Es gibt auch ein Konto namens LocalSystem, das

[...] enthält das NT AUTHORITY \ SYSTEM [...]

so könnte man das System dies nennen Benutzer , die Mitglied der Gruppe SYSTEM ist.

SysInternals PsGetSid unterstützt die Gruppentheorie für 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

Zum Beginn eines Prozesses als Gruppe:

Um die Sicherheit zu verwalten, erhält ein Prozess ein Zugriffstoken . Das Zugriffstoken enthält nur SIDs. Ich bin nicht sicher, ob überprüft wird, ob die SID des Benutzers wirklich ein Benutzer oder eine Gruppe ist. Im Prinzip spielt es keine Rolle: Die SID definiert, auf was zugegriffen werden kann. Vielleicht kann der CodeProject-Artikel bei der Implementierung helfen

Thomas Weller
quelle