Принципы работы контроля учетных записей

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

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

Процессы и взаимодействия UAC

Все приложения, для работы которых требуется маркер доступа администратора, должны запрашивать подтверждение администратора. Существует только одно исключение — это взаимосвязь между родительским и дочерним процессами. Дочерние процессы наследуют маркер доступа пользователя от родительского процесса. При этом как родительский, так и дочерний процессы должны иметь один и тот же уровень целостности. Windows Server 2012 защищает процессы путем маркировки их уровней целостности. Уровень целостности является мерой доверия. Приложение с «высоким» уровнем целостности — это такое приложение, в котором выполняются задачи по изменению системных данных, например разбиение диска. Приложение с «низким» уровнем целостности выполняет задачи, которые могут подвергать риску операционную систему, например веб-браузер. Приложения с низким уровнем целостности не могут изменять данные в приложениях с высоким уровнем целостности. Если обычный пользователь попытается запустить приложение, требующее маркер доступа администратора, служба контроля учетных записей пользователя запросит действительные учетные данные администратора.

Чтобы лучше понять, как происходит этот процесс, важно просмотреть сведения о процессе входа в Систему Windows Server 2012.

Процесс входа в Windows Server 2012

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

Illustration demonstrating how the logon process for an administrator differs from the logon process for a standard user

По умолчанию как обычные пользователи, так и администраторы получают доступ к ресурсам и запускают приложения в контексте безопасности обычного пользователя. При входе пользователя в систему для этого пользователя создается маркер доступа. Маркер доступа содержит сведения об уровне доступа, предоставленного пользователю, включая специальные идентификаторы безопасности (SID) и привилегии в Windows.

При входе в систему администратора для него создаются два отдельных маркера доступа — маркер доступа обычного пользователя и маркер доступа администратора. Маркер доступа обычного пользователя содержит те же сведения о пользователе, что и маркер доступа администратора, но в нем отсутствуют привилегии администратора Windows и идентификаторы безопасности. Маркер доступа обычного пользователя применяется для запуска приложений, которые не выполняют задач администрирования (приложений обычного пользователя). Маркер доступа обычного пользователя затем используется для отображения рабочего стола (Explorer.exe). Explorer.exe является родительским процессом, от которого все другие запускаемые пользователем процессы наследуют свой маркер доступа. В результате все приложения работают в режиме обычного пользователя до тех пор, пока пользователь не даст согласие или не введет учетные данные для подтверждения возможности использования приложением маркера полного доступа на уровне администратора.

Пользователь, который является членом группы Администратор istrators, может войти в систему, просматривать Интернет и читать электронную почту при использовании стандартного маркера доступа пользователей. Когда администратору нужно выполнить задачу, требующую маркера доступа администратора, Windows Server 2012 автоматически запрашивает у пользователя утверждение. Этот запрос называется «запрос на повышение прав». Его работу можно настраивать с помощью оснастки «Локальная политика безопасности» (Secpol.msc) или групповой политики.

Примечание.

Термин "повышенный уровень" используется для обращения к процессу в Windows Server 2012, который запрашивает у пользователя согласие или учетные данные для использования полного маркера доступа администратора.

Взаимодействие с пользователем UAC

Работа обычных пользователей при включенной службе контроля учетных записей пользователей отличается от работы администраторов в режиме одобрения администратором. Рекомендуемый и более безопасный способ запуска Windows Server 2012 — сделать учетную запись основного пользователя стандартной учетной записью пользователя. Работа в режиме обычного пользователя позволяет максимально повысить уровень безопасности управляемой среды. Используя встроенный в службу контроля учетных записей пользователей компонент повышения прав, обычный пользователь может без труда выполнять задачи администрирования путем ввода действительных учетных данных локальной учетной записи администратора. По умолчанию встроенным в службу контроля учетных записей пользователей компонентом повышения прав является запрос учетных данных.

