UAC - це багатокомпонентна архітектура, реалізована декількома бінарними файлами
Контроль облікових записів користувачів (UAC) відноситься до декількох компонентів, які разом утворюють архітектуру UAC . Я коротко ознайомлюсь з деякими з них разом із бінарними файлами, відповідальними за їхню реалізацію, але спочатку огляд архітектури UAC зі статті Microsoft Docs, як працює контроль облікових записів користувачів :
Місцевий орган безпеки (LSA) / Фільтрований маркер
Концептуально "перший" компонент UAC реалізується підсистемою Local Security Authority, яка обробляє створення токена доступу користувача під час процесу входу. Починаючи з Windows Vista, процес входу був змінений так, що коли адміністратор входить із увімкненим UAC, підсистема LSA генерує два окремих маркери доступу для користувача:
- Один із повним доступом адміністратора та
- Другий "відфільтрований маркер" зі стандартним доступом користувачів
Як показано тут, цей процес відрізняється від стандартного входу користувача:
Служба підсистеми LSA працює в lsass.exe
процесі.
Віртуалізація
Додано в Windows 7, віртуалізація файлів і реєстрів - це компонент UAC, який захищає старі програми, не сумісні з UAC, але вимагають лише адміністративних прав для доступу до певних захищених областей файлової системи чи реєстру:
Коли адміністративна програма, яка не відповідає сумісній програмі UAC, намагається записати в захищений каталог, наприклад програмні файли, UAC надає додатку власний віртуалізований вигляд ресурсу, який він намагається змінити. Віртуалізована копія зберігається у профілі користувача.
Джерело
Перенаправлення цих спроб доступу до областей, які не потребують дозволу адміністратора, ці програми продовжують функціонувати, незважаючи на те, що UAC увімкнено.
Ця віртуалізація реалізована в ядрі .
Служба інформації про додатки
Служба інформації про додатки (AIS) читає маніфест програми та працює з підказкою згоди UAC, щоб визначити, чи дозволено виконувати програму з підвищеними правами (тобто запускати в контексті нефільтрованого маркера доступу адміністративного рівня, створеного під час входу) . Цей допис у блозі дає хороший огляд його ролі в процесі UAC:
AIS Полегшує запуск інтерактивних додатків з додатковими адміністративними привілеями. Якщо ця послуга припинена, користувачі не зможуть запускати програми з додатковими адміністративними привілеями, які вони можуть вимагати .... Оболонка перевіряє цю службу під час запуску програми. AIS - це той, хто зчитує маніфест та розділ xml 'trustInfo', який має вимоги до 'requestExecutionLevel' ...
Ось графіка, яка випливає з наведеної вище цитати, в якій детально описується роль AIS у процесі запрошення згоди на підтримку UAC:
AIS реалізований в DLL,appinfo.dll
який виконується svchost.exe
.
Підказка про згоду
@ Бенн відповідь пояснює ключову роль (в) відомому UAC Згоду Prompt. Це реалізовано в consent.exe
і відповідає за отримання згоди користувача або облікових даних адміністратора, щоб дозволити запуск програми, що вимагає прав адміністратора.
Безпечний робочий стіл
На захищеному робочому столі за замовчуванням відображається запит на згоду UAC. UACBlog Майкрософт розповідає, що цього робочого столу унікальне порівняно з робочим столом користувача:
Ви найчастіше взаємодієте з [Безпечним робочим столом] під час входу в Windows, оскільки інтерфейс входу в систему працює на захищеному робочому столі. Основна відмінність захищеного робочого столу від User Desktop полягає в тому, що тут можуть запускатися тільки довірені процеси, що виконуються як SYSTEM (тобто ніщо не працює як рівень привілеїв користувача), і шлях до безпечного робочого столу з робочого столу користувача також слід довіряти через весь ланцюжок.
Ідея його використання при питанні згоди користувача на запуск програми з підвищеними дозволами полягає в тому, що зловмисне програмне забезпечення не може імітувати захищений робочий стіл, якщо воно вже не має адміністративних прав, і в цьому випадку обман користувача в його наданні є суперечливим.
Висновок: UAC - це не лише один двійковий. Це тканина переплетених підсистем.
Існують ще інші аспекти архітектури UAC, не висвітлені тут, але це повинно дати достатньо доказів для фактів, які:
- UAC не реалізований в одному двійковому.
- Якщо це включено, це невід'ємна частина виконання адміністративних завдань.
З моменту свого впровадження в Windows Vista він був глибоко інтегрований у ключові частини операційної системи, завдяки чому видалити весь код, відповідальний за UAC, не порушуючи інші речі (наприклад, вашу здатність до входу!).
Я думаю, що можна впевнено сказати, що якщо ви "насильно видалили" UAC, ви б зламали Windows.