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

10311
marsh-wiggle

In Windows der Benutzer Systemwird mit dem Gruppensymbol angezeigt: Ist . (Die Verwendung der internen Win32-API LookupAccountSid zeigt auch, dass es sich scheinbar um eine Gruppen- SidTypeGroup handelt .)

Andererseits können Prozesse in a system contextähnlich ablaufen user context. Auch Microsoft-Dokumente beschreiben es als "Systembenutzer" oder "Systemkonto" und nicht als "Systemgruppe".

Ist es ein Benutzer, der aus irgendeinem Grund als Gruppe angezeigt wird?

(Oder ist es etwas, woran sich Werner Heisenberg interessiert hätte?)


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

13
Das kann dir vielleicht antworten? Frage hier: http://superuser.com/questions/471769/what-is-the-nt-authority-system-user-471774 XsiSec vor 8 Jahren 0
Sie haben Recht, ich entschuldige mich XsiSec vor 8 Jahren 0
SIDs müssen keine der beiden sein, oder? grawity vor 8 Jahren 0

2 Antworten auf die Frage

9
harrymc

First, access token contains much more than the security identifier (SID). One only has to "Run as administrator" a program to see in the Task Manager that its user is oneself and not Administrator, and this miracle is achieved just by the modification of the access token, not by replacing the SID.

Second, NT-AUTHORITY and SYSTEM are neither accounts nor groups, in spite of what say various other sources (even inside Microsoft). An SID usually has a name that is displayed whenever required. A user account will contribute its SID as principal SID to the access token, which will also determine the name displayed by various utilities. But the access token may contain additional SIDs, for example for all the groups to which belongs that user account. When checking permissions, Windows will look for any SID in the access token that has that permission.

Some well-known Windows SIDs will have names reported by Windows, although they do not really belong to any account.

A Security Identifier is defined by Wikipedia as :

a unique, immutable identifier of a user, user group, or other security principal.

The SID does not need to even define a user account or a group. It just defines a set of permissions. The above Wikipedia article adds:

Windows grants or denies access and privileges to resources based on access control lists (ACLs), which use SIDs to uniquely identify users and their group memberships. When a user logs into a computer, an access token is generated that contains user and group SIDs and user privilege level. When a user requests access to a resource, the access token is checked against the ACL to permit or deny particular action on a particular object.

The SID of NT-AUTHORITY\SYSTEM can be added to other accounts. For example, this is said about the LocalSystem Account:

The LocalSystem account is a predefined local account used by the service control manager. [...] Its token includes the NT AUTHORITY\SYSTEM and BUILTIN\Administrators SIDs; these accounts have access to most system objects.

One can already see in the above text the confusion that reigns even in Microsoft documentation as regarding system SIDs, which are not exactly accounts nor groups - which are just a set of permissions. This confusion further extends to other utilities and articles, so any returned information should be carefully examined.

The Microsoft article Well-known security identifiers in Windows operating systems details all system SIDs, some of whom I include below:

image

Conclusion: NT-AUTHORITY\SYSTEM is the name of a Security ID, which is neither a group nor an account. It is displayed in Task Manager as SYSTEM when it is the principal SID of a program. The most I would call it is "a pseudo account".

Du schlägst mich dazu mein Freund. Ich war gerade dabei, eine ähnliche Antwort zu schreiben, als Ihre Antwort kam. Dies ist die richtige Erklärung. Es handelt sich lediglich um eine Sammlung von Berechtigungen. Ob sie als Gruppe oder als Benutzer angezeigt wird, ist falsch. Da die meisten Tools nur "user" oder "group" anzeigen können, wählen sie einfach das eine oder das andere aus. Normalerweise gruppieren Sie die Gruppe, wenn die WIn32-API die SidTypeGroup entsprechend einstellt und von den meisten Anwendungen ihre Informationen erhalten. Tonny vor 6 Jahren 1
Beeindruckend! Ich starte eine Prämie, um eine vorhandene Antwort zu belohnen, und was passiert? Eine bessere Antwort erscheint. :-) Eine Frage: Hat das LocalSystem-Konto auch eine eigene ("Konto") - SID oder verwendet es einfach die NT-AUTHORTY \ SYSTEM SID als Haupt-SID? Heinzi vor 6 Jahren 0
@Heinzi: LocalSystem ist ein weiteres "Pseudokonto". Das kann man im [link] (https://msdn.microsoft.com/de-de/library/windows/desktop/ms684190 (v = vs.85) .aspx) sehen, der besagt: "Dieses Konto wird nicht erkannt durch das Sicherheitssubsystem, daher können Sie seinen Namen nicht in einem Aufruf der Funktion LookupAccountName angeben ". harrymc vor 6 Jahren 1
7
Thomas Weller

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

Spezielle Gruppen

[...]

System - Das Betriebssystem.

Es gibt auch ein Konto namens LocalSystem welches

[...] beinhaltet das NT AUTHORITY \ SYSTEM [...]

so können Sie diese das System 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 Start eines Prozesses als Gruppe:

Zur Verwaltung der Sicherheit erhält ein Prozess ein Zugriffstoken . Das Zugriffstoken enthält nur SIDs. Ich bin nicht sicher, ob geprüft wird, ob die SID des Benutzers tatsächlich ein Benutzer oder eine Gruppe ist. Im Prinzip wäre das egal: Die SID definiert, worauf zugegriffen werden kann. Vielleicht kann der CodeProject-Artikel bei der Implementierung helfen