Что такое uac в виндовс 7

Содержание

Способы деактивации

К операциям, контролируемым UAC, относится запуск некоторых системных утилит (редактор реестра и пр.), сторонних приложений, инсталляция нового софта, а также любое действие от лица администратора. В таком случае контроль учетных записей инициирует активацию окошка, в котором требуется осуществить подтверждение пользователем выполнения конкретной операции, нажав кнопку «Да». Это позволяет защитить ПК от неконтролируемых действий вирусов или злоумышленников. Но некоторые юзеры считают такие средства предосторожности излишними, а действия по подтверждению – утомительными. Поэтому они и желают отключить предупреждение системы безопасности. Определим различные способы выполнения данной задачи.

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

Способ 1: Настройка учетных записей

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

  1. Прежде всего, переход можете осуществить через иконку вашего профиля в меню «Пуск». Кликайте «Пуск», а затем жмите на названный выше значок, который должен располагаться в правой верхней части блока.
  2. В открывшемся окошке кликайте по надписи «Изменение параметров…».
  3. Далее перейдите к бегунку регулировки выдачи сообщений о производимых в ПК корректировках. Тяните его до крайнего нижнего предела — «Никогда не уведомлять».
  4. Щелкайте «OK».
  5. Перезагрузите ПК. При следующем включении появление окна оповещений UAC будет отключено.

Также необходимое для отключения окошко параметров можно открыть через «Панель управления».

  1. Кликайте «Пуск». Перемещайтесь в «Панель управления».
  2. Перейдите по пункту «Система и безопасность».
  3. В блоке «Центр поддержки» кликайте по «Изменение параметров…».
  4. Запустится окошко настроек, где следует провести все те манипуляции, о которых говорилось ранее.

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

  1. Кликайте «Пуск». В области поиска вбейте такую надпись:

    Среди результатов выдачи в блоке «Панель управления» отобразится надпись «Изменение параметров…». Кликайте по ней.

  2. Откроется знакомое окно параметров, где нужно выполнить все те же действия.

Ещё один вариант перехода в настройки изучаемого в данной статье элемента осуществляется через окошко «Конфигурация системы».

  1. Для того чтобы попасть в «Конфигурацию системы», воспользуемся инструментом «Выполнить». Вызовите его, набрав Win+R. Внесите выражение:

    Жмите «OK».

  2. В запустившемся окошке конфигурации перейдите в раздел «Сервис».
  3. В перечне различных системных инструментов отыщите наименование «Настройка контроля учетных записей». Выделите его и жмите «Запуск».
  4. Запустится окошко настроек, где проводите уже известные нам манипуляции.

Наконец, переместиться к инструменту можно и непосредственно введя команду в окошке «Выполнить».

  1. Вызовите «Выполнить» (Win+R). Внесите:

    Жмите «OK».

  2. Запускается окошко параметров учетных записей, где следует произвести уже оговоренные выше манипуляции.

Способ 2: «Командная строка»

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

  1. Жмите «Пуск». Переходите во «Все программы».
  2. Зайдите в каталог «Стандартные».
  3. В перечне элементов кликайте правой кнопкой мышки (ПКМ) по наименованию «Командная строка». Из раскрывшегося списка щелкайте «Запуск от имени администратора».
  4. Окошко «Командной строки» активировано. Внесите такое выражение:

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

    Щелкайте Enter.

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

Урок: Запуск «Командной строки» в Виндовс 7

Способ 3: «Редактор реестра»

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

  1. Для активирования окошка «Редактор реестра» применяем инструмент «Выполнить». Вызовите его, использовав Win+R. Введите:

    Кликните «OK».

  2. «Редактор реестра» открыт. В его левой области расположены инструменты навигации по разделам реестра, представленные виде каталогов. Если данные каталоги скрыты, щелкните по надписи «Компьютер».
  3. После того, как разделы отобразятся, кликайте по папкам «HKEY_LOCAL_MACHINE» и «SOFTWARE».
  4. Затем заходите в раздел «Microsoft».
  5. После этого поочередно щелкайте «Windows» и «CurrentVersion».
  6. Наконец, последовательно перейдите по веткам «Policies» и «System». Выделив последний раздел, перемещайтесь в правую часть «Редактора». Ищите там параметр под названием «EnableLUA». Если в поле «Значение», которое относится к нему, установлено число «1», то это означает, что UAC включен. Мы должны сменить данное значение на «0».
  7. Для редактирования параметра щелкайте по наименованию «EnableLUA» ПКМ. Из перечня выбирайте «Изменить».
  8. В запустившемся окошке в области «Значение» ставьте «0». Жмите «OK».
  9. Как видим, теперь в «Редакторе реестра» напротив записи «EnableLUA» отображается значение «0». Для применения корректировок, чтобы UAC был полностью отключен, следует перезагрузить ПК.

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

