NT NTHORITY \ SYSTEM - это пользователь или группа?

10511
marsh-wiggle

В Windows пользователь Systemотображается с символом группы: enter image description here. (Использование внутреннего Win32 API LookupAccountSid также показывает, что это, похоже, группа SidTypeGroup .)

С другой стороны, процессы могут выполняться system contextаналогично в user context. Также документы Microsoft описывают его как «системный пользователь» или «системная учетная запись», а не как «системная группа».

Это пользователь, который для каких-либо устаревших целей отображается как группа?

(Или это было бы интересно для Вернера Гейзенберга ?)


Примечание. Что такое пользователь NT AUTHORITY \ SYSTEM? похож, но не отвечает на вопрос, почему он отображается как группа и ведет себя как пользователь.

13
Это может быть ответ на ваш? вопрос здесь: http://superuser.com/questions/471769/what-is-the-nt-authority-system-user/471774 XsiSec 8 лет назад 0
Вы правы мои плохие извинения XsiSec 8 лет назад 0
SID не должны быть ни одним из них, не так ли? grawity 8 лет назад 0

2 ответа на вопрос

9
harrymc

Во-первых, токен доступа содержит гораздо больше, чем идентификатор безопасности (SID) . Нужно только «запустить от имени администратора» программу, чтобы увидеть в диспетчере задач, что ее пользователь является самим собой, а не администратором, и это чудо достигается просто путем изменения токена доступа, а не путем замены SID.

Во-вторых, NT-AUTHORITY и SYSTEM не являются ни учетными записями, ни группами, несмотря на то, что говорят различные другие источники (даже внутри Microsoft). У SID обычно есть имя, которое отображается при необходимости. Учетная запись пользователя будет предоставлять свой SID в качестве основного SID для маркера доступа, который также будет определять имя, отображаемое различными утилитами. Но токен доступа может содержать дополнительные SID, например, для всех групп, к которым принадлежит эта учетная запись пользователя. При проверке разрешений Windows будет искать любой SID в маркере доступа, который имеет это разрешение.

Некоторые известные Windows SID будут иметь имена, сообщаемые Windows, хотя на самом деле они не принадлежат какой-либо учетной записи.

Идентификатор безопасности определяется Википедии как:

уникальный неизменный идентификатор пользователя, группы пользователей или другого участника безопасности .

SID не должен даже определять учетную запись пользователя или группу. Он просто определяет набор разрешений. Приведенная выше статья в Википедии добавляет:

Windows предоставляет или запрещает доступ и привилегии к ресурсам на основе списков контроля доступа (ACL), которые используют SID для уникальной идентификации пользователей и их членства в группах. Когда пользователь входит в компьютер, создается токен доступа, который содержит SID пользователя и группы и уровень привилегий пользователя. Когда пользователь запрашивает доступ к ресурсу, токен доступа сравнивается с ACL, чтобы разрешить или запретить конкретное действие с конкретным объектом.

SID NT-AUTHORITY\SYSTEMможет быть добавлен к другим учетным записям. Например, это сказано об учетной записи LocalSystem :

Учетная запись LocalSystem является предопределенной локальной учетной записью, используемой диспетчером управления службами. [...] Его токен включает идентификаторы NT AUTHORITY \ SYSTEM и BUILTIN \ Administrators; эти учетные записи имеют доступ к большинству системных объектов.

В приведенном выше тексте уже можно увидеть путаницу, которая царит даже в документации Microsoft относительно системных идентификаторов безопасности, которые не являются ни точными учетными записями, ни группами, а представляют собой просто набор разрешений. Эта путаница распространяется и на другие утилиты и статьи, поэтому любая возвращенная информация должна быть тщательно изучена.

В статье Microsoft « Известные идентификаторы безопасности в операционных системах Windows» подробно описываются все системные идентификаторы безопасности, некоторые из которых я включаю ниже:

image

Вывод : NT-AUTHORITY \ SYSTEM - это имя идентификатора безопасности, который не является ни группой, ни учетной записью. Он отображается в диспетчере задач как СИСТЕМА, когда он является основным SID программы. Максимум, что я бы назвал, это «псевдо-счет».

Ты побил меня этим, мой друг. Я наполовину написал аналогичный ответ, когда пришел ваш ответ. Это правильное объяснение. Это просто набор разрешений, и то, отображается ли оно как группа или как пользователь, неверно. Так как большинство инструментов могут показывать только «пользователя или« группу », они просто выбирают один или другой. Обычно группируют, так как API WIn32 устанавливает SidTypeGroup соответствующим образом, и именно так большинство приложений получают информацию. Tonny 6 лет назад 1
Вот Это Да! Я получаю вознаграждение, чтобы вознаградить существующий ответ, и что происходит? Лучший ответ появляется. :-) Один вопрос, хотя: есть ли у учетной записи LocalSystem также свой собственный («учетная запись») SID или она просто использует NT-AUTHORTY \ SYSTEM SID в качестве основного SID? Heinzi 6 лет назад 0
@Heinzi: LocalSystem - это еще одна «псевдо-учетная запись». Это можно увидеть в [ссылка] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms684190 (v = vs.85) .aspx), где говорится: «Эта учетная запись не распознана подсистемой безопасности, поэтому вы не можете указать ее имя при вызове функции LookupAccountName ". harrymc 6 лет назад 1
7
Thomas Weller

ИМХО твои наблюдения верны. NT-AUTHORITY\SYSTEMэто группа, так что вы можете называть ее системной группой . Эта группа существует, по крайней мере, начиная с Windows NT 4, и уже была там:

Специальные группы

[...]

Система - операционная система.

Существует также учетная запись под названием LocalSystem, которая

[...] включает NT AUTHORITY \ SYSTEM [...]

так что вы можете назвать это системным пользователем, который является членом группы SYSTEM.

SysInternals PsGetSid поддерживает теорию групп для 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 

Относительно начала процесса как группы:

Для управления безопасностью процесс получает токен доступа . Маркер доступа содержит только SID. Я не уверен, есть ли проверка, является ли SID пользователя действительно пользователем или группой. В принципе это не имеет значения: SID определяет, к чему можно получить доступ. Возможно, статья CodeProject может помочь с реализацией