Контроль учетных записей пользователей¶
Контроль учётных записей пользователей (User Account Control, UAC) — компонент операционной системы Microsoft Windows, обеспечивающий ограничение привилегий программного обеспечения и предотвращение несанкционированного внесения изменений в системные настройки. Впервые внедрён в Windows Vista, в последующих версиях (Windows 7, 8, 10, 11) подвергся доработкам и настройкам. Основная цель UAC — снижение риска выполнения вредоносного кода и случайных ошибок пользователя, требующих прав администратора.
¶История
¶Предпосылки
До появления UAC в Windows XP и более ранних версиях большинство пользователей работали с правами администратора, что делало систему уязвимой для вредоносных программ, которые могли беспрепятственно изменять системные файлы, реестр и устанавливать драйверы. Внедрение модели безопасности, основанной на разделении привилегий, стало одним из ключевых изменений в Windows Vista.
¶Разработка и внедрение
Разработка UAC началась в рамках проекта Windows Longhorn (позже — Vista). Первоначально технология называлась «User Account Protection» (UAP). В финальной версии Windows Vista (2006 год) UAC был включён по умолчанию, что вызвало критику из-за частых запросов подтверждения действий. В Windows 7 (2009 год) количество запросов было сокращено, а в настройки добавлен ползунок с четырьмя уровнями уведомлений. В Windows 8 и 10 интерфейс UAC остался практически неизменным, но были улучшены алгоритмы автоматического принятия решений для доверенных приложений.
¶Принцип работы
¶Архитектура
UAC реализует механизм разделения привилегий на основе модели безопасности Windows. Каждый процесс запускается с определённым токеном доступа. При входе в систему пользователь получает два токена:
- Полный токен администратора — содержит все привилегии, но не используется для обычных операций.
- Фильтрованный токен — ограниченный набор прав, с которым работают все приложения, не требующие повышенных привилегий.
При попытке выполнения действия, требующего прав администратора (например, установка программы, изменение системных файлов), UAC приостанавливает выполнение и выводит диалоговое окно с запросом подтверждения. Если пользователь подтверждает действие, система создаёт новый процесс с полным токеном администратора.
¶Уровни уведомлений
В Windows 7 и более поздних версиях существует четыре уровня настройки UAC:
- Всегда уведомлять — запрос появляется при любом изменении системных настроек, включая действия самого пользователя.
- Уведомлять только при попытках программ внести изменения (по умолчанию) — запрос не выводится, если изменение инициировано пользователем через панель управления или стандартные средства.
- Уведомлять только при попытках программ внести изменения (без затемнения рабочего стола) — аналогично предыдущему, но диалоговое окно не блокирует весь экран.
- Никогда не уведомлять — UAC отключён, все программы работают с правами администратора (не рекомендуется).
¶Технические детали
UAC использует следующие механизмы:
- Виртуализация файлов и реестра — для приложений, не имеющих прав на запись в защищённые области, система создаёт копии файлов или разделов реестра в пользовательской папке.
- Защищённый рабочий стол — при выводе запроса UAC переключает экран в режим защищённого рабочего стола, предотвращая перехват ввода вредоносными программами.
- Цифровые подписи — некоторые действия (например, установка драйверов) требуют наличия цифровой подписи издателя, что снижает риск запуска неподписанного кода.
¶Классификация действий, требующих подтверждения
UAC запрашивает подтверждение при выполнении следующих типов операций:
- Установка или удаление программ.
- Изменение системных настроек (дата и время, параметры безопасности, брандмауэр).
- Установка драйверов устройств.
- Изменение параметров UAC.
- Доступ к системным папкам (например,
C:\Windows\System32). - Запуск приложений с пометкой «требуется повышение прав» (в манифесте приложения указан
requireAdministrator).
¶Критика и недостатки
¶Частота запросов
В Windows Vista UAC подвергался критике за чрезмерное количество диалоговых окон, что приводило к «усталости от подтверждений» и побуждало пользователей отключать компонент. В Windows 7 количество запросов было снижено, но проблема остаётся актуальной для приложений, не адаптированных под UAC.
¶Совместимость со старыми приложениями
Некоторые программы, разработанные для Windows XP, не учитывают UAC и при попытке записи в системные папки вызывают ошибки. Для таких приложений Microsoft рекомендует использовать виртуализацию или запуск от имени администратора вручную.
¶Отключение UAC
Отключение UAC (уровень «Никогда не уведомлять») снижает уровень безопасности системы, так как все программы, включая вредоносные, получают полный доступ к системе. В Windows 10 и 11 отключение UAC не рекомендуется корпорацией Microsoft, а некоторые функции (например, Windows Defender Application Guard) требуют его включения.
¶Применение в корпоративной среде
В организациях UAC часто используется в сочетании с групповыми политиками. Администраторы могут настроить:
- Запрет на отключение UAC пользователями.
- Автоматическое принятие запросов для доверенных приложений.
- Логирование всех запросов UAC в журнал событий Windows.
- Использование UAC в качестве одного из элементов стратегии наименьших привилегий.
¶Влияние на безопасность
По данным Microsoft, внедрение UAC позволило снизить количество успешных атак, связанных с выполнением вредоносного кода с правами администратора, на 60–70% (по сравнению с Windows XP). Однако UAC не является полноценной системой контроля доступа и не защищает от атак, использующих уязвимости в привилегированных процессах.
¶Альтернативы и аналоги
В других операционных системах существуют аналогичные механизмы:
- Linux — команда
sudoи PolicyKit. - macOS — запрос пароля администратора при установке программ или изменении системных настроек.
- Android — запрос разрешений при установке приложений (начиная с версии 6.0).
¶Интересные факты
- В Windows Vista UAC был включён по умолчанию, но многие производители компьютеров отключали его в предустановленных системах для снижения числа обращений в поддержку.
- В Windows 10 и 11 UAC может быть настроен через реестр (ключ
EnableLUAвHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System). - Иконка щита в интерфейсе Windows указывает на действия, требующие подтверждения UAC.
¶Источники
- Microsoft Docs: User Account Control (UAC) overview
- Windows Security Center: How UAC works
- TechNet: Understanding and Configuring User Account Control
- Журнал «Хакер»: UAC — история и эволюция
- Книга «Windows Internals» (7-е издание), раздел о безопасности