Мы рады, что смогли помочь Вам в решении проблемы.

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

Предпосылки создания

Ограничение прав, с которыми выполняются приложения (например, различение между «суперпользователем» и «обычными пользователями»), в течение десятилетий было обычным явлением в операционных системах для серверов и мейнфреймов. Домашние же операционные системы Майкрософт (такие, как MS-DOS, Windows 3.x и Windows 9x) не имели разделения прав: программа могла выполнить на компьютере любое действие. По этой причине компьютеры общего пользования быстро подвергались заражению вредоносными программами.

Несмотря на появление разделения прав в Windows NT, пользователи по привычке и для удобства использовали для работы учётную запись с правами администратора, нарушая принцип «запускать любую программу с минимально возможными правами». К тому же многие программы, написанные для Windows 9x или протестированные только с правами суперпользователя, не работали с урезанными правами — например, хранили конфигурационные файлы в каталоге с программой или в общей для всех пользователей ветке реестра.

Получается замкнутый круг: разработчики делают программное обеспечение, которому требуются широкие права пользователей, потому что пользователи «сидят под администраторами»; пользователи ведут же повседневную работу с правами администраторов, потому что этого требует программное обеспечение. Поэтому, несмотря на то, что ОС линейки Windows 9x уже много лет не производятся, на большинстве компьютеров с Windows 2000 и более поздними система разграничения доступа простаивает, а вредоносные программы получают администраторские права. Пропаганда Microsoft, призывавшая делать программы совместимыми с разграничением доступа, действовала, но медленно — многие программы (особенно небольшие утилиты, написанные одиночками) продолжали исполнять операции с повышенными привилегиями. Для того, чтобы склонить разработчиков писать более «безопасные» программы, и был разработан Контроль учётных записей пользователей.

Принцип работы

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

Так, выдаются запросы при попытке изменения системного времени, установки программы, редактирования реестра, изменения меню «Пуск».

Также действует «виртуализация каталогов и реестра»: программа, которая пробует записать что-либо в каталог %PROGRAMFILES%\Папка\Пример.ini, записывает этот файл в каталог %USERPROFILE%\AppData\Local\VirtualStore\Program Files\Папка\Пример.ini. Это обеспечивает совместимость старых программ с разграничением доступа.

Список действий, вызывающих срабатывание

Вот (неполный) список действий, вызывающих срабатывание Контроля учётных записей пользователей:

  • Изменения в каталогах %SYSTEMROOT% и %PROGRAMFILES% — в частности, установка/удаление программы, драйверов и компонентов ActiveX; изменение меню «Пуск» для всех пользователей.
  • Установка обновлений Windows, конфигурирование Windows Update.
  • Перенастройка брандмауэра Windows.
  • Перенастройка самого Контроля учётных записей пользователей.
  • Добавление/удаление учётных записей.
  • Перенастройка родительских запретов.
  • Настройка планировщика задач.
  • Восстановление системных файлов Windows из резервной копии.
  • Любые действия в каталогах других пользователей.
  • Изменение текущего времени (изменение часового пояса не вызывает срабатывания Контроля учётных записей пользователей).
  • Вызов Редактора реестра.
  • Установка некоторых программ

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

  1. Указать в манифест-ресурсе уровень доступа программы: asInvoker, highestAvailable или requireAdministrator. Все три отключают виртуализацию каталогов, но asInvoker будет иметь пользовательские права, а остальные два — уже при запуске запросят повышение прав.
  2. Сделать функции, требующие повышенных прав, отдельным .EXE-файлом с правами highestAvailable или requireAdministrator или запускать его при помощи ShellExecute с lpOperation, равным runas.
  3. Сделать функции, требующие повышенных прав, доступными через COM-объект. При этом COM-сервером должен быть .EXE-файл с правами highestAvailable или requireAdministrator.

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

