что такое uac в windows 10

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 — не лишний компонент безопасности ОС Windows последних версий и пользователи приходят к этой мысли, борясь с malware и вирусами. Программистам, в свою очередь, стоит грамотно подходить к написанию приложений и принимать во внимание наличие такого «обстоятельства».

На хабре и вообще в сети много статей на тему «Как отключить UAC», «Как обойти UAC» и др. Но зачем отключать, функция ведь полезная? Зачем обходить, мы ведь не злоумышленники?

Ниже я расскажу как это делать в Вашем приложении.

Манифест

Для начала рассмотрим самый простой и некрасивый, по моему мнению, вариант — редактирование манифеста. Чем он плох? Тем, что подходит только для тех приложений, которым всегда нужно иметь привелегии администратора. Как это будет выглядеть? Пользователь при запуске вашего приложения получить знакомое окошко, в котором ему нужно будет подтвердить разрешение на выполнение программой действий с привилегиями администратора. И так каждый раз при запуске программы. В принципе, вариант приемлим для программ, которые запускаются нечасто и в одном экземпляре.

Сразу нужно сказать, что в автозапуск (не уверен, что всеми способами, но по крайней мере, через реестр) такие приложения помещать нельзя. Windows их просто прихлопнет на старте, не показав никакого окна UAC. Может быть, в этом случае есть смысл использовать технологии служб Windows.

Итак, реализация (взято отсюда)

Другие решения

Проверка на наличе прав

