"NT AUTHORITY \ SYSTEM" є користувачем або групою?


17

У Windows користувач Systemвідображається з символом групи: введіть тут опис зображення. (Використання внутрішнього API Win32 LookupAccountSid також виявляє, що, здається, це група SidTypeGroup .)

З іншого боку, процеси можуть працювати system contextаналогічно в a user context. Також документи Microsoft описують це як "користувач системи" або "системний обліковий запис", а не як "системну групу".

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

(Або це щось цікавить Вернера Гейзенберга ?)


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


Це може відповісти на ваше? питання тут: superuser.com/questions/471769/…
XsiSec

Ви маєте рацію, мої погані вибачення
XsiSec

SID не повинні бути жодними з них, чи не так?
користувач1686

Відповіді:


13

По-перше, маркер доступу містить набагато більше, ніж ідентифікатор безпеки (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 SID; ці облікові записи мають доступ до більшості системних об'єктів.

У вищенаведеному тексті вже можна побачити плутанину, яка панує навіть у документації Microsoft щодо системних SID, які не є точно обліковими записами та групами - які є лише набором дозволів. Ця плутанина додатково поширюється на інші утиліти та статті, тому будь-яку повернуту інформацію слід ретельно вивчити.

Стаття Microsoft Загальновідомі ідентифікатори безпеки в операційних системах Windows детально описують всі системні SID, деякі з яких я включаю нижче:

зображення

Висновок : NT-AUTHORITY \ SYSTEM - назва ідентифікатора безпеки, який не є ні групою, ні обліковим записом. Він відображається в диспетчері завдань як СИСТЕМА, коли він є основним SID програми. Найбільше я б назвав це "псевдообліком".


1
Ти побив мене до цього, мій друг. Я був на півдорозі, коли написав подібну відповідь, коли надійшла ваша відповідь. Це правильне пояснення. Це лише сукупність дозволів, і те, відображається вони як група або користувач, є помилковим. Оскільки більшість інструментів можуть показувати лише "користувача або" групу ", вони просто вибирають те чи інше. Зазвичай група, як API WIn32 встановлює SidTypeGroup відповідно, і саме більшість додатків отримують свою інформацію.
Тонні

Оце Так! Я починаю винагороду, щоб винагородити наявну відповідь, і що трапиться? З'являється краща відповідь. :-) Однак одне питання: чи також у акаунта LocalSystem є власний ("акаунт") SID або він просто використовує NT-AUTHORTY \ SYSTEM SID в якості свого основного SID?
Хайнзі

1
@Heinzi: LocalSystem - це ще один "псевдо-рахунок". Це можна побачити за посиланням, яке говорить: "Цей обліковий запис не розпізнається підсистемою захисту, тому ви не можете вказати його ім'я у виклику до функції LookupAccountName".
harrymc

- which are just a set of permissions: Робить які посилаються на ідентифікатори системи або до рахунках або групам ?
Рене Ніффенеггер

@ RenéNyffenegger: Обидва.
harrymc

7

ІМХО ваше спостереження правильне. 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 може допомогти в реалізації

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.