Недостатки

  • Многие программы, разработанные до появления Windows Vista, либо полностью несовместимы, либо требуют принятия специальных мер при установке и настройке. На самом деле данный недостаток относится скорее к устаревшим версиям программного обеспечения либо к устаревшим программам.
  • Окно с запросом не предоставляет пользователю достаточной информации для идентификации программы и действия, на которое потребовались дополнительные права.
  • Необходимость перезапуска программы для выполнения некоторых её функций. Например, Microsoft Visual Studio требует перезапуска с правами администратора при попытке открытия дамп-файла и некоторых других операциях.
  • В Windows 7 жестко записаны многие приложения, идущие в комплекте, как доверенные, а потому код, который приводит к срабатыванию для других приложений, для них не работает при настройке по умолчанию, что делает их потенциальными посредниками для выполнения опасных действий сторонними программами в обход Контроля учётных записей пользователей.
  • С включенным UAC многие программы могут не запуститься с правами пользователя, если эти программы потребуют повышения прав, хотя их можно запустить с правами пользователя в учётной записи «Обычный доступ» с выключенным UAC. Даже если попытаться запустить их от имени учётной записи «Обычный доступ», UAC все равно появится (если включен), и если в окне «Разрешить следующей программе внести изменения на этом компьютере?» нажать кнопку «Да» — программе будут выданы повышенные права. Если нажать кнопку «Нет» — программа либо будет запущена с пониженными правами, либо завершит работу.

С какими правами работать?

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

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

Создавая контроль учетных записей в Windows Vista, Microsoft в первую очередь стремилась к тому, чтобы разработчики программ начали создавать их с оглядкой на права обычного пользователя. Главная идея состоит в том, чтобы программы во время работы не требовали прав на запись в системные папки и разделы реестра, ограничиваясь хранением данных в профиле пользователя и доступных ему разделах реестра (HKCU). Намек был понят, и за три с лишним года, прошедших с момента выхода Windows Vista, стало видно, что большинство современных программ уже следует такой практике. И это совершенно неудивительно, потому что программы тоже нужно продавать, и делать это намного легче, если они полностью совместимы с новыми операционными системами Microsoft.

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

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

Администратор или пользователь?

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


Увеличить рисунок

Рисунок 1 — При установке Windows создается административная учетная запись

А дальше мы входим в систему с этой учетной записью и начинаем работу. И административные задачи приходится выполнять самостоятельно, поскольку дома нет вездесущего сисадмина, как на работе. Конечно, можно создать учетную запись с обычными правами и работать с ней, но Windows устроена так, что удобнее постоянно иметь права администратора. Этот комфорт в конечном итоге оказывается решающим фактором для большинства пользователей. Контроль учетных записей как раз и предлагает компромисс между работой обычным пользователем и неограниченным администратором.

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

Рисунок 2 — Запуск командной строки от имени администратора из контекстного меню

Это обусловлено тем, что при включенном контроле учетных записей администратор и пользователь поставляются «в одном флаконе». У административной учетной записи есть все необходимые права, но когда UAC включен, абсолютно все задачи запускаются с правами обычного пользователя. И происходит это до тех пор, пока для продолжения работы не потребуются полные права администратора. Именно в этот момент и появляется запрос контроля учетных записей, который служит сигналом о том, что программе необходимы административные полномочия. Когда UAC включен, вся разница между работой администратором и обычным пользователем сводится к тому, что в первом случае для продолжения работы вам достаточно нажать кнопку «Да», а во втором – потребуется ввести пароль любого имеющегося в системе администратора.


Увеличить рисунок

Рисунок 3 — Командую строку от имени администратора запускают: администратор (слева) и обычный пользователь (справа)

Мимо контроля учетных записей, выдающего предупреждения, не проскочит ни одна программа, требующая полных прав, а предупрежден – значит вооружен, в чем и состоит информационная задача уведомлений UAC. При повседневных же действиях нажать кнопку «Да», конечно, быстрее, чем вводить пароль каждый раз, поэтому постоянная работа с ограниченными правами менее комфортна и при этом не обладает значительными преимуществами с точки зрения безопасности.

А вы настоящий суперадмин?

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

На одну полку с ними можно поставить поклонников популярной мифологии о всемогуществе встроенной учетной записи «Администратор», чье единственное отличие от остальных администраторов в том, что на нее по умолчанию не распространяется UAC. В реальности отключение контроля учетных записей в панели управления уравнивает всех администраторов

