UAC немного деталей
Здравствуйте уважаемые! Хотелось бы рассказать немного про один из механизмов защиты ОС.
Наверняка многие не по наслышке знаю что это такое, но надеюсь так же многие подчеркнут для себя что то новое из этого топика, и так приступим!
UAC (User Account Control) — это средство контроля пользовательских учетных записей, впервые появившийся в Windows Vista.
Главная задача UAC была — заставить всех работать как обычный стандартный системный пользователь, т.к. работа с правами администратора очень не безопасна. Все мы прекрасно знаем, что многие приложения с которыми мы работаем могут содержать «уязвимости» и их же часто используют злоумышленники. Соответственно работая это приложение с правами администратора (хотя за частую приложениям не требуются права такого уровня), может писать в системные папки абсолютно прозрачно для пользователя, чего нам собственно и не нужно. Для воизбежания подобных ситуаций собственно и был призван на помощь UAC.
Он не только защищает вас от злонамеренного кода, а так же в какой то мере оказывает совместимость со «старыми» приложениями. Он позволяет писать «старым» приложения в системные папки, а если быть точнее эти приложения просто так думают что пишут в системные папки, но на самом деле пишут в виртуализированные папки, в следствии чего приложения работают вполне корректно.
Собственно когда вы заходите в систему, создаются 2а маркера доступа: административный и обычный.
Административный лежит в загашнике, а вы работаете под обычным аккаунтом. Далее если вам потребуется повышение привилегий, возникает защищенный рабочий стол и внутри этой сессии вы делаете выбор «Да, я согласен» или «Отмена». Это сделано для предотвращения спуфинг атак. Если в систему заходит обычный пользователь, то для него административный маркер не создается, а только обычный. Затем если ему нужно повысить свои привилегии, снова появляется защищенный рабочий стол в котором запрашивается пароль административной учетной записи. После чего для приложения формируется административный маркер доступа. По завершению приложения, административный маркер доступа удаляется.
Виртуализация UAC
Хочу напомнить, что отключая user account control вы подвергаете всю систему опасности и превращаете вашу ОС в windows XP, а не просто отключаете надоедливые окошки.
При этом отключая UAC вы выключаете windows resource protection, который собирает все необходимые для «жизни» файлы в хранилище, что бы после критического сбоя восстановить поврежденные файлы.
Виртуализация осуществятся в режиме ядра.
* Файловая система: драйвером luafv.sys.
* Реестр: встроенными средствами.
Перенаправляемые каталоги системы:
\Program Files, \Windows, \Windows\System32.
Исключения: Системные *.exe и *.dll.
Перенаправляемые разделы реестра:
HKLM\Software
Исключения: Некоторые ключе подраздела Microsoft.
Приложение работающее с обычными правами, перенаправляет в:
* Запись:
\Users\\AppData\Local\Virtual Store
HKCU\Software\Classes\VirtualStore
Что совершенно прозрачно происходит для самого приложения, т.е. приложение продолжает думать что оно пишет к примеру в \Program Files.
* Чтение:
Сначала используется зона пользователя, затем глобальное расположение.
Повышение привилегий для определенного приложения:
* В свойствах ярлыка поставить галочку «Запускать от имени администратора».
* Эвристическим инсталлятором.
* Явным запросом пользователя.
* В манифесте.
Ну и в довершение неполный список действий, вызывающих сообщение User Account Control:
* Изменения в каталогах %SystemRoot% и %ProgramFiles% — в частности, инсталляция/деинсталляция ПО, драйверов и компонентов ActiveX; изменение меню «Пуск» для всех пользователей.
* Установка обновлений Windows, конфигурирование Windows Update.
* Перенастройка брандмауэра Windows.
* Перенастройка UAC.
* Добавление/удаление учётных записей.
* Перенастройка родительских запретов.
* Настройка планировщика задач.
* Восстановление системных файлов Windows из резервной копии.
* Любые действия в каталогах других пользователей.
* Изменение текущего времени (впрочем, изменение часового пояса UAC не вызывает).
Uac virtualization что это