Альтернативой работе в режиме обычного пользователя является работа в качестве администратора в режиме одобрения администратором. С помощью встроенного компонента повышения прав UAC члены локальной группы Администратор istrators могут легко выполнять административную задачу, предоставив утверждение. По умолчанию встроенным в службу контроля учетных записей пользователей компонентом повышения прав для учетной записи администратора в режиме одобрения администратором является запрос согласия. Работу запроса на повышение прав в службе контроля учетных записей пользователей можно настраивать с помощью оснастки «Локальная политика безопасности» (Secpol.msc) или групповой политики.

Запросы на согласие и учетные данные

С включенной функцией UAC Windows Server 2012 запрашивает согласие или запрашивает учетные данные допустимой учетной записи локального администратора перед запуском программы или задачи, требующей полного маркера доступа администратора. Применение запроса гарантирует невозможность незаметной установки вредоносных программ.

Запрос на согласие

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

Screen shot of the UAC consent prompt

Запрос учетных данных

Запрос учетных данных выводится при попытке обычного пользователя выполнить задачу, требующую маркера доступа на уровне администратора. Работу запроса по умолчанию для обычного пользователя можно настраивать с помощью оснастки «Локальная политика безопасности» (Secpol.msc) или групповой политики. Администратор istrator также может потребоваться предоставить свои учетные данные, задав элемент управления учетными записями пользователей: поведение запроса на повышение прав администраторов в параметре политики Администратор режиме утверждения для запроса учетных данных.

На следующем снимок экрана показан пример запроса учетных данных UAC.

Screen shot showing an example of the UAC credential prompt

Запросы на повышение прав пользователей

Запросы на повышение прав выделяются разным цветом в зависимости от приложения, что позволяет быстро оценить возможный риск для безопасности со стороны запускаемого приложения. Когда приложение пытается запустить с маркером полного доступа администратора, Windows Server 2012 сначала анализирует исполняемый файл, чтобы определить издателя. Приложения сначала разделены на три категории на основе издателя исполняемого файла: Windows Server 2012, издателя, проверенного (подписанного), и издателя, не проверенного (без знака). На следующей схеме показано, как Windows Server 2012 определяет, какой запрос на повышение цвета будет представлен пользователю.

Запросы на повышение прав кодируются цветом по следующему правилу.

  • Изображение щита красного цвета на красном фоне: приложение заблокировано групповой политикой или принадлежит заблокированному издателю.

  • Синий фон со значком синего и золотого щита: приложение является административным приложением Windows Server 2012, например элементом панель управления.

  • Изображение щита синего цвета на синем фоне: приложение подписано с использованием Authenticode и является доверенным на локальном компьютере.

  • Изображение щита желтого цвета на желтом фоне: приложение не подписано или подписано, но не является доверенным на локальном компьютере.

Значок щита

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

Screen shot showing the Date and Time Properties Control Panel item

Значок щита на кнопке "Изменить дату и время " указывает, что для процесса требуется полный маркер доступа администратора и отобразится запрос на повышение прав пользователя.

Защита запроса на повышение прав

Процесс повышения прав дополнительно защищен тем, что запрос направляется на безопасный рабочий стол. Запросы на согласие и учетные данные отображаются на защищенном рабочем столе по умолчанию в Windows Server 2012. Получить доступ к безопасному рабочему столу могут только процессы Windows. Для более высокого уровня безопасности рекомендуется сохранить контроль учетных записей пользователей: переключиться на безопасный рабочий стол при появлении параметра политики повышения прав .

Когда исполняемый файл выполняет запрос на повышение прав, происходит переключение интерактивного рабочего стола (рабочего стола пользователя) к безопасному рабочему столу. При переключении к безопасному рабочему столу уменьшается яркость рабочего стола пользователя, появляется запрос на повышение прав, и дальнейшая работа может быть продолжена только после ответа на запрос. Когда пользователь нажимает кнопку "Да" или "Нет", рабочий стол переключается на рабочий стол пользователя.