Интереснее же то, что с помощью групповой политики или реестра несложно включить контроль даже для встроенного администратора. Это может пригодиться, если вы, побыв какое-то время «богом», решили спуститься с небес на землю и поработать с включенным UAC, не теряя при этом уже настроенной пользовательской среды. Но при стандартных параметрах системы работа с единственной учетной записью «Администратор», конечно, эквивалента отключению UAC. Дальше мы посмотрим, почему лучше этого не делать, и как эффективно работать с включенным контролем учетных записей.

Безопасность или комфорт

Появление контроля учетных записей подтолкнуло разработчиков к созданию программ, рассчитанных на работу с ограниченными правами. Однако в домашних условиях мы самостоятельно выполняем административные задачи, и в Windows 7 все-таки удобнее работать с правами администратора. Отключение UAC или использование встроенной учетной записью «Администратор» с точки зрения прав эквивалентно работе в Windows XP и сопряжено с риском потери контроля над системой в случае заражения. На мой взгляд, лучшее соотношение «безопасность / комфорт» в Windows 7 достигается при работе администратором с включенным контролем учетных записей.

Повышение прав с запросом UAC и без него

В Windows Vista я честно пытался работать с включенным контролем учетных записей, и по большому счету в моих задачах он не особо докучал. Но поскольку я регулярно отвечаю в технических форумах конференции OSZone, мне постоянно приходится открывать различные элементы панели управления, оснастки MMC и другие системные компоненты, чтобы посмотреть настройки или просто дать точный путь к нужному элементу. В Windows Vista большинство этих действий сопровождалось запросом UAC, что изрядно напрягало, но в Windows 7 ситуация сильно изменилась.

Компоненты Windows 7

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

Рисунок 4 — Запрос UAC не выводится, когда администратор переходит по ссылке со щитом в панели управления

В панели управления Windows 7 рядом с некоторыми ссылками и на кнопках в окнах вы увидите щит, который в Windows Vista однозначно свидетельствовал о том, что при нажатии последует запрос. Теперь его нет, если вы работаете с правами администратора, но при работе с правами обычного пользователя диалоговое окно, конечно, появится.

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

Рисунок 5 — Чтобы настроить недоступные параметры, придется нажать ссылку со щитом

Однако такие «хитрости» в панели управления встречаются нечасто, что позволяет администратору беспрепятственно настроить множество параметров системы.

Современные программы

У Microsoft есть рекомендации не только для пользователей, но и для разработчиков программ. Применительно к UAC один из главных советов – это хранение настроек программы и предпочтений пользователя только в расположениях, где для записи не требуются права администратора. В таком случае они нужны только при установке программы, если производится запись в системные папки (например, Program Files) и регистрация компонентов в системе. Конечно, при этом выводится запрос контроля учетных записей.

Но в дальнейшем все пользовательские данные и параметры программы хранятся в профиле, в папке %userprofile%\appdata. Там вы найдете папки с данными установленных у вас программ, которые не требуют прав администратора для работы.

Рисунок 6 – Современные приложения хранят пользовательские данные только в вашем профиле

Наличие трех папок объясняется так:

  • Roaming – в корпоративной среде данные из этой папки следуют за пользователем при использовании перемещаемых профилей;
  • Local – данные, объем которых слишком велик, чтобы перемещать их вместе с профилем;
  • LocalLow – данные, записанные процессами с низким уровнем целостности, т.е. возможности которых по внесению изменений в систему максимально ограничены.

Как я говорил выше, с момента выхода Windows Vista множество приложений уже учитывает контроль учетных записей, и для работы им не требуются полные права администратора. На самом деле, многим приложениям они не нужны даже для установки, и в этом случае разработчикам нет особого смысла требовать прав на запись в папку Program Files. Я думаю, что некоторые авторы программ делают это просто по инерции, в то время как другие уже перестроились.

Рисунок 7 – Поскольку для установки приложения не требуются права администратора, сразу предлагается поместить его в профиль

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

Старые приложения

Старые приложения – это не только те, что давно не обновлялись, но и те, что подразумевают наличие у пользователя прав на беспрепятственную запись в системные папки и разделы реестра. Как это ни странно звучит, при включенном контроле учетных записей совместимость старых приложений с Windows 7 и Windows Vista улучшается. Это происходит потому, что UAC позволяет компенсировать недостаток прав на запись в системные расположения при работе администратором и обычным пользователем.

Виртуализация файлов и реестра

Разработчики UAC сразу понимали, что старые приложения уже не научатся хранить данные в профиле, а будут пытаться записывать их в папки Program Files или Windows (хотя последнее было дурным тоном еще в ХР). Как я говорил выше, при включенном UAC даже у администратора приложения запускаются с обычными правами, что означает отсутствие разрешений на запись в системные расположения.

