В операционной системе 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

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

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

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

>PsGetsid.exe test.domain.local

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

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

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

>PsGetsid.exe testuser

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

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

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

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

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

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

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

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

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

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

>PsGetsid64.exe TEST\SRV-1$
PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

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

SIP Процессов

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

Process Explorer, смотрим SID пользователя службы

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


Вернуться к оглавлению

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *