Идентификаторы безопасности SID

В операционной системе Windows вместо имен пользователей для идентификации используются SID (Security Identifiers). В этой статье познакомимся с ними.

Идентификаторы безопасности

Идентификаторы безопасности — это уникальные номера пользователей, групп, доменов, служб и компьютеров. То есть у тех объектов, которые могут получать доступ к другим объектам, таким как: файлы, драйверы, разделы дисков, реестр.

SID представляет собой число переменной длины, которое состоит из:

  • номера версии идентификатора;
  • идентификатора полномочий, который показывает максимальный уровень полномочий. Для группы «Все» равно 1. Для конкретной учетной записи или группы равно 5;
  • несколько чисел подчиненных полномочий;
  • значения RID, которое гарантирует уникальность.

SID всегда начинается с “S”, например: S-1-5-21-1463437245-1224812800-863842198-1128.

  • 1 — номер версии;
  • 5 — идентификатор полномочий;
  • 21, 1463437245, 1224812800, 863842198 — значения подчиненных полномочий;
  • 1128 — RID.

Логика назначения SID

Каждый локальный пользователь создается на основе компьютерного или доменного идентификатора. А для уникальности в конце записывается уникальный RID для каждого объекта. RID для новых пользовательских учетных данных начинается с 1000, и увеличивается с каждым новым пользователем и группой. До 1000 идут RID для стандартных пользователей, например 500 для пользователя «Администратор»501 для «Гость».

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

Стандартные SID

Есть предопределенные идентификаторы. Они одинаковые на всех машинах во всем мире. Так файл, доступный группе Everyone (Все), на одной машине, будет открыт и на другой, если перенести жесткий диск туда.

В системе Windows существуют следующие стандартные SID:

  • s-1-0-0 — Nobody (Никто) — используется, когда идентификатор неизвестен;
  • s-1-1-0 — Everyone (Все) — группа, включающая всех пользователей за исключением анонимных;
  • S-1-2-0 — Local (Локальная) — группа пользователей, вошедших в терминалы, которые физически подключены к системе;
  • S-1-3-0 — Creator Owner ID (ID Владельца) — идентификатор владельца, используемый в наследуемых ACL;
  • S-1-3-1 — Creator Owner ID (ID Группы Владельца) — тоже что и выше, но для группы владельца;
  • S-1-5-18 — LocalSystem — используется службами;
  • S-1-5-19 — LocalService — используется службами;
  • S-1-5-20 — NetworkService — используется службами.

Работа с утилитой PsGetsid.exe

Для просмотра идентификаторов можно воспользоваться утилитой  PsGetsid  из набора Sysinternals. Выполнив команду без параметров вы увидите имя компьютера и его SID:

PsGetsid.exe

SID for \\PC-1:
S-1-5-21-679991269-3265548881-4162047351

Указав имя домена — увидите идентификатор домена:

PsGetsid.exe test.domain.local

SID for TEST\test.domain.local:
S-1-5-21-1241004363-267861926-1289139162

Указав свое имя узнаете свой идентификатор, он будет зависеть от SID домена. И на всех компьютерах в домене будет одинаковым:

PsGetsid.exe testuser

SID for TEST\testuser:
S-1-5-21-1241004363-267861926-1289139162-1155

Как видно выше, к доменному SID просто добавили RID. При этом, локальные пользователи с одинаковыми именами на всех компьютерах будут разными.

В качестве параметра можно указать сам идентификатор, утилита в этом случае вернет имя пользователя:

PsGetsid.exe S-1-5-21-1241004363-267861926-1289139162-1155

Account for PC-1\S-1-5-21-1241004363-267861926-1289139162-1155:
User: TEST\testuser

Можно узнать имя администратора домена, для этого используем идентификатор домена и стандартный для администратора RID = 500:

PsGetsid.exe S-1-5-21-1241004363-267861926-1289139162-500

Account for PC-1\S-1-5-21-1241004363-267861926-1289139162-500:
User: TEST\Administrator

Любой компьютер в домене имеет свой SID, он также будет состоять из SID домена и своего RID. Чтобы его узнать пишите домен\имя_компьютера$:

PsGetsid64.exe TEST\SRV-1$

SID for TEST\SRV-1$:
S-1-5-21-1241004363-267861926-1289139162-1610

SIP Процессов

Так как процессы запускаются от имени какого-либо пользователя, то процессы тоже имеют SID. Посмотреть их можно с помощью программы  Process Explorer . Для этого нужно открыть свойства выбранного процесса и перейти на вкладку Security:

Выше я смотрю SID пользователя под которым работает один из процессов svhost.exe.


Если понравилась статья, подпишись на мой канал в  VK  или  Telegram .