Причины несовместимости
Что-бы понять в чем заключается виртуализация, нужно сначала понять в чем проблема,зачем программам уровень администратора.
Собственно именно для такого «кривого софта» Microsoft реализовало виртуализацию UAC. В описании на сайте майкрософта написано, что разработчикам не следует во всем полагаться на виртуализацию, а писать свой софт правильно, да кто-ж их слушает.
Суть работы
Все сводится к тому, что UAC перехватывает запросы на запись в защищенные папки (C:\Windows,C:\Program Files\) и реестр, а вместо этого записывает эти данные в папки пользователя. Софту кажется, что запись и чтение ведется из одного места, а на самом деле работа происходит в каталоге пользователя.
Метод действенный, но не стоит его использовать для действительно важного софта. Запись производиться в свободную для записи область жесткого диска, а значит теоретически вирус может повредить или инфицировать эти файлы, а UAC этого даже не заметит.
Как включить UAC виртуализацию
Сначала нужно зайти в диспетчер задач и зайти в меню выбора столбцов. Нас тут интересует пункт «Виртуализация контроля учетных записей»
Теперь находим нужный процесс и нажимаем на нем правой кнопкой мыши. В появившемся окне нужно выбрать «Виртуализация UAC«
Как работает контроль учетных записей
Область применения
Контроль учетных записей (UAC) является основополагающим компонентом общей концепции безопасности Майкрософт. UAC помогает уменьшить воздействие вредоносных программ.
Процесс UAC и принципы взаимодействия
Каждое приложение, для которого требуется маркер доступа администратора, должно сделать запрос на продолжение. Существует только одно исключение — это взаимосвязь между родительским и дочерним процессами. Дочерние процессы наследуют маркер доступа пользователя от родительского процесса. При этом как родительский, так и дочерний процессы должны иметь один и тот же уровень целостности. Windows защищает процессы, указывая их уровни целостности. Уровень целостности является мерой доверия. Приложение с высоким уровнем целостности — это приложение, в котором выполняются задачи по изменению системных данных, например приложение для разбивки диска на разделы. Приложение с низким уровнем целостности выполняет задачи, которые могут потенциально подвергать риску операционную систему (например, веб-браузер). Приложения с более низким уровнем целостности не могут изменять данные в приложениях с более высоким уровнем целостности. Когда обычный пользователь пытается запустить приложение, для которого требуется маркер доступа администратора, служба UAC требует, чтобы пользователь предоставил действительные учетные данные администратора.
Для лучшего понимания этого процесса рассмотрим процесс входа в Windows.
Процесс входа
На схеме ниже изображено, чем процесс входа для администратора отличается от процесса входа для обычного пользователя.
По умолчанию как обычные пользователи, так и администраторы получают доступ к ресурсам и запускают приложения в контексте безопасности обычного пользователя. При входе пользователя в систему для него создается маркер доступа. Маркер доступа содержит сведения об уровне доступа, предоставленного пользователю, включая специальные идентификаторы безопасности (SID) и привилегии в Windows.
При входе администратора для него создаются два отдельных маркера доступа — маркер доступа обычного пользователя и маркер доступа администратора. Маркер доступа обычного пользователя содержит те же сведения о пользователе, что и маркер доступа администратора, но в нем отсутствуют привилегии администратора Windows и идентификаторы безопасности. Маркер доступа обычного пользователя используется для запуска приложений, не выполняющих задач администрирования (обычные пользовательские приложения). Маркер доступа обычного пользователя используется для последующего отображения рабочего стола (explorer.exe). Explorer.exe является родительским процессом, от которого все другие запускаемые пользователем процессы наследуют свой маркер доступа. В результате все приложения запускаются от имени обычного пользователя, если пользователь не предоставит согласие или учетные данные для подтверждения права использовать маркер полного доступа на уровне администратора для данного приложения.
Пользователь, который является членом группы «Администраторы», с помощью маркера доступа обычного пользователя может входить в систему, просматривать интернет-страницы и читать электронную почту. Если же администратору необходимо выполнить задачу, для которой требуется маркер доступа администратора, Windows 10 или Windows 11 автоматически запрашивает согласие пользователя. Этот запрос называется запросом на повышение прав. Его работу можно настроить с помощью оснастки «Локальная политика безопасности» (Secpol.msc) или групповой политики. Дополнительные сведения см. в разделе Параметры политики безопасности контроля учетных записей.
Пользовательский интерфейс UAC
При включенном UAC пользовательский интерфейс для обычных пользователей отличается от интерфейса для администраторов в режиме одобрения администратором. Рекомендуемый и более безопасный метод запуска Windows 10 или Windows 11 — сделать учетную запись основного пользователя учетной записью обычного пользователя. Запуск от лица обычного пользователя позволяет максимально повысить уровень безопасности управляемой среды. Используя встроенный компонент повышения прав UAC, обычный пользователь может без труда выполнять задачи администрирования путем ввода действительных учетных данных учетной записи локального администратора. По умолчанию встроенным компонентом повышения прав UAC для обычных пользователей является запрос на ввод учетных данных.
Альтернативой запуску от лица обычного пользователя является запуск от лица администратора в режиме одобрения администратором. Благодаря встроенному компоненту повышения прав UAC члены локальной группы «Администраторы» могут без труда выполнять задачи администрирования, предоставив соответствующее подтверждение. По умолчанию встроенным компонентом повышения прав UAC для учетной записи администратора в режиме одобрения администратором является запрос на продолжение.
Запрос на продолжение и запрос на ввод учетных данных
При включенном UAC Windows 10 или Windows 11 запрашивает согласие или учетные данные действительной учетной записи локального администратора перед запуском программы или задачи, для которой требуется маркер полного доступа на уровне администратора. Этот запрос гарантирует невозможность автоматической установки вредоносных программ.
Запрос на продолжение
Запрос на продолжение выводится при попытке пользователя выполнить задачу, для которой требуется маркер доступа на уровне администратора. Ниже приведен пример запроса на продолжение UAC.
Запрос на ввод учетных данных
Запрос на ввод учетных данных выводится при попытке обычного пользователя выполнить задачу, для которой требуется маркер доступа на уровне администратора. Ввод учетных данных администратора также может потребоваться в случае, если для параметра политики Контроль учетных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором задано значение Запрос на ввод учетных данных.
Ниже приведен пример запроса на ввод учетных данных UAC.
Запросы на повышение прав UAC
Запросы на повышение прав UAC обозначаются цветом для каждого конкретного приложения, позволяя быстро оценить потенциальную угрозу для его безопасности. При попытке запустить приложение с маркером полного доступа на уровне администратора Windows 10 или Windows 11 сначала анализирует исполняемый файл, чтобы определить его издателя. Сначала приложения разделяются на три категории в зависимости от издателя файла: Windows 10 или Windows 11, подтвержденный издатель (подписанный) и неподтвержденный издатель (неподписанный). На следующей схеме показано, как Windows определяет, какой цвет запроса на повышение прав будет отображаться для пользователя.
Запросы на повышение прав обозначаются цветом следующим образом:
Значок щита
Некоторые компоненты панели управления, например Дата и время, выполняют как административные операции, так и операции обычного пользователя. Обычные пользователи могут просматривать время и изменять часовой пояс, но для изменения локального системного времени требуется маркер полного доступа на уровне администратора. Ниже приводится снимок экрана компонента панели управления Дата и время.
Значок щита на кнопке Изменить дату и время указывает на то, что процессу требуется маркер полного доступа на уровне администратора и что будет выведен запрос на повышение прав UAC.
Защита запроса на повышение прав
Процесс повышения прав дополнительно защищен тем, что запрос направляется на безопасный рабочий стол. Запрос на продолжение и запрос на ввод учетных данных по умолчанию отображаются в Windows 10 и Windows 11 на безопасном рабочем столе. Получить доступ к безопасному рабочему столу могут только процессы Windows. Для повышения уровня безопасности рекомендуется включить параметр политики Контроль учетных записей: переход на безопасный рабочий стол при выполнении запроса на повышение прав.
Когда исполняемый файл выполняет запрос на повышение прав, происходит переход с интерактивного рабочего стола (рабочего стола пользователя) на безопасный рабочий стол. При переходе на безопасный рабочий стол уменьшается яркость рабочего стола пользователя и выводится запрос на повышение прав. Дальнейшая работа может быть продолжена только после ответа на запрос. После нажатия кнопки Да или Нет происходит возвращение на рабочий стол пользователя.
Вредоносные программы могут имитировать безопасный рабочий стол, но если для параметра политики Контроль учетных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором задано значение Запрос на продолжение, они не смогут получить повышение прав при нажатии пользователем кнопки Да во время имитации. Если для параметра политики задано значение Запрос на ввод учетных данных, то вредоносные программы, имитирующие такой запрос, могут получить учетные данные от пользователя. Однако при этом они не получают более высокий уровень привилегий, а система имеет другие средства защиты, которые не позволяют им взять на себя управление пользовательским интерфейсом даже при раскрытии пароля.
И хотя вредоносная программа может имитировать безопасный рабочий стол, эта проблема не возникнет, если пользователь ранее не установил вредоносную программу на компьютер. Процессы, для которых требуется маркер доступа на уровне администратора, не могут быть установлены автоматически при включенном UAC, поэтому пользователь должен явно дать согласие нажатием кнопки Да или путем ввода учетных данных администратора. Определенное поведение запроса на повышение прав UAC зависит от групповой политики.
Архитектура UAC
На приведенной ниже схеме показана архитектура UAC.
Чтобы лучше ознакомиться с каждым компонентом, просмотрите приведенную ниже таблицу.
| Компонент | Описание |
|---|---|
| Пользователь | |