Вредоносные программы могут представлять имитацию защищенного рабочего стола, но если элемент управления учетными записями пользователя: поведение запроса на повышение прав администраторов в параметре политики режима утверждения Администратор задано значение "Запрос на согласие", вредоносные программы не получают повышение прав, если пользователь нажимает кнопку "Да" для имитации. Если для параметра политики задано значение "Запрос учетных данных", вредоносные программы, имитирующие запрос учетных данных, могут собирать учетные данные от пользователя. Однако при этом вредоносные программы не получают повышенные права, а система имеет другие средства защиты, которые не позволяют им захватить контроль над интерфейсом пользователя даже при раскрытии пароля.

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

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

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

Diagram detailing the UAC architecture

Чтобы лучше понять каждый компонент, ознакомьтесь со следующей таблицей:

Компонент Description
Пользователь
Пользователь выполняет операцию, требующую определенных прав Если операция вносит изменения в файловую систему или реестр, вызывается функция виртуализации. Все остальные операции вызывают ShellExecute.
ShellExecute ShellExecute вызывает CreateProcess. ShellExecute проверяет, нет ли ошибки ERROR_ELEVATION_REQUIRED в CreateProcess. Если ошибка обнаружена, ShellExecute вызывает службу сведений о приложениях для выполнения требуемой задачи с запросом на повышение прав.
CreateProcess Если приложение требует повышения прав, CreateProcess отклоняет вызов с ошибкой ERROR_ELEVATION_REQUIRED.
Системные
Служба сведений о приложениях Системная служба, позволяющая запускать приложения, для выполнения которых требуются повышенные привилегии или права пользователя, например локальные задачи администрирования или приложения, требующие более высоких уровней целостности. Служба сведений о приложениях позволяет запускать такие приложения путем создания нового процесса приложения с маркером полного доступа на уровне администратора, когда требуется повышение прав и (в зависимости от групповой политики) на это получено согласие пользователя.
Повышение уровня установки ActiveX Если технология ActiveX не установлена, операционная система проверяет уровень ползунка службы контроля учетных записей пользователей. Если activeX установлен, элемент управления учетными записями пользователя: переключитесь на безопасный рабочий стол при появлении запроса параметра групповой политики повышения прав проверка.
Проверка уровня ползунка службы контроля учетных записей пользователей Служба контроля учетных записей пользователей теперь имеет четыре уровня уведомлений, которые можно выбирать с помощью ползунка.

  • Высокая

    Если ползунок имеет значение Always notify, система проверка, включен ли безопасный рабочий стол.

  • Средняя

    Если ползунок имеет значение Default-Notify me только в том случае, если программы пытаются внести изменения на мой компьютер, элемент управления учетными записями пользователя: проверка проверка только подписанные и проверенные исполняемые файлы:

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

    Если ползунок имеет значение "Уведомить меня, только если программы пытаются внести изменения на мой компьютер (не тускнеть по рабочему столу)", вызывается CreateProcess.

  • Никогда не уведомлять

    Если ползунок не уведомляет меня, когда запрос UAC никогда не уведомляет, когда программа пытается установить или попытаться внести какие-либо изменения на компьютере. Важно. Этот параметр не рекомендуется. Этот параметр совпадает с параметром управления учетными записями пользователей: поведение запроса на повышение прав администраторам в параметре политики режима утверждения Администратор значение "Повышенный уровень" без запроса.

Безопасный рабочий стол включен Контроль учетных записей пользователей: переключитесь на безопасный рабочий стол при запросе параметра политики повышения прав проверка:

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

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

В Windows Server 2012 UAC произошло изменение из предыдущих версий Windows. Новый ползунок никогда не отключит UAC полностью. Новый параметр:

  • Продолжайте работу службы UAC.

  • Приведет к тому, что все запросы на повышение прав, инициированные администраторами, будут автоматически утверждены без отображения запроса UAC.

  • Автоматически запрещать все запросы на повышение прав для стандартных пользователей.

Внимание

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

Предупреждение

