![](http://www.picamatic.com/show/2009/04/16/08/11/3285879_154x187.png)
В Windows 7 UAC приобрел дополнительные настройки. И я бы хотел рассказать, как именно сделать UAC действительно полезным инструментом для защиты ОС.
Уязвимости Windows
Так уж сложилось, что большинство пользователей Windows работают под учетной записью администратора со всеми вытекающими отсюда последствиями. Так как администратор практически не ограничен в своих правах, этим активно пользуют вирусописатели для распространения своего кода.
Можно выделить несколько наиболее важных целей, на которые приходятся вирусные атаки:
- Файловая система (как правило: заражение исполняемых файлов)
- Службы Windows
- Реестр
И вот здесь возникает вопрос, как изолировать пользователя от системы даже при работе под администратором. Для этих целей и служит UAC.
При включенном UAC’е любая попытка доступа к системным файлам, службам или реестру будет блокирована и появится окно, которое потребует подтверждение пользователя на дальнейшие действия.
Настройка UAC
В Windows 7 появилась возможность настройки уровня предупреждений для UAC. Экран настройки UAC выглядит следующим образом:
![](http://www.picamatic.com/show/2009/04/16/08/10/3285865_604x568.png)
Рис. 1. Настройка UAC в Windows 7.
Всего доступно четыре уровня предупреждений UAC:
- Самый высокий уровень – предупреждения при любых попытках модифицировать системные настройки и файлы, а так же при установке программного обеспечения
- Второй уровень – предупреждения только при попытках внести изменения в системную конфигурацию и настройки пользователя
- Третий уровень – предупреждения только при попытках внести изменения в системную конфигурацию
- Четвертый уровень – полное отключение UAC.
Но куда более важными, на мой взгляд, являются дополнительные настройки UAC в политиках безопасности (рис. 2):
![](http://www.picamatic.com/show/2009/04/17/11/55/3294278_615x529.png)
Рис. 2. Настройки UAC в политиках безопасности.
Рассмотрим более подробно некоторые из политик UAC:
- Behavior of the elevation prompt for administrators – позволяет задать режим поведения окна валидации при повышении администраторских прав. К примеру, можно включить подтверждение прав с помощью пароля (prompt for credentials) или оставить подтверждение прав только с помощью нажатия OK (prompt for consent).
- Behavior of the elevation prompt for users – аналогично первому пункту, но для учетных записей в режиме пользователя.
- Switch to the secure desktop when prompting for elevation – переключению рабочего стола в безопасный режим при прохождении валидации. Для пользователя включение данной политики отражается в виде затенения рабочего стола при прохождении проверки. В дествительности роль данной политики в изоляции процедуры валидации от других работающих программ с целью предотвратить перехват окна UAC программными способами.
- Virtualizes file and registry write failures to per-user locations – виртуализация файлов и реестра. Позволяет работать с программами в режиме виртуализации с целью исключить повреждения файловой системы и реестра (режим песочницы).
Рекомендации по настройке UAC:
Лично я использую самые высокие настройки безопасности UAC, включая необходимость ввода пароля при валидации. Это дает мне полную защиту системных файлов, реестра и служб Windows. Как правило, программное обеспечение использует системные файлы и реестр только для чтения. Исключения здесь могут представлять только системные утилиты, где подтверждения прав доступа к системе вполне оправдано. Использования пароля обусловлено тем, что под моей учетной записью иногда работаю не только я, поэтому, только нажатия кнопки Yes не является достаточным условием безопасности.
Проблемы со старыми программами
Как правило, проблемы в работе старых программ при включенном UAC’е связаны в некорректном взаимодействии с системой и полном нежелании разработчиков придерживаться каких-либо стандартов безопасности и разграничения доступа пользователей к системным ресурсам. Обычно проблему можно решить путем запуска программы от имени администратора, но это особенно опасно в случае сетевых приложений, так это открывает полный доступ к системе в случае использования уязвимостей данной программы.
В качестве примера можно взять старый программы, которые хранят профили пользователя не в папках пользовательского режима, а в Program Files, в итоге корректная работа возможно только от администратора, так как все создаваемые файлы и директории в Program Files наследуют уровень доступа на запись и изменение только для администратора. Простейший способ решения проблемы – добавить права на изменения данных профиля для обычных пользователей.
Вообще, можно посоветовать не ставить старые программы в ProgramFiles, чтобы избежать проблем с правами доступа.
Дополнительная защита
Хотя цель работы UAC сводится к защите системных данных, но можно воспользоваться UAC’ом и для защиты пользовательских файлов. Делается это простым урезанием прав доступа к файлам для учетной записи пользователя: достаточно удалить права на модификацию и запись, оставив их лишь для администратора.
Права доступа к файлам можно настроить и в более ранних версиях Windows, но работая под учетной записью администратора любая программа может изменть уровень доступа, не спрашивая при этом пользователя. В случае с включенным UAC расширение прав возможно лишь при прохождении валидации.
Проверка функционирования защиты UAC
Как уже говорилось, назначение UAC – ограждения пользователя от изменения системных файлов и настроек. Поэтому лучшим способом проверки защищенности системы здесь является исследования работы вирусов при включенном UAC’е.
Приведу пример функционирования вируса при включенном UAC’е.
В качестве примера я возьму троянскую программу Win32.Injector. Данный троян действует весьма просто просто: записывает себя в директорию C:\Windows\System32 и прописывает свою загрузку в реестр. В итоге после перезагрузки компьютера запускается большое количество cmd.exe и services.exe. Самый простой способ распространения – запуск из autorun’а на флеш-накопителях.
Попытаемся запустить данный троян с включенным UAC’ом. У меня это исполняемый файл nsshell.exe, который по-умолчанию так же является скрытым.
![Троянская программа nsshell.exe.](http://www.picamatic.com/show/2009/04/17/11/41/3294195_587x402.png)
Рис. 4. Троянская программа nsshell.exe.
Чтобы убедиться, что это действительно вирус, проверим nsshell.exe c помощью антивируса:
![](http://www.picamatic.com/show/2009/04/17/11/43/3294202_521x368.png)
Рис. 5. Антивирус показывает, что nsshell.exe – троян.
Попытка запуска данного исполняемого файла приведет к срабатыванию механизма UAC, так как троян пытается прописать себя в системные директории и реестр:
![](http://www.picamatic.com/show/2009/04/17/11/43/3294201_495x414.png)
Рис. 6. Срабатывание UAC при запуске nsshell.exe
Как видно, шапка в окне UAC в данном случае приобрела желтый цвет. При более детальном рассмотрении можно заметить, что у программы так же отсутствует доверенный издатель и сертификат подлинности. Таким образом, мало кто осмелится подтвердить запуск, особенно если это произошло при монтировании флеш-накопителя.
Заключение
Таким образом, использования UAC действительно оправдано с позиции безопасности операционной системы. Если прикладная программа потребовала при запуске повышения прав до уровня администратора, то это уже несколько напрягает, особенно если отсутствует какая-либо информация о издателе и цифровая подпись. Рекомендую более детально ознакомится с механизмом работы UAC и все же оставлять его включенным.
P.S.: Большинство описанных настроек и действий верны и для Windows Vista.