Что такое виртуализация uac в диспетчере задач
Что такое виртуализация uac в диспетчере задач
В Windows 7 встроено множество средств защиты пользователей от угроз, не все эти средства понятны пользователя, что в итоге приводит к отключению. Самой первой моей статьей в этом блоге была настройка брандмауера Windows Vista, а не так давно я писал про отключение UAC для определенных приложений. Исследуя аппаратную виртуализацию в Windows 7(известная как XP Mode) я натолкнулся на упоминание о UAC виртуализации. Оказалось, что это простое решение для программ, которые требуют администраторских привилегий.
Причины несовместимости
Что-бы понять в чем заключается виртуализация, нужно сначала понять в чем проблема,зачем программам уровень администратора.
Собственно именно для такого «кривого софта» Microsoft реализовало виртуализацию UAC. В описании на сайте майкрософта написано, что разработчикам не следует во всем полагаться на виртуализацию, а писать свой софт правильно, да кто-ж их слушает.
Суть работы
Все сводится к тому, что UAC перехватывает запросы на запись в защищенные папки (C:\Windows,C:\Program Files\) и реестр, а вместо этого записывает эти данные в папки пользователя. Софту кажется, что запись и чтение ведется из одного места, а на самом деле работа происходит в каталоге пользователя.
Метод действенный, но не стоит его использовать для действительно важного софта. Запись производиться в свободную для записи область жесткого диска, а значит теоретически вирус может повредить или инфицировать эти файлы, а UAC этого даже не заметит.
Как включить UAC виртуализацию
Сначала нужно зайти в диспетчер задач и зайти в меню выбора столбцов. Нас тут интересует пункт «Виртуализация контроля учетных записей»
Теперь находим нужный процесс и нажимаем на нем правой кнопкой мыши. В появившемся окне нужно выбрать «Виртуализация UAC«
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 немного деталей
Здравствуйте уважаемые! Хотелось бы рассказать немного про один из механизмов защиты ОС.
Наверняка многие не по наслышке знаю что это такое, но надеюсь так же многие подчеркнут для себя что то новое из этого топика, и так приступим!
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 не вызывает).
Вадим Стеркин
Недавно я писал в Telegram и ВК о том, что Microsoft не тестирует Windows 10 с отключенным контролем учетных записей. Вдогонку я сделал опрос, где поинтересовался, включен ли UAC у читателей. В варианте для Telegram было три варианта ответа «Да», но только один вариант «Нет».
А следовало бы сделать два варианта, чтобы выяснить, какая доля от 17% выбравших пункт «Нет» пребывает в ложной уверенности 😉
Начиная с Windows 8, перемещение ползунка в нижнее положение в диалоге настройки UAC не отключает контроль учетных записей. Строго говоря, написанное на экране этого и не обещает. Причем в Windows 8 из информационного блока убрали фразу о том, что этот уровень имеет смысл использовать только в том случае, если приложения не поддерживают работу с UAC.
В этом положении отключаются только запросы UAC с вопросом Да/Нет.
Точно ли работает UAC?
В работе контроля учетных записей легко убедиться, сдвинув ползунок вниз и выполнив простые действия для проверки. Например, запустите cmd — в заголовке окна не будет написано «Администратор». Для полноты картины посмотрите в Process Explorer уровень целостности процесса — он будет средним.
Или скопируйте какой-нибудь файл в System32 в проводнике или стороннем файловом менеджере. Появится диалог, где будет кнопка со щитом, ведущая к успеху. Занятно, что запроса UAC вроде как нет, но все-таки от вас требуют подтвердить операцию правами администратора.
Это происходит потому, что по возможности используется токен обычного пользователя, а административный выдается только при запросе процессом полных прав. Когда вы копируете файлы, используются обычные права, но их не хватает для записи в системную папку. Поэтому Windows запрашивает полные права, а файловый менеджер делегирует решение вам.
Виртуализация UAC
Виртуализация UAC тоже работает при отключении уведомлений. У меня самурайский менеджер буфера обмена Charu установлен в Program Files, там же он пытается создавать папки для пользователей и писать данные в них. Но виртуализация UAC перенаправляет все в профиль вне зависимости от положения ползунка.
Как процессы получают полные права
Попробуйте запустить командую строку от имени администратора с ползунком UAC в нижнем положении. В заголовке окна написано «Администратор», но при запуске запрос не появляется. В этом примере вы сами указываете желаемые права, но иногда за вас это делает приложение.
Установщики подавляющего большинства программ прописывают в манифесте уровень highestAvailable. В этом случае у администраторов установщик запускается с полными правами сразу, поэтому запись в системные расположения (Program Files) ведется без подтверждений.
В этом и заключается недостаток работы с отключенными уведомлениями UAC. Вы никак не контролируете запуск процессов с полными правами.
Резюме
Microsoft нашла баланс между комфортом пользователей и совместимостью приложений – старых и современных.
Именно магазинные приложения в Windows 8 подтолкнули к этому изменению!
С реально выключенным контролем учетных записей они не работали, и компания явно не хотела, чтобы ненависть к уведомлениям UAC блокировала встроенныe в ОС приложения и весь магазин. При этом в Microsoft предусмотрели вариант обновления со старой ОС, где единственный пользователь — встроенный администратор.
UAC отключается, конечно, но только политикой или в реестре. (При этом магазинные приложения в Windows 10 все равно запускаются, но виртуализация UAC отключена, конечно.) Однако дома никакого смысла в этом нет. Тем более, что Microsoft даже не рассматривает такой вариант работы.
Этому изменению в Windows уже 6 лет, и я подумывал написать о нем каждый раз, когда видел в форумах людей, пребывающих в ложной уверенности, что контроль учетных записей у них полностью отключен. Вот увидел в очередной раз и написал 🙂 В комментариях хотелось бы услышать тех, кто:
Небольшое объявление для тех, кто не зарегистрирован в Telegram / ВК / Twitter, но все-таки хочет читать, что я там пишу. Я добавил два источника контента — ленту RSS постов Telegram и Яндекс.Дзен.
Метки: UAC, безопасность, нюансы Информация в статье применима к Windows 8 и новее
Об авторе
Вас также может заинтересовать:
Я в Telegram
Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.
комментарий 31
Не отключаю, так как визуально видно, что куда лезет и контролируется достаточно просто. Это не должно «надоедать».
Новый билд Office 365 не ставится, если UAC выключен. Судя по окну, которое выкидывает установщик, проверка встроена на уровне манифеста, поэтому фанатам выключенного UAC остается только Resource Hacker и аналоги.
Я не использую UAC на серверах, потому что очень часто в некоторые системные папки не могу зайти от имени администратора, и когда я жму на ОК в окне UAC, эта падшая женщина явно добавляет учетку администратора в ACL. Потом администратор (т.е. я, например) увольняется, учетка удаляется и в ACL висят тонны орфанов.
Не использую UAC на тестовых машинах, но только не тогда, когда надо протестировать сам UAC 😉
На рабочей машине UAC последнее время тоже выключен (некоторая специфика работы), но использую раздельные учетные записи (обычный юзер для всего, админ для повышения).
Последнее время с грустью наблюдаю, как МС навязывает свое видение работы в ОС. И обязательный UAC малая часть этого. Заявления в стиле «Мы это не тестируем» смотрятся смешно на фоне выхода, например, 1809. Хочется ответить «Можно подумать, что вы с включенным UAC что-то тестируете…»
Oleg Krylov: Я не использую UAC на серверах, потому что очень часто в некоторые системные папки не могу зайти от имени администратора, и когда я жму на ОК в окне UAC, эта падшая женщина явно добавляет учетку администратора в ACL. Потом администратор (т.е. я, например) увольняется, учетка удаляется и в ACL висят тонны орфанов.
Да, это проблема. В принципе, решается запуском от имени адмнистратора, но сторонних ФМ на серверах не держат, а с проводником это неудобно.
Есть еще способ блокнот (или так, кто не в ТГ) для разовых задач. Но раз ты ходишь в системные папки часто, тоже не очень удобно.
Есть же PowerShell, ну или cmd, на худой конец.
Интересности начинаются при доступе по smb. Сразу получаешь наивысшие привилегии, которые у тебя есть.
Отключаю UAC ползунком вниз. Этого мне достаточно, чтобы не появлялись каждый раз окна с уведомлениями, которые мне мешают.
Отключены уведомления, юак включен.
Есть ещё те, кто отключают UAC. Странно. UAC позволяет точно знать, нужны запускаемому приложению повышенные привилегии, или нет.
Николай
Вне зависимости ОСи отключено всё, брандмауэр, защитник виндовс ну и uac естественно
Надеюсь, курсивом выделен сарказм.
Странно для читателя этого блога
Николай
Ничего странного. Моё железо исключительно для работы с (прогами-репаками) и тому подобного…
мешать не должно ничего.
Дня выхода в интернет, авторизации на разных ресурсах, написания комментариев оно не используется? Ну, ок:)
Николай
Вадим, имею в работе два системника и два ноутбука))
Так вот и непонятно, у вас везде отключены защитные механизмы или только на одном. Если на одном, то почему вы именно его выпятили в первом комментарии (без пояснений специфики). Если на всех, то к чему тогда рассказы про специфику…
В общем, излагайте внятно сразу, и вас будет намного проще понять.
Dmitry Yanchenko
А можно ли создать «белый список» программ, для которых не будут всплывать уведомления UAC?
Например, Total Commander мне часто нужен и от него мне каждый раз надоедает их гасить…
Dmitry Yanchenko
О, Вадим ещё живой.
Пришлось таки пересесть на эту десятку, UAC естественно не трогал, вполне нормальный механизм. А вот встроенный антивирус не нужон, вырубил. И конечно же редакция LTSC, в ней раза в три меньше хлама )
Поздравляю с прогрессом лол
Еще стоит накатить батник от ВестЛайфа (WestLife).
Вот кстати без комментариев к старым статьям и не написать, что статья https://www.outsidethebox.ms/14267/ устарела, и пакета Inbox Apps Bundle Insider Preview на сайте майкрософт больше нет, да его нигде нет.
Виталий, есть другие способы написать, и даже получить ответ.
И да, к предыдущей сборке набор был.
Не знаю, баг это или фича, но некоторое время назад полтора-два года назад на Windows 10 не устанавливались драйвера Nvidia на видеокарту с выключенными запросами UAC. Просто посреди установки драйверов вываливалась ошибка — не удалось установить (без каких либо подробностей). При том установка драйверов всегда запускалась с правами администратора. Длилось это как миниум в течении 2х или 3х билдов Windows 10 и штук 5-6 версий драйверов. Может и сейчас так, просто не отключаю уведомления с год-полтора…
Возможно, в Nvidia тоже не тестируют с отключенным UAC 🙂
UAC — адское изобретение майкрософт, ничего, кроме потери времени не приносящее системным администраторам.
Зато по таким заявлениям можно сразу определить, знает администратор матчасть или нет. Ликбез в связанных статьях.
Я ни разу не системный администратор, но ОС и весь софт на свой компьютер ставлю сам. Работаю с видео (After effects, Premiere …) по 10-12 часов в сутки. Система должна работать так же бесперебойно как и я.
UAC всегда включен, переключатель в рекомендуемом положении. Вообще все переключатели в ОС предпочитаю оставлять в рекомендуемом положении; если инженеры в МС за меня подумали, то нафига мне тратить мозг на тоже самое? Я прислушаюсь и оставлю себе время для основной работы.
По первой, когда увидел работу UAC, все эти уведомления мешали. Но научился с ними жить, и даже помогает, сразу видно, что кто-то в компьютере хочет совершить какую-то пакость. Сейчас набор запускаемых программ ограничен (не программно, а только моими потребностями), и уведомлений UAC почти не вижу. Иногда вдруг вспоминаю про них, пугаюсь, и лезу проверять, «включен ли UAC, что-то давно не было его видно.»
Вообще у меня паранойя развилась до такой степени, что, покупая на ebay, я из всплывающего окна оплаты paypal копирую URL в блокнот и исследую посимвольно…
Ринат, да, согласен, что если не ковырять систему каждый день, то UAC почти не виден. Это не совсем мой случай, но в таком режиме я тоже работаю иногда.
UAC отключаю. Во-первых, я привык к некоторым программам, которым нет замены или они просты и легки, в отличии от современных аналогов. Например это программка Scroll, позволяющая скроллить мышкой то окно, над которым находится курсор. Во-вторых, не доверяю M$ и лучше пусть за доступом к значимым областям ОС следит HIPS Comodo. Свидетелем огромного количества заражений я уже был, когда UAC включённый на компьютерах доменной политикой, пропускал пакостные вирусы и зловреды. Кстати, на то время у нас в сети использовался майкрософтовский антивирь. В-третьих, приходится создавать мульти-загрузочные флешки. И вот с UAC такие программы работают некорректно. В частности xBoot зависал на пол пути создания флешки и Qemu из его состава работал не пойми как.
Akelman: Например это программка Scroll, позволяющая скроллить мышкой то окно, над которым находится курсор.
Вы не поверите, но в Windows 10 это есть из коробки 🙂
Обожаю такие комментарии от пользователей Windows 🙂
Akelman: Свидетелем огромного количества заражений я уже был, когда UAC включённый на компьютерах доменной политикой, пропускал пакостные вирусы и зловреды.Кстати, на то время у нас в сети использовался майкрософтовский антивирь
UAC не предназначен для защиты от вирусов и зловредов, и списывать на него прорехи в системе безопасности вашей инфраструктуры некорректно, равно как и на «майкрософтовский антивирь».
Akelman: В-третьих, приходится создавать мульти-загрузочные флешки. И вот с 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.
Чтобы лучше ознакомиться с каждым компонентом, просмотрите приведенную ниже таблицу.
Пользователь
Пользователь выполняет операцию, для которой нужны привилегии
Если операция вносит изменения в файловую систему или реестр, вызывается виртуализация. Все остальные операции вызывают ShellExecute.
ShellExecute вызывает CreateProcess. ShellExecute проверяет, нет ли ошибки ERROR_ELEVATION_REQUIRED в CreateProcess. Если ошибка обнаружена, ShellExecute вызывает службу сведений о приложениях для выполнения требуемой задачи с запросом на повышение прав.
Если приложение требует повышения прав, CreateProcess отклоняет вызов с ошибкой ERROR_ELEVATION_REQUIRED.
Система
Служба сведений о приложениях
Системная служба, позволяющая запускать приложения, для выполнения которых требуется одна или несколько повышенных привилегий или прав пользователя, например, локальные задачи администрирования и приложения, требующие более высокого уровня целостности. Служба информации о приложениях помогает запускать такие приложения, создавая новый процесс для приложения с помощью маркера полного доступа на уровне пользователя с правами администратора при необходимости повышения прав и (в зависимости от групповой политики) в случае согласия пользователя.
Повышение прав для установки ActiveX
Если технология ActiveX не установлена, система выбирает уровень ползунка UAC. Если технология ActiveX установлена, будет выбран параметр групповой политики Контроль учетных записей: переход на безопасный рабочий стол при выполнении запроса на повышение прав.
Выбор уровня ползунка UAC
Ползунок UAC позволяет выбрать один из четырех уровней уведомления.
Рекомендуется, если вы часто устанавливаете новое программное обеспечение или посещаете незнакомые веб-сайты.
Рекомендуется, если вы не часто устанавливаете приложения или посещаете незнакомые веб-сайты.
Не рекомендуется. Выбирайте этот вариант, только если затемнение рабочего стола компьютера занимает много времени.
Не рекомендуется по соображениям безопасности.
Безопасный рабочий стол включен
Выбран параметр групповой политики Контроль учетных записей: переход на безопасный рабочий стол при выполнении запроса на повышение прав.
Если включен безопасный рабочий стол, все запросы на повышение прав поступают на него независимо от параметров политики поведения запросов для администраторов и обычных пользователей.
Если безопасный рабочий стол не включен, все запросы на повышение прав поступают на интерактивный рабочий стол пользователя. При этом используются индивидуальные параметры для администраторов и обычных пользователей.
CreateProcess вызывает AppCompat, Fusion и функцию обнаружения установщика, чтобы определить, не требуется ли приложению повышение прав. Затем файл проверяется для определения запрошенного уровня выполнения, данные о котором хранятся в манифесте приложения для данного файла. Выполнение CreateProcess завершается сбоем, если запрошенный уровень выполнения, указанный в манифесте, не соответствует маркеру доступа, и CreateProcess возвращает ошибку (ERROR_ELEVATION_REQUIRED) в ShellExecute.
В базе данных совместимости приложений хранятся сведения в виде записей об исправлении совместимости для каждого приложения.
В базе данных Fusion хранятся сведения из манифестов приложений, содержащие описание этих приложений. Схема манифеста обновлена — в нее добавлено новое поле запрошенного уровня выполнения.
Обнаружение установщика
Функция обнаружения установщика позволяет находить файлы установки, благодаря чему можно избежать выполнения установки без ведома и согласия пользователя.
Технология виртуализации позволяет исключить ситуации, когда сбой несовместимых приложений остается незамеченным или когда сбой происходит по неизвестным причинам. UAC также обеспечивает виртуализацию файлов и реестра и ведение журнала приложений, выполняющих запись в защищенные области.
Файловая система и реестр
При виртуализации файлов и реестра для каждого пользователя происходит перенаправление запросов на запись в файлы и реестр для каждого компьютера в эквивалентные расположения пользователей. Запросы на чтение перенаправляются сначала в виртуализированное расположение пользователя, а затем в расположение для компьютера.
Ползунок никогда не отключает UAC полностью. Если задано значение Никогда не уведомлять:
Чтобы полностью отключить UAC, необходимо отключить политику Контроль учетных записей: все администраторы работают в режиме одобрения администратором.
Некоторые приложения универсальной платформы Windows могут не работать при отключении UAC.
Виртуализация
Системные администраторы в среде предприятия стараются защитить системы, поэтому многие бизнес-приложения разработаны в расчете на использование только маркера доступа обычного пользователя. В результате вам не нужно заменять большую часть приложений в случае включения UAC.
Windows 10 и Windows 11 включают технологию виртуализации путей в реестре и файловой системе для несовместимых с UAC приложений, для правильной работы которых требуется маркер доступа администратора. При попытке несовместимого с UAC административного приложения выполнить запись в защищенную папку, например «Program Files», UAC предоставляет приложению собственное виртуализированное представление ресурса, который оно пытается изменить. Эта виртуализованная копия сохраняется в профиле пользователя. Такая стратегия предполагает создание отдельной копии виртуализированного файла для каждого пользователя, запускающего несовместимое приложение.
Большинство задач приложения выполняются надлежащим образом благодаря применению функций виртуализации. Однако, несмотря на то что виртуализация позволяет работать большинству приложений, она является лишь временным решением проблемы. Разработчики приложений должны как можно скорее изменить свои приложения, обеспечив их совместимость, а не полагаться на виртуализацию файлов, папок и реестра.
Виртуализацию не следует применять в описанных ниже случаях.
Виртуализация не применяется к приложениям с повышенными правами, которые выполняются с использованием маркера полного доступа на уровне администратора.
Виртуализация поддерживает только 32-разрядные приложения. 64-разрядные приложения без повышенных прав просто получают сообщение об отказе в доступе при попытке получения дескриптора (уникального идентификатора) для объекта Windows. Собственные 64-разрядные приложения Windows должны быть совместимы с UAC и должны выполнять запись данных в соответствующие расположения.
Виртуализация отключается, если приложение содержит манифест приложения с атрибутом запрошенного уровня выполнения.
Уровни выполнения запросов
Манифест приложения представляет собой XML-файл, описывающий и определяющий общие и закрытые параллельные сборки, к которым приложение должно осуществить привязку во время выполнения. Манифест приложения включает записи для целей совместимости приложений UAC. Административные приложения, содержащие запись в манифесте приложения, запрашивают разрешение пользователя на доступ к маркеру доступа пользователя. Если запись в манифесте приложения отсутствует, большинство административных приложений могут работать без изменений с помощью исправлений совместимости приложений. Исправления совместимости приложений – это записи базы данных, обеспечивающие нормальную работу несовместимых с UAC приложений.
Для всех совместимых с UAC приложений следует добавить запрошенный уровень выполнения в манифест приложения. Если приложению требуется административный доступ к системе, указание запрошенного уровня выполнения «требуется администратор» для приложения гарантирует, что система определит эту программу как административное приложение и выполнит необходимые действия по повышению прав. Запрошенные уровни выполнения определяют привилегии, необходимые для приложения.
Технология обнаружения установщика
Программы установки представляют собой приложения, разработанные для развертывания программного обеспечения. Большинство программ установки выполняют запись в системные папки и разделы реестра. Как правило, выполнять запись в эти защищенные системные расположения может только администратор с помощью технологии обнаружения установщика, что означает, что обычные пользователи не имеют достаточных прав доступа для установки программ. Windows 10 и Windows 11 эвристически определяют программы установки и запрашивают учетные данные администратора или согласие администратора для запуска с привилегиями доступа. Кроме того, Windows 10 и Windows 11 эвристически определяют обновления и программы, которые выполняют удаление приложений. Одной из целей разработки UAC является предотвращение запуска установки незаметно для пользователя и без его согласия, так как программы установки выполняют запись в защищенные области файловой системы и реестра.
Технология обнаружения установщика применяется только к:
Перед созданием 32-разрядного процесса следует определить, не является ли он программой установки. Для этого проверяются следующие атрибуты:
Ключевые слова и последовательности байтов получены на основании изучения общих характеристик различных установщиков.
Чтобы система обнаружения установщика могла определить программы установки, должен быть включен параметр политики «Контроль учетных записей: обнаружение установки приложений и запрос на повышение прав». Дополнительные сведения см. в разделе Параметры политики безопасности контроля учетных записей.