Введение

Программное обеспечение безопасности

User Account Control (UAC) — это функция принудительного контроля доступа, представленная в операционных системах Microsoft Windows Vista и Windows Server 2008, с более гибкой версией, также присутствующей в Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10 и Windows 11. Она призвана повысить безопасность Microsoft Windows, ограничивая программное обеспечение стандартными правами пользователя до тех пор, пока администратор не санкционирует повышение привилегий. Таким образом, административные права получают только приложения, которым доверяет пользователь, а вредоносное ПО не может скомпрометировать операционную систему. Иными словами, учетной записи пользователя могут быть назначены права администратора, но приложения, запускаемые пользователем, не наследуют эти права, если они не одобрены заранее или пользователь явно не разрешает это. UAC использует Mandatory Integrity Control для изоляции запущенных процессов с разными правами. Чтобы снизить вероятность взаимодействия приложений с более низкими правами с приложениями с более высокими правами, в сочетании с User Account Control используется другая новая технология — User Interface Privilege Isolation, которая изолирует эти процессы друг от друга. Ярким примером этого является "Защищенный режим" Internet Explorer 7. Операционные системы на мейнфреймах и серверах десятилетиями различали суперпользователей и обычных пользователей. Это имело не только очевидный компонент безопасности, но и административный, поскольку предотвращало случайное изменение системных настроек пользователями. Ранние домашние операционные системы Microsoft (такие как MS DOS, Windows 95, 98 и Windows Me) не предусматривали концепцию различных учетных записей пользователей на одном компьютере. Последующие версии Windows и приложений Microsoft поощряли использование входа в систему под учетными записями, не являющимися администраторами, однако некоторые приложения продолжали требовать прав администратора. Microsoft не сертифицирует приложения как совместимые с Windows, если им требуются права администратора; такие приложения не могут использовать логотип совместимости с Windows на своей упаковке.

Поведение в версиях Windows

Windows 1.0–3.1 и 9x: все приложения имели привилегии, эквивалентные привилегиям операционной системы;
Все версии Windows NT до Windows XP: были введены множественные учетные записи пользователей, но на практике большинство пользователей продолжали работать с правами администратора для выполнения обычных операций. Кроме того, некоторые приложения требовали, чтобы пользователь был администратором для функционирования некоторых или всех их возможностей. Windows Vista: Microsoft разрабатывала систему безопасности Vista, начиная с концепции Ограниченной учетной записи пользователя (LUA), затем переименовала ее в Защиту учетной записи пользователя (UAP), прежде чем окончательно реализовать Контроль учетных записей пользователей (UAC). Внедренный в Windows Vista, UAC предлагает подход, направленный на использование "привилегий суперпользователя при необходимости". Ключевым моментом UAC является возможность повышения привилегий без изменения контекста пользователя (пользователь "Боб" остается пользователем "Боб"). Как всегда, внедрение новых функций безопасности затруднено без нарушения совместимости с существующими приложениями. При входе в Vista под стандартной учетной записью система создает сеанс входа и назначает токен, содержащий только базовые привилегии. Таким образом, новый сеанс входа не может вносить изменения, влияющие на всю систему. При входе в систему под учетной записью, являющейся членом группы Администраторов, системе назначаются два отдельных токена: первый токен содержит все привилегии, обычно предоставляемые администратору, а второй – ограниченный токен, аналогичный тому, который получает стандартный пользователь. Пользовательские приложения, включая Windows Shell, запускаются с ограниченным токеном, что приводит к среде с пониженными привилегиями – даже при работе под учетной записью администратора. Когда приложение запрашивает более высокие привилегии или пользователь выбирает опцию "Запустить от имени администратора", UAC запрашивает у стандартных пользователей учетные данные учетной записи администратора и запрашивает подтверждение у администраторов. При согласии процесс продолжается или запускается с использованием неограниченного токена. Windows 7: Microsoft добавила пользовательский интерфейс для изменения параметров контроля учетных записей пользователей и представила один новый режим уведомлений: режим по умолчанию. По умолчанию UAC не запрашивает подтверждение, когда пользователи вносят изменения в настройки Windows, требующие повышенных разрешений, через программы, хранящиеся в %SystemRoot% и подписанные цифровой подписью Microsoft. Программы, требующие разрешения на запуск, по-прежнему вызывают запрос. Другие параметры контроля учетных записей пользователей, которые можно было изменить через новый пользовательский интерфейс, были доступны через реестр в Windows Vista. Windows 8 и 8.1: внесены изменения в дизайн. При срабатывании UAC все приложения и панель задач скрываются, а рабочий стол затемняется. Windows 10: использует тот же макет, что и Windows 8 и 8.1, но обновление Anniversary Update имеет более современный вид. Кроме того, Windows 10 добавляет поддержку Windows Hello в диалоговом окне контроля учетных записей пользователей.

Безопасность

UAC — это удобная функция, которая не создает границы безопасности и не препятствует выполнению вредоносного ПО. Лео Дэвидсон обнаружил, что Microsoft ослабила UAC в Windows 7, освободив около 70 программ Windows от запроса UAC, и продемонстрировал работоспособность метода повышения привилегий. Стефан Кантак представил работоспособность метода повышения привилегий через механизм определения установщиков UAC и установщики IExpress. Стефан Кантак также представил работоспособность метода произвольного выполнения кода и повышения привилегий через автоматическое повышение привилегий UAC и внедрение исполняемых файлов.

Критика

Были жалобы на то, что уведомления UAC замедляют различные задачи на компьютере, такие как первоначальная установка программного обеспечения в Windows Vista. Можно отключить UAC во время установки программного обеспечения и включить его снова позже. Однако это не рекомендуется, поскольку виртуализация файлов и реестра активна только при включенном UAC, а значит, пользовательские настройки и файлы конфигурации могут быть установлены в другом месте (в системный каталог, а не в пользовательский), если UAC отключен, чем это было бы в противном случае. Кроме того, "Защищенный режим" Internet Explorer 7, в котором браузер работает в изолированной среде с пониженными правами, зависит от UAC и не будет функционировать при его отключении. К моменту выпуска Windows Vista в ноябре 2006 года Microsoft значительно сократила количество задач операционной системы, вызывающих запросы UAC, и добавила виртуализацию файлов и реестра, чтобы уменьшить число устаревших приложений, генерирующих эти запросы. Программное обеспечение, разработанное для Windows XP, и многие периферийные устройства перестали работать в Windows Vista или 7 из-за масштабных изменений, внесенных с появлением UAC. Возможностей совместимости также оказалось недостаточно. В ответ на эту критику Microsoft изменила работу UAC в Windows 7. Например, по умолчанию пользователям не предлагается подтверждать многие действия, выполняемые исключительно с помощью мыши и клавиатуры, такие как работа с апплетами панели управления. В спорной статье автор New York Times Gadgetwise Пол Бутин заявил: "Отключите излишне защищенный контроль учетных записей пользователей в Vista. Эти всплывающие окна – все равно что постоянное присутствие матери над плечом во время работы". Журналист Computerworld Престон Гралла назвал эту статью NYT "одним из худших технических советов, которые когда-либо давались".