Решение было придумано оригинальное – система делает вид, что программе разрешена запись, а на самом деле перенаправляет файлы в профиль, либо записывает параметры реестра в специальный раздел.

В дальнейшем программа продолжает обращаться к этим данным, даже не подозревая об их реальном расположении. Так в Windows Vista появилась виртуализация папок и системного реестра, которую унаследовала и Windows 7.

Несмотря на недетский возраст этой технологии, о ней слышали немногие. Это мы выяснили в конкурсе на знание Windows 7, который проходил в конце 2009 года на OSZone.net. Там был задан вопрос о кнопке «Файлы совместимости» в проводнике, и подавляющее большинство участников ответило, что такой кнопки в Windows 7 не существует.

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


Увеличить рисунок
Рисунок 8 — Кнопка «Файлы совместимости» ведет в виртуальное хранилище

У меня эту кнопку проводник отображает уже в корне системного диска, а нажав ее, я вижу папки с названиями Windows и Program Files, а также какой-то архив. Обратите внимание на адресную строку проводника – я перешел в уже знакомую папку AppData, а точнее – в виртуальное хранилище (Virtual Store). Названия программ в папке Program Files мне знакомы – это и есть старые приложения, работа которых не нарушилась благодаря виртуализации файлов.

Давайте посмотрим, как это работает на практике (UAC не забудьте включить). Откройте блокнот и попытайтесь сохранить текстовый файл в папке Windows. Вы сразу увидите сообщение о недостатке прав и предложение сохранить в файл в профиле.


Увеличить рисунок

Рисунок 9 – Чтобы сохранять или изменять файлы в системных папках, «Блокнот» нужно запускать от имени администратора

Собственные программы Microsoft, конечно, спроектированы для работы обычным пользователем, поэтому они знают, что делать при отсутствии прав. Теперь возьмите, скажем, текстовый редактор Akelpad, в котором не предусмотрено такое сообщение, и попробуйте сделать то же самое. Вместо папки Windows файл будет сохранен в виртуальном хранилище, и в дальнейшем «обманутый» Akelpad будет видеть его именно в папке Windows (а блокнот – нет, ведь он туда ничего не записывал).


Увеличить рисунок

Рисунок 10 — Akelpad открывает «свой» файл из папки Windows (слева), хотя он расположен в виртуальном хранилище (справа)

Теперь понятно, откуда взялся Archive.zip в корне виртуального хранилища. Я создал его в корне системного диска архиватором 7-zip, причем неважно, из контекстного меню, либо просто запустив программу с обычными правами. Система позволила выполнить операцию, но сохранила файлы в профиль.

Виртуализация реестра происходит аналогично. Например, при попытке записи в HKEY_LOCAL_MACHINE\Software\ProgramName происходит перенаправление в раздел HKEY_USERS\<User SID>_Classes\VirtualStore\Machine\Software\ ProgramName, где User_SID обозначает идентификатор пользователя, от чьего имени выполняется действие. Кроме того, перенаправляются все попытки записи в разделы, куда администратор имеет доступ, а обычный пользователь – нет.

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

При чем тут UAC?

С помощью виртуализации файлов и реестра обеспечивается совместимость со старыми приложениями, и в первую очередь она нацелена на работу с правами обычного пользователя. Если UAC отключен, администратор не заметит разницы, поскольку права на запись в Program Files у него есть. А вот обычных пользователей старая программа может огорчить очень быстро, ведь прав на запись в системные расположения нет (хоть с UAC, хоть без него), а перенаправить данные уже некому. Программа «ломается», т.е. скорее всего, выводит сообщение из разряда «отказано в доступе».

При чем тут безопасность?

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

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

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

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

Установка в профиль или получение полных прав на папку программы

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

Когда они установлены в Program Files, права на запись отсутствуют, поэтому при запуске появляется запрос UAC. В этом случае можно попробовать заставить программу идти в ногу со временем, установив ее в профиль. Альтернативный вариант – это получение полных прав на папку программы, что может оказаться быстрее переустановки в профиль.

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

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

Системные утилиты

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

На примере утилит Sysinternals Марка Руссиновича это легко продемонстрировать. Process Explorer отображает массу информации о системных процессах, но для ее сбора, очевидно, нужны полные права, поэтому запрос выводится сразу. Утилита Autoruns, которая знает все об автозагрузке системы, запускается с обычными правами, а запрос выводит только в случае, когда вы изменяете параметры, требующие административных полномочий.

