Введение
Программное обеспечение безопасности
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 в диалоговом окне контроля учетных записей пользователей.
All versions of Windows NT up to Windows XP: introduced multiple user accounts, but in practice most users continued to function as an administrator for their normal operations. Further, some applications would require that the user be an administrator for some or all of their functions to work. Windows Vista: Microsoft developed Vista security firstly from the Limited User Account (LUA), then renamed the concept to User Account Protection (UAP) before finally shipping User Account Control (UAC). Introduced in Windows Vista, User Account Control (UAC) offers an approach to encourage "super user when necessary". The key to UAC lies in its ability to elevate privileges without changing the user context (user "Bob" is still user "Bob"). As always, it is difficult to introduce new security features without breaking compatibility with existing applications. When someone logs into Vista as a standard user, the system sets up a logon session and assigns a token containing only the most basic privileges. In this way, the new logon session cannot make changes that would affect the entire system. When a person logs in as a user with membership in the Administrators group, the system assigns two separate tokens: the first token contains all privileges typically awarded to an administrator, and the second is a restricted token similar to what a standard user would receive. User applications, including the Windows Shell, then start with the restricted token, resulting in a reduced privilege environment – even when running under an Administrator account. When an application requests higher privileges or when a user selects a "Run as administrator" option, UAC will prompt standard users to enter the credentials of an Administrator account and prompt Administrators for confirmation and, if consent is given, continue or start the process using an unrestricted token. Windows 7: Microsoft included a user interface to change User Account Control settings, and introduced one new notification mode: the default setting. By default, UAC does not prompt for consent when users make changes to Windows settings that require elevated permission through programs stored in %SystemRoot% and digitally signed by Microsoft. Programs that require permission to run still trigger a prompt. Other User Account Control settings that can be changed through the new UI could have been accessed through the registry in Windows Vista. Windows 8 and 8.1: add a design change. When UAC is triggered, all applications and the taskbar are hidden when the desktop is dimmed. Windows 10: copies the same layout as Windows 8 and 8.1, but the Anniversary Update has a more modern look. Also, Windows 10 adds support for Windows Hello in the User Account Control dialog box.
Безопасность
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 "одним из худших технических советов, которые когда-либо давались".