В первую очередь после запуска приложения или в тех местах, где это требуется, нужно проверить не запущены ли мы уже с правами администратора (вдруг юзер уже отключил UAC). Если это так, то большинства последующих манипуляций можно будет избежать. Проверка делается просто (да, кстати, код здесь и дальше на C#):

Запуск процесса с запросом прав

Допустим, нет у нас прав. Что же дальше? Приложение, запущенное с какими-либо правами, не может их изменить в процессе своей работы. Для выполнения действий с повышенными привилегиями необходимо запускать новый процесс с запросом прав. Как вообще это сделать:

2. Запуск собственного дополнительного приложения с параметрами. Допустим, вам ну очень нравится использовать WinAPI и не хочется разбиратся с системными утилитами или ваша задача не столь банальна, как приведенная выше. В таком случае вы можете написать маленькую консольную утилиту, которая будет выполнять нужные вам действия. Но это и лишние затраты времени, и необходимость поддержки дополнительной утилиты, интерфейсов взаимодействия и т.д.

2а. Дополнительное приложение может запускатся только один раз и продолжать висеть в памяти. Организовав общение с ним из основного приложения, вы можете выполнять нужные вам административные задачи без последующих запросов прав. Но это еще более сложный вариант. Опять же таки, в этом случае есть смысл посмотреть в сторону служб Windows в качетсве дополнительного приложения, которые по-умолчанию запускаются с привилегиями администратора.

3. Запуск еще одного экземпляра основного приложения с параметрами. Допустим, у вас есть пять простых действий, которые нужно выполнять с правами администратора. Забейте для них параметры командной строки вашего же приложения и на запуске проверяйте их наличие. Получив какой-либо из этих параметров, выполните соответствующее действие и завершите работу. Данный вариант, судя по StackOverflow является самым распространенным, по скольку код остается в рамках одного приложения, да и реализуется все просто.

4. Введение двух режимов работы приложения. Если приложению права администратора необходимы редко, то стоит ввести два режима работы: обычный и привилегированый. В обычном режиме (а мы это определяем с помощью указанной выше функции IsAdmin()) операции, требующие права администратора, остаются заблокированными, но у пользователя появляется возможность перезапустить приложение с правами админа и получить доступ к забокированному функционалу. В привилегированном режиме (IsAdmin() возвращает true) мы не блокируем функционал.

Таким образом, запрос появляется перед пользователем только один раз и в процессе подальшей работы с приложением больше не будет отвлекать. Если же пользователь отключил UAC, то об «обычном» режиме он даже не узнает.

Данный подход требует немного усилий на начальном этапе, но дальше позволяет писать приложение без каких-либо ограничений и вынесений кода в другие программы и блоки. Небольшой пример будет рассмотрен ниже.

Оформление приложений

Всем нам хочется писать стильные и красивые оконные приложения и в вопросах использования UAC без фирменного щитка на контролах ну никак не обойтись.

Такой щит размещается на кнопках, link-label’ах или других элементах управления, после нажатия на которые пользователь увидит запрос от UAC. К счастью, нам не придется таскать повсюду картинку, поскольку в системе, как ни странно, она уже есть и ее можно получить.

Для WinForms-приложений можно указать системе разместить иконку щита на кнопке.

Для тех, кто уже отказался от WinForms и перешел к разработке приложений с помощью WPF, также есть решение. Для того, чтобы получить ImageSource иконки и указать ее в каком-либо контроле, можно использовать следующий код.

Пример

Рассмотрим теперь маленький пример, реализующий изложенные выше принципы.
В приложении имеется кнопка, которая должна выполнять действия с правами администратора (у меня она просто отображает MessageBox). Если приложение уже запущено с правами, то мы оставляем ее доступной. Если же нет, кнопку блокируем и отображаем панельку с предупреждением и другой кнопкой, позволяющей перезапустить приложение в привилегированном режиме. На кнопке отображаем православную иконку щита.

Кроме того, окно приложения после перезапуска отображается в том же месте и с теми же размерами благодаря передаче контекста через командную строку.

Конечно, пример простейший, но он в общих чертах демонстрирует самый близкий мне подход к решению проблемы взаимодействия с UAC. Код примера на github.

Буду рад услышать ваши замечания, коментарии и пожелания.

Источник

Как отключить UAC в Windows 10 — способы включения и отключения защиты

Надоедливые всплывающие сообщения от контроля учётных записей часто преследуют обычных пользователей Windows. UAC старается повысить безопасность, чтобы вашему компьютеру ничего не грозило, но получается так, что своими постоянными оповещениями он только отталкивает от себя. Как бы операционная система ни хотела обезопасить компьютер пользователей, иногда чрезмерная защита становится очень надоедливой, и появляется необходимость её отключить.

Что такое Windows UAC

Windows UAC — это контроль ваших учётных записей. Для пользователя он служит защитой, следит за совместимостью старых программ, помогает нам уберечься от вирусов, нежелательных программ, которые у нас могут запуститься, и различных приложений. Windows UAC работает постоянно. Каждый раз, когда вы будете запускать программу на своём компьютере, контроль прервёт запуск, и всплывёт окно с вопросом о разрешении системе открыть нужную программу. Если вы не имеете администраторских прав, система запросит вас ввести пароль.

Пример того, как выглядит всплывающее сообщение:

Всплывающее оповещение при попытке внести изменения на компьютер

Почему не стоит полностью выключать защиту

К сожалению, эта технология вызывает у пользователя лишь раздражение. Несмотря на то что UAC повышает безопасность вашего ПК, не позволяет запуститься вредоносным программам и уберегает от вирусов, пользователи не любят назойливых оповещений, мешающих работать. В основном причина, по которой требуется отключить контроль, — это необходимость работать с несколькими программами одновременно. В таком случае UAC начнёт раздражать и мешать вашей работе.
Компания Microsoft не рекомендует полностью отключать службу контроля, потому что существует риск случайно запустить шпионскую программу или загрузить вирусы, которые могут быстро заразить ваш компьютер и всю операционную систему. В конце концов, включение UAC в систему Windows было нужно как раз для защиты.

Отключение службы в панели управления

UAC в системе включён по умолчанию. Разберём, как отключить надоедливые оповещения при помощи панели управления.

Выбираем «Панель управления», чтобы перейти к панели

Поиск учётных записей пользователя среди элементов панели управления

Изменяем параметры контроля учётных записей

Выбор параметра: сдвигаем ползунок в самый низ, чтобы полностью отключить защиту

Как выключить с помощью файла реестра

Выбираем в списке «Выполнить», чтобы перейти к одноимённой строке

Прописываем команду regedit, чтобы перейти к реестру

Находим запись EnableLUA, нужно будет её отредактировать

Изменяем значение с 1 на 0, чтобы отключить UAC

Чтобы изменения вступили в силу, перезагрузите ПК

Как включить/отключить службу при помощи командной строки

Отключение и включение UAC возможно также через консоль.

Нужно выбрать «Командная строка» в режиме администратора, чтобы перейти к консоли

Изменяем значения, чтобы отключить UAC

Можно ли выключить UAC через консоль PowerShell

Находим PowerShell в поисковой строке Windows

Меняем необходимые значения с 1 на 0, чтобы отключить контроль записей

Перезапуск компьютера с помощью специальной команды PowerShell

Настройка UAC

В настройках контроля существует четыре уровня защиты. Прокрутите их колесиком мыши, и с правой стороны вы сможете прочитать описание для любого из четырёх параметров.

Первый уровень: «Всегда уведомлять в следующих случаях»

Второй уровень: «Уведомлять только при попытках программ внести изменения в компьютер»

Третий уровень: «Уведомлять при попытках приложений внести в компьютер изменения, при этом не затемняя рабочий стол»

Четвёртый уровень: полное отключение защиты UAC

Если вы захотите выбрать такой вариант, то больше не будете получать от системы контроля никаких уведомлений. Сам параметр указывает на то, что защиту выключать не рекомендуется.

Видео: как отключается контроль учётных записей в Windows 10

Если вы хотите поподробнее познакомиться с отключением и настройкой UAC в Windows 10, можете ознакомиться с видеороликом, в котором рассказывается, как это делается.

Правильно установленные настройки контроля учётных записей позволяют обеспечить желаемый уровень безопасности ПК. Главное — помнить, что UAC является способом защиты вашей системы и поддержания её в безопасности. Контроль активировали, чтобы защищать от вирусов, вредоносного программного обеспечения; его всегда можно включить обратно, и тогда беспокоиться о вашей системе не придётся.

Источник

Как отключить UAC в Windows 10? Три способа

Контроль учетных записей (UAC) — служба Windows, сообщающая пользователя о совершении действий, для которых требуются права администратора. Если вы достаточно квалифицированы и абсолютно уверены в программах, которые устанавливаете на свой ПК, без этой службы можно обойтись. Из этой статьи вы узнаете как отключить UAC в Windows 10.

Основное назначение UAC — защита операционной системы от установки и запуска вредоносного ПО. Также служба не позволяет совершить потенциально опасные действия (внести изменения в реестр, удалить или отредактировать системные файлы) без ввода пароля администратора. По умолчанию эта служба активна и все действия, имеющие возможность повлиять на работу Windows, не могут быть выполнены пользователями, не имеющих на это достаточно прав.

Зачем отключать UAC?

Служба замедляет работу пользователя при установке большого количества программ или внесении множества изменений в реестр или в системные файлы. Если ее отключить, перед каждым из таких действий Windows 10 перестанет выдавать запрос подтверждения прав администратора.

Отключение UAC снижает защиту операционной системы, поэтому не следует избавляться от этой службы без крайней нужды.

Есть три пути отключения службы контроля учетных записей:

Независимо от выбранного способа, чтобы служба перестала работать, необходимо перезагрузить ПК после внесения изменений.

Отключение UAC через Панель управления в Windows 10

Использование «Панели управления» — самый наглядный способ отключения контроля учетных записей. Для этого откройте «Панель управления» в настройках ПК или выберите соответствующий пункт в контекстном меню, щелкнув на кнопке «Пуск» правой кнопкой мыши. Или введите в поиске «панель управления». Чтобы добраться к окну управления учетными записями, необходимо выбрать «Мелкие значки» в поле «Просмотр».

Далее следует выбрать пункт изменение параметров контроля учетных записей:

И установить там переключатель в нижнее положение, соответствующее полному отключению UAC. Там можно не просто отключить контроль, а настроить уровень защиты.

В соответствующий раздел «Панели управления» можно добраться быстрее, используя сочетание клавиш Win+R. Достаточно ввести «UserAccountControlSettings» в появившемся окне «Выполнить» и нажать клавишу ввода.

Отключаем сообщения UAC через реестр

Контроль учетных записей можно отключить, используя редактор реестра. Попасть в него можно, если нажать Win+R, ввести «regedit» в открывшемся окошке и нажать клавишу «Enter».

Параметры UAC хранятся в трех ключах, расположенных в ветке «HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\ System»:

Изменить значения ключей можно, дважды кликнув на них. Разным вариантам работы UAC соответствуют различные значение ключей, которые приведены в таблице ниже.

Выберите для себя необходимый уровень защиты. Или полностью отключите функцию.

Через командную строку

Существует несколько вариантов запуска командной строки:

Следует учесть, что для изменения параметров UAC нужно запускать командную строку от имени администратора.

Далее остается набрать команду:

C:\Windows\System32\cmd.exe /k C:\Windows\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

Появится уведомление о необходимости перезагрузки ПК.

После новой загрузки служба контроля учетных записей будет отключена.

Источник

Как работает контроль учетных записей

Область применения

Контроль учетных записей (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 позволяет выбрать один из четырех уровней уведомления.

Рекомендуется, если вы часто устанавливаете новое программное обеспечение или посещаете незнакомые веб-сайты.

Уведомлять меня, только если программы пытаются внести изменения на моем компьютере:

Рекомендуется, если вы не часто устанавливаете приложения или посещаете незнакомые веб-сайты.

Уведомлять меня, только если программы пытаются внести изменения на моем компьютере (не уменьшать яркость рабочего стола):

Не рекомендуется. Выбирайте этот вариант, только если затемнение рабочего стола компьютера занимает много времени.

Никогда не уведомлять (отключить запросы UAC):

Не рекомендуется по соображениям безопасности.

Безопасный рабочий стол включен

Выбран параметр групповой политики Контроль учетных записей: переход на безопасный рабочий стол при выполнении запроса на повышение прав.

Если включен безопасный рабочий стол, все запросы на повышение прав поступают на него независимо от параметров политики поведения запросов для администраторов и обычных пользователей.

Если безопасный рабочий стол не включен, все запросы на повышение прав поступают на интерактивный рабочий стол пользователя. При этом используются индивидуальные параметры для администраторов и обычных пользователей.

CreateProcess вызывает AppCompat, Fusion и функцию обнаружения установщика, чтобы определить, не требуется ли приложению повышение прав. Затем файл проверяется для определения запрошенного уровня выполнения, данные о котором хранятся в манифесте приложения для данного файла. Выполнение CreateProcess завершается сбоем, если запрошенный уровень выполнения, указанный в манифесте, не соответствует маркеру доступа, и CreateProcess возвращает ошибку (ERROR_ELEVATION_REQUIRED) в ShellExecute.

В базе данных совместимости приложений хранятся сведения в виде записей об исправлении совместимости для каждого приложения.

В базе данных Fusion хранятся сведения из манифестов приложений, содержащие описание этих приложений. Схема манифеста обновлена — в нее добавлено новое поле запрошенного уровня выполнения.

Функция обнаружения установщика позволяет находить файлы установки, благодаря чему можно избежать выполнения установки без ведома и согласия пользователя.

Технология виртуализации позволяет исключить ситуации, когда сбой несовместимых приложений остается незамеченным или когда сбой происходит по неизвестным причинам. 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-разрядного процесса следует определить, не является ли он программой установки. Для этого проверяются следующие атрибуты:

Ключевые слова и последовательности байтов получены на основании изучения общих характеристик различных установщиков.

Чтобы система обнаружения установщика могла определить программы установки, должен быть включен параметр политики «Контроль учетных записей: обнаружение установки приложений и запрос на повышение прав». Дополнительные сведения см. в разделе Параметры политики безопасности контроля учетных записей.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Что такое tweaker windows 10
  • что такое tweak windows 10
  • Что такое tty linux
  • что такое trustedinstaller в windows 10 и как удалить
  • что такое tpm windows 10

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
    Компонент Описание
    Пользователь