Рисунок 11 – Утилите Autoruns нужны полные права для внесения изменений в системный раздел реестра

Когда с помощью Autoruns вы изменяете пользовательские параметры (раздел HKCU), запрос не выводится, а при настройке системных параметров на самом деле получается два запроса. Один выводит программа (рис. 11), после чего требуется ее перезапуск, что ведет уже к появлению запроса UAC (аналогично ведут себя сторонние файловые менеджеры при попытке копирования файлов в системные папки). Это неудобно (лучше уж однажды при запуске), но вполне решаемо, как мы увидим это чуть позже.

Командная строка и скрипты

Со встроенными программами Windows 7 тоже получается по-разному. При открытии редактора реестра запрос появится сразу, даже если вы хотите просто проверить наличие какого-нибудь параметра. Командная строка же запускается с обычными правами, а при попытке выполнить в ней команду, требующую полных прав администратора, выводится соответствующее сообщение (рис. 12 слева).


Увеличить рисунок

Рисунок 12 – Из заголовка командой строки понятно, с какими правами она запущена (слева с обычными правами, справа – от имени администратора)

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


Увеличить рисунок

Рисунок 13 – С помощью утилиты elevate для команды запрашивается повышение прав

Запрос контроля учетных записей при этом все равно появится, но время все-таки экономится, т.к. не надо запускать новую командную строку от имени администратора и повторно вводить команду. Достаточно нажать стрелку вверх (повтор команды), затем клавишу Home (переход к началу строки) и ввести elevate /k. Конечно, это полумера, но если вы часто работаете с командной строкой, эту утилиту стоит иметь в арсенале.

И раз уж речь зашла о командной строке, нельзя обойти вниманием скрипты, которые также часто приходится запускать с повышенными правами. В контекстном меню Windows 7 возможность запуска от имени администратора предусмотрена только для скриптов командного интерпретатора, т.е. для bat и cmd. Однако с помощью набора утилит Elevation PowerToys можно расширить список, добавив туда WSH и PowerShell, а также возможность запуска скриптов от имени другого пользователя, включая систему.

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

Запуск программ без запроса UAC

Достаточно поработать с контролем учетных записей пару недель, чтобы определить список приложений, при запуске которых появляется диалоговое окно UAC. Для каждого из них можно создать ярлык, который будет запускать программу без всякого запроса. Можно также создать ярлык для командной строки и/или диалогового окна «Выполнить», откуда любые задачи уже будут выполняться с полными правами администратора.

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

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

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

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

Действие Средство для повышения удобства работы
Настройка в панели управления Не требуется
Настройка системными утилитами Ярлык для запуска с полными правами
Запуск и работа старых приложений
  • Включение UAC (виртуализация файлов и реестра)
  • Установка в профиль или получение полных прав на папку программы
  • Ярлык для запуска с полными правами
Работа в командной строке
  • Утилита elevate
  • Ярлык для запуска с полными правами
Запуск скриптов
  • Elevation PowerToys
  • Ярлык для запуска с полными правами
Подбор и тестирование приложений Виртуальная машина

Обнаружен новый вариант обхода диспетчера учетных записей Windows 10 через «Приложения и функции»

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

В то время как метод Нельсона использовал встроенную утилиту Event Viewer (eventvwr.exe), обход UAC Кристиана использует файл fodhelper.exe, расположенный по адресу C:\Windows\System32\fodhelper.exe

Если имя этого файла вам неизвестно — это окно, которое открывается при нажатии кнопки «Управление дополнительными функциями» на экране «Параметры и настройки» окна «Приложения и функции».

Оба метода работают одинаково и используют то, что называется «авто-возвышение (auto-elevation)». Оно представляет собой состояние, которое Microsoft назначает доверенным двоичным файлам (файлы, подписанные сертификатом Microsoft и расположенные в надежных местах, таких как C:\Windows\System32).

Так же, как eventvwr.exe, fodhelper.exe является доверенным бинарником, то есть Windows 10 не отображает окно UAC при его запуске и запуске дочерних процессов.

Обход UAC позволяет перехватывать резервные копии ключей реестра

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

Редактированием значений одного из этих ключей реестра исследователь мог передавать пользовательские команды, которые выполнялись в повышенном контексте файла fodhelper.exe. Ключ реестра: HKCU:\Software\Classes\ms-settings\shell\open\command\(default)