Специализированные приложения не будут работать в Windows Server 2012 при отключении UAC.

Виртуализация

Системные администраторы на предприятиях стараются защитить свои системы, поэтому многие бизнес-приложения разработаны в расчете на использование только маркера доступа обычного пользователя. В результате ИТ-администраторы не нуждаются в замене большинства приложений при запуске Windows Server 2012 с поддержкой UAC.

Windows Server 2012 включает технологию виртуализации файлов и реестра для приложений, которые не соответствуют требованиям UAC и требуют правильного выполнения маркера доступа администратора. Виртуализация гарантирует, что даже приложения, не соответствующие UAC, совместимы с Windows Server 2012. Когда административное приложение, несовместимое с контролем учетных записей пользователей, пытается выполнить запись в защищенную папку, например Program Files, служба контроля учетных записей предоставляет приложению созданный специально для него виртуализованный вид того ресурса, который оно пытается изменить. Эта виртуализованная копия сохраняется в профиле пользователя. При этом отдельная копия виртуализованного файла создается для каждого пользователя, запускающего несовместимое приложение.

Большинство приложений корректно работают с использованием функций виртуализации. Однако, несмотря на то что виртуализация позволяет работать большинству приложений, она является лишь временным решением проблемы. Разработчики приложений должны изменить свои приложения в соответствии с программой логотипа Windows Server 2012 как можно скорее, а не использовать виртуализацию файлов, папок и реестра.

Виртуализация не применяется в следующих ситуациях.

  1. Виртуализация не применяется к приложениям, для которых выполнено повышение прав и которые работают с маркером полного доступа на уровне администратора.

  2. Виртуализация поддерживает только 32-разрядные приложения. 64-разрядное приложение с обычными правами при попытке получить дескриптор (уникальный идентификатор) объекта Windows просто получает сообщение об отказе в доступе. Полноценные 64-разрядные приложения Windows обязаны быть совместимыми с контролем учетных записей пользователей и записывать данные в предусмотренные для них расположения.

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

Уровни выполнения запроса

Манифест приложения представляет собой XML-файл, в котором описаны и идентифицированы общие и частные параллельные сборки, с которыми приложение должно связаться во время выполнения. В Windows Server 2012 манифест приложения включает записи для обеспечения совместимости приложений UAC. Административные приложения, у которых в манифесте есть запись, запрашивают разрешение пользователя на доступ к его маркеру доступа. Большинство административных приложений, у которых отсутствует в манифесте такая запись, тем не менее могут выполняться без доработки. Для этого можно использовать исправления совместимости приложений. Исправления совместимости приложений — это записи базы данных, которые позволяют приложениям, не соответствующим UAC, правильно работать с Windows Server 2012.

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

Технология обнаружения установщика

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

Технология обнаружения установщика применяется только к:

  • 32-разрядным исполняемым файлам;

  • приложениям, не имеющим атрибута требуемого уровня выполнения;

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

Перед созданием 32-разрядного процесса определяется, не является ли он программой установки. Для этого проверяются следующие атрибуты.

  • В имени файла содержатся ключевые слова: «install», «setup» или «update».

  • Поля ресурсов определения версии «Versioning Resource» содержат следующие ключевые слова: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name и Export Name.

  • Ключевые слова в параллельном манифесте встроены в исполняемый файл.

  • Ключевые слова в специальных записях StringTable связаны в исполняемом файле.

  • Ключевые атрибуты в данных сценария ресурса связаны в исполняемом файле.

  • Это законченные последовательности байтов внутри исполняемого файла.

Примечание.

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

Примечание.

Контроль учетных записей пользователей: обнаружение установок приложений и запрос на настройку политики повышения прав необходимо включить для обнаружения установщика для обнаружения программ установки. Этот параметр включен по умолчанию, и его можно настраивать локально, используя оснастку «Локальная политика безопасности» (Secpol.msc), или для домена, OU или определенных групп с помощью групповой политики (Gpedit.msc).