«NT AUTHORITY\SYSTEM» — это пользователь или группа?

«NT AUTHORITY\SYSTEM» — это пользователь или группа?

В Windows пользователь Systemотображается с помощью символа группы: введите описание изображения здесь. (Использование внутреннего API Win32LookupAccountSidтакже показывает, что это, похоже, группаSidTypeGroup.)

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

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

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


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

решение1

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

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

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

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

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

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

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

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

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

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

Статья Microsoft Известные идентификаторы безопасности в операционных системах Windows Подробно описываются все системные SID, некоторые из которых я привожу ниже:

изображение

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

решение2

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

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

[...]

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

Также есть аккаунт под названиемЛокальнаяСистемакоторый

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

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

SysInternalsPsGetSidподдерживает теорию групп для СИСТЕМЫ:

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может помочь с реализацией

Связанный контент