Эта технология может быть использована, если вредоносное ПО закрепилось на компьютере пользователя. Вредоносная программа, используя сценарии для редактирования определенного раздела реестра, может запускать файл fodhelper.exe, который затем будет читать вредоносные команды, передаваемые в разделе реестра, и выполнять их за спиной пользователя. Так как файл fodhelper.exe является надежным двоичным файлом Windows 10, предупреждения UAC не последует.

Исследователь выпустил proof-of-concept на GitHub. Его метод не удаляет файлы с диска, исполняется только в памяти компьютера и не взламывает никаких DLL.

Как этого избежать?

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

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

И это на самом деле полезно. В отчете, опубликованном Avecto в феврале 2017 года, сообщается, что без права администратора пользователь смог бы избежать всех ошибок безопасности, обнаруженных в 2016 году в IE, Edge и Office.

Обход контроля учетных записей (UAC) путем пародирования доверенных директорий


Эксперт по информационной безопасности Дэвид Уэллс (David Wells) опубликовал способ обхода контроля учетных записей UAC в Windows 10
Всем привет!
Во время исследований некоторых новых методов обхода службы контроля учетных записей (UAC) я открыл совершенно новый метод обхода UAC на момент написания этой статьи. Стоит отметить, что Microsoft не считает UAC границей безопасности, однако мы до сих пор сообщаем о разных багах в Microsoft и я хочу поделиться подробностями найденной мной уязвимости тут. Этот метод был успешно протестирован на ОС Windows 10 Build 17134. До того, как я погружусь в подробности моей находки, я сначала представлю Вам небольшое пояснение по работе самой службы UAC.
UAC Primer
Когда пользователь, входящий в группу «Администраторы», хочет запустить приложение, требующее повышенных привилегий, то UAC отображает соответствующий запрос и пользователю, являющемуся членом группы «Администраторы», потребуется подтвердить действие Однако, этот запрос UAC не возникает для ВСЕХ административно исполняемых файлов в Windows. Есть несколько исключений, которые будут «автоматически» повышать привилегии исполняемого файла, не вызывая запроса UAC, в обход UAC (к большому удивлению!). Эта отдельная группа избранных надежных исполняемых файлов проходит дополнительные проверки безопасности системой, чтобы убедиться, что на самом деле эти файлы достоверны, поэтому информационные злоумышленники обычно не злоупотребляют данной функцией. Этот подход использовался в предыдущих методах обхода UAС и будет основой моего нового метода обхода. Однако, есть несколько лазеек, которые нам нужно воспользоваться, чтобы наша атака удалась. Давайте рассмотрим требования, которые должны соблюдаться, если мы хотим, чтобы наш исполняемый файл был «автоматически повышен в привилегиях». Для этого я покажу несколько картинок дисассемблируемой библиотеки appinfo.dll (служба AIS, обрабатывающая запросы на повышение привилегии — один из основных компонентов UAC).

Требование 1: Файл сконфигурирован для автоматического повышения привилегий
Когда возникает запрос на повышение привилегий для программы, то в службе AIS (appinfo.dll) выполняется вызов RPC с целевым исполняемым путем, переданным в качестве аргумента. Затем эта служба будет сопоставлять целевое исполняемое содержимое файла для чтения. В манифесте исполняемого файла делается попытка прочитать значение для получения ключа «autoElevate» (если он существует).
Рисунок 1 – Чтение манифеста исполняемого файла для получения значения ключа «autoElevate».

Если значение получено и это «Истина», то файл будет считаться как с «автоматическими» повышаемыми привилегиями исполняемым файлом, который будет запускаться с повышением привилегий и не вызывать диалоговое окно службы UAC (при условии, что оно передало следующие требования, упомянутые ниже).
Рисунок 2 — вызов «bsearch» для проверки имени исполняемого файла в списке исполняемых файлов «auto elevating»

Некоторые из этих жестко запрограммированных в системе файлов в белом списке:
‘cttunesvr.exe’, ‘inetmgr.exe’, ‘migsetup.exe’, ‘mmc.exe’, ‘oobe.exe’, ‘pkgmgr.exe’, ‘provisionshare.exe’, ‘provisionstorage.exe’, ‘spinstall.exe’, ‘winsat.exe’
Требование 2: Правильно подписанные
Предполагается, что второе условие для «автоматического» повышения привилегии после отправки запроса в UAC, это выполнение проверки подписи с помощью «wintrust! WTGetSignatureInfo».
Это означает, что злоумышленник не сможет просто создать свой собственный нужный для «автоматического» повышения привилегий манифест или исполняемый файл и добиться успеха, поскольку бинарный файл злоумышленника, скорее всего, будет неправильно подписан, и, вероятно, также не будет выполняться последнее требование — исполнение из надежного каталога\директории.
Требование 3: Исполнение из надежного каталога\директории
Последнее требование для получения «автоматического» повышения привилегий заключается в том, что целевой исполняемый файл находится в «доверенном каталоге», например «C: \ Windows\System32». На Рисунке 3 показано, что служба AIS выполняет эту проверку пути с запросом на повышение, в этом случае одним из путей, считающихся «доверенным», является «C:\Windows\System32».
Рисунок 3

Название этой статьи «Обход контроля учетных записей (UAC) путем пародирования доверенных директорий», поэтому Вы, вероятно, сможете легко догадаться, что будет дальше.
Обход UAC
Как упоминалось ранее в разделе UAC Primer, автопривилегированность (обход UAC) будет выполняться для исполняемых файлов, которые:

  1. Сконфигурированы для получения «автоматического» повышения привилегий
  2. Правильно подписаны
  3. Запускаются из надежного каталога («C:\Windows\System32»)

Appinfo.dll (AIS) использует API RtlPrefixUnicodeString, чтобы проверить, соответствует ли исполняемый путь файла с «C:\Windows\System32\» для проверки одного из доверенных каталогов. Это довольно железобетонная проверка, учитывая ее сравнение с каноническим местом расположения файла.
Поэтому, для организации обхода этой проверки я создаю каталог под названием «C:\Windows \» (обратите внимание на пробел после «Windows»). Конечно, с помощью этого действия все еще нельзя пройти проверку RtlPrefixUnicodeString, и я также упомяну, что это несколько недопустимое (или, по крайней мере, «недружелюбное») имя каталога, поскольку Windows не разрешает ставить пробелы в конце имени при создании каталога (попробуйте).
Однако, используя API CreateDirectory и добавив «\\? \» к имени каталога, которое я хочу создать, мы можем обойти некоторые из этих правил фильтрации имен и отправить запрос на создание каталога непосредственно в файловую систему.

Это приводит к созданию неудобного каталога, который счастливо сосуществует в файловой системе наряду с реальным «C:\Windows\» (за исключением тех случаев, когда Вы пытаетесь что-либо сделать с ним в Проводнике Windows).

Теперь, когда у нас есть каталог «C: \Windows \», мы можем создать в нем каталог «System32» и скопировать туда один из подписанных, исполняемых файлов (у которого разрешено системой «автоматическое» повышение привилегий) из реального каталога «C:\Windows\System32».
Для этого я скопировал «winSAT.exe» (один из файлов в белом списков исполняемых файлов Windows с разрешённом системой возможности «автоматического» повышения привилегий).
Когда мы попытаемся запустить этот файл из нашего нового каталога «C:\Windows \System32\ winSAT.exe», он будет проходить через следующие API (см. Рис. 6) в appinfo.dll перед выполнением проверки доверенного каталога. Это важно, и основа того, почему этот обход работает.
Рисунок 6

Когда этот неудобный путь с пробелом отправляется в AIS для запроса на повышение привилегий, путь передается в GetLongPathNameW, который преобразует его обратно в «C:\Windows\System32\winSAT.exe» (пробел удален).
Отлично!
Теперь это строка, в которой прошла проверка достоверного каталога (используя RtlPrefixUnicodeString) для остальной части проверки.
Красота моего решения заключается в том, что после проверки доверенного каталога выполняется этот преобразованный путь, который потом освобождается, а остальные проверки (и окончательный запрос на повышение привилегий) выполняются с оригинальным названием исполняемого каталога (с дополнительным пробелом).
Это позволяет пройти все другие проверки и приводит к тому, что appinfo.dll принимает мою копию winSAT.exe как с «автоматическим» повышением привилегий (так как она правильно подписана и добавлена в белый список для «автоматического» повышения привилегий).
Чтобы на самом деле использовать вредоносный код, я просто скопировал поддельную WINMM.dll (импортированную winSAT.exe) в своем текущем каталоге «C:\Windows \System32\» для подмены локальной dll. Полную концепцию можно увидеть на рисунке ниже.
Рисунок 7.