Как облегчить работу с минимальными полномочиями и повысить безопасность?

Заходя в Internet, администратор может случайно загрузить вредный программный код. Программист составляет программу, для корректной работы с которой пользователю необходимы полномочия Administrator. Эти и другие опасные действия нарушают один из фундаментальных принципов безопасности: принцип минимальных достаточных полномочий. В соответствии с этим принципом пользователю или программе должны быть предоставлены только полномочия, необходимые для выполнения задания, не меньше, но и никак не больше. Вредные программы значительно опаснее, если выполняются в контексте безопасности учетной записи с широкими правами, а процессы с обширными полномочиями могут стать источником гораздо более крупных неприятностей, если скомпрометированы (или просто содержат ошибки).

В течение длительного времени принцип минимальных полномочий неукоснительно применялся в UNIX, но в Microsoft стали всерьез воспринимать его только с выходом Windows XP и Windows 2000. Поддержка Least-Privileged User Account (LUA) — основа безопасности операционной системы Microsoft Vista (в прошлом известной под условным названием Longhorn), но в настоящее время XP и Windows 2000 располагают несколькими инструментами, с помощью которых можно реализовать принцип минимальных полномочий. Использование этих инструментов для запуска процессов и приложений Windows от имени LUA или неадминистративной учетной записи — важный шаг к укреплению безопасности.

Быстрое переключение пользователей

Fast User Switching — компонент XP Professional Edition (и XP Home Edition), который позволяет организовать на компьютере с Windows несколько активных сеансов одновременно. Благодаря Fast User Switching пользователи могут легко переключаться между сеансами, не завершая их и не закрывая активных приложений. Данный режим возможен только на компьютерах с оперативной памятью емкостью не менее 64 Мбайт, входящих в рабочую группу (не присоединенных к домену), в которых активизирован экран регистрации Welcome, а модуль Graphical Identification and Authentication (GINA) не заменен другим (например, специальным компонентом для биометрической аутентификации или другим надежным методом аутентификации). Кроме того, пользователь не должен активизировать поддержку автономных файлов, Offline Files.

Для активизации режима быстрого переключения пользователей следует открыть приложение User Accounts панели управления и щелкнуть на Change the way users log on or off. Из диалогового окна Select logon and logoff options (экран 1) можно активизировать экран Welcome (если он еще не активизирован) и разрешить Fast User Switching.

Экран 1. Изменение порядка регистрации и завершения сеанса пользователей в XP

Чтобы запустить другой сеанс регистрации, пользователи могут последовательно щелкнуть кнопки Start, Log off, а затем активизировать режим Switch User; открыть Task Manager (нажатием Ctrl+Alt+Del) и выбрать Switch User из меню Shut Down; либо нажать клавишу L, удерживая нажатой клавишу Windows. Чтобы увидеть пользователей, чьи сеансы активизированы в компьютере, достаточно открыть Task Manager и перейти к вкладке Users. Имея полномочия Administrator, из этого экрана можно завершать сеансы пользователей, прекращать соединения пользователей и посылать им сообщения.

С помощью Fast User Switching можно более последовательно применять принцип минимальных полномочий. Для этого следует создать учетную запись компьютера с административными полномочиями. Этой учетной записи можно назначить пароль или оставить пароль пустым. В XP и более поздних версиях учетные записи с пустым паролем защищены лучше, чем учетные записи с назначенным паролем; по умолчанию с учетными записями с пустым паролем нельзя дистанционно зарегистрироваться в системе. Управлять этой функцией можно с помощью объекта Group Policy — Accounts: Limit local account use of blank passwords to console logon only.

Затем необходимо создать учетную запись пользователя с ограниченными полномочиями. И снова пароль можно назначить или оставить пустым.

Учетную запись пользователя следует применять для повседневной работы, в том числе перемещений в Web, работы с электронной почтой и обмена мгновенными сообщениями (Instant Messaging, IM). Для установки программ или запуска программ, требующих полномочий Administrator, нужно переключаться в контекст безопасности административной учетной записи. Обзор программ, действительно нуждающихся в полномочиях Administrator, приведен в статье Microsoft «Certain Programs Do Not Work Correctly If You Log On Using a Limited User Account» по адресу http://support.microsoft.com/?kbid=307091. После выполнения таких задач следует завершить работу с административной учетной записью и переключиться на учетную запись пользователя. Полномочия данной учетной записи урезаны, поэтому, покидая компьютер, необязательно завершать сеанс с учетной записью пользователя. Обычно достаточно блокировать экран.

Прежде чем активизировать режим Fast User Switching, следует помнить, что его некорректное применение связано с риском для безопасности. Нельзя оставлять в системе активный административный сеанс. Если на предприятии предъявляются очень высокие требования к безопасности, следует блокировать Fast User Switching. По крайней мере, необходимо четко проинструктировать пользователей, чтобы они всегда завершали административные сеансы по окончании работы, требующей полномочий Administrator. Чтобы блокировать Fast User Switching, необходимо запретить использование экрана Welcome для принудительной активизации процедуры безопасной регистрации (по Ctrl+Alt+Del). Сделать это на автономной системе XP можно несколькими способами:

  • Установить флажок Require users to press Ctrl+Alt+Delete на вкладке Advanced диалогового окна User Accounts.
  • Открыть раздел Change the way users log on or off в приложении User Accounts панели управления и отменить режим Use the Welcome screen.
  • Присвоить параметру реестра LogonType (в разделе HKEY_ LOCAL_MACHINESOFTWARE MicrosoftWindowsCurrentVersionPoliciesSystem) значение 1.

RunAs

Утилита командной строки RunAs (runas.exe) — самый простой способ переключиться в контекст безопасности другого пользователя в системе, входящей в состав домена. На автономной системе следует задействовать Fast User Switching. Корни RunAs — в службе Secondary Logon, которая позволяет запускать сеансы регистрации с использованием других учетных данных внутри текущего сеанса. До выхода Windows 2000 данная функциональность была реализована в утилите su.exe комплекта ресурсов Microsoft Windows NT Server 4.0 Resource Kit. Служба Secondary Logon устанавливается по умолчанию в Windows 2000 и более поздних версиях и запускается автоматически при начальной загрузке системы.

Например, чтобы запустить консоль управления Microsoft Management Console (MMC) в административном контексте безопасности, можно ввести следующую команду RunAs:

runas /user:administrator mmc

Затем RunAs просит ввести пароль администратора (экран 2). Если пароль введен правильно, утилита запускает экземпляр MMC. В Таблице 1 приведены важнейшие параметры командной строки RunAs.

RunAs можно запустить и из Windows Explorer. Для этого нужно щелкнуть правой кнопкой мыши на выполняемом файле или пиктограмме ярлыка и выбрать Run as, открыв диалоговое окно Run As (экран 3). В этом диалоговом окне представлены варианты альтернативных учетных данных. Если в контекстном меню пиктограммы нет пункта Run as (например, для утилит панели управления), следует нажать и удерживать клавишу Shift, одновременно щелкнув на пиктограмме правой кнопкой мыши. Или же можно назначить RunAs в качестве выполняемого по умолчанию действия для конкретного файла или ярлыка, открыв окно свойств файла или ярлыка, щелкнуть на кнопке Advanced и установить флажок Run with different credentials.

Еще один полезный прием — создать ярлык для окна командной строки администратора на рабочем столе для учетной записи пользователя, а затем придать окну такой вид, который будет постоянно напоминать о широких полномочиях данного окна. Например, можно изменить настройки для ярлыка в окне свойств, указав в поле Start in каталог C:windowssystem32, а затем ввести следующую команду в поле Target:

runas.exe /u:Administrator
"%windir%System32cmd.exe
/k cd c: && color fc &&
title !!!!! Administrator
console!!!!!"

Посмотрим еще раз на экран 3. В диалоговом окне Run As есть параметр для выбора текущей учетной записи Current user; выбирая этот параметр, можно также установить флажок Protect my computer and data from unauthorized program activity. В результате выбранные приложения будут запускаться в контексте безопасности учетной записи текущего пользователя, но с ограниченным маркером доступа. Следовательно, новый процесс будет лишен нескольких разрешений.

  • Если текущий пользователь - член групп Administrators, Power Users, Domain Admins или Enterprise Admins, то информация о членстве в этих группах будет из маркера доступа приложения удалена.
  • Приложению предоставляется только право чтения при обращении к реестру и запрещается доступ к разделу HKEY_CURRENT_USERSOFTWAREPolicies.
  • Приложение не сможет обращаться к каталогу профиля пользователя и любым его подкаталогам.
  • Приложению не предоставляется общесистемных полномочий, за исключением пользовательского права Bypass traverse checking.

Благодаря этим ограничениям режим RunAs превращается в мощное средство безопасности, например если нужно запретить определенным Web-узлам записывать данные в локальную систему. Более подробную информацию об этом режиме можно найти в Web-журнале Аарона Маргосиса, известного специалиста по применению минимальных полномочий в Windows по адресу http://blogs.msdn.com/aaron_margosis/archive/ 2004/09/10/227727.aspx.

RunAs можно применять и для запуска полной оболочки Windows в другом контексте безопасности. Это полезно, когда требуется подключать диски во вторичном сеансе регистрации. Диск, назначаемый из командной строки во вторичном сеансе регистрации, недоступен из сеанса Windows Explorer, если не запустить полную оболочку Windows в альтернативном контексте безопасности. Для этого следует уничтожить процесс explorer.exe из Task Manager, а затем ввести команду

runas /u:joe explorer.exe

в строке пункта меню File, Run программы Task Manager.

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

runas /u:%COMPUTERNAME%
Administrator "runas /netonly
/u:%USERDOMAIN%\%USERNAME%
cmd.exe"

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

Однако следует помнить, что использование RunAs может привести к сбою при запуске Windows Explorer. Это явление подробно объясняется во врезке «Пробел RunAs».

DropMyRights

С помощью программы Drop MyRights Майкла Ховарда можно запустить новый процесс в контексте неадминистративной учетной записи с сокращенными полномочиями. Данная программа удаляет из текущего маркера безопасности пользователя различные полномочия и идентификаторы безопасности (SID), а затем запускает с помощью этого маркера новый процесс. Например, чтобы запустить Microsoft Internet Explorer (IE) в контексте неадминистративной учетной записи, требуется ввести следующую команду:

dropmyrights iexplore.exe

DropMyRights поддерживает три неадминистративных учетных записи: Normal user (по умолчанию), Constrained user и Untrusted user. Пользователь может выбрать учетную запись, прибавив к команде DropMyRights параметр N, C или U. Полномочия каждой учетной записи подробно описаны в статье Microsoft «Browsing the Web and Reading E-mail Safely as an Administrator» (http://msdn.microsoft.com/library/en-us/dncode/html/secure11152004.asp); по этому же адресу можно загрузить DropMyRights.

Privilege Bar

Privilege Bar (экран 4) — сменная инструментальная панель Windows Explorer и IE, разработанная Аароном Маргосисом. В Privilege Bar показан уровень полномочий текущего окна Windows Explorer или IE. Кружок в панели окрашивается красным цветом для членов группы Administrators, желтым — для членов группы Power User и зеленым — во всех других контекстах. По щелчку на кружке на экране появляется окно с подробной информацией о группе и полномочиях (в основном содержимое маркера доступа) текущей учетной записи регистрации.

Экран 4. Панель Privilege Bar

Хотя в инструменте нет функций для переключения контекста учетной записи LUA, он напоминает пользователям об опасностях работы в Web и просмотра локальных и сетевых ресурсов из учетных записей с широкими полномочиями. Программный код Privilege Bar необходимо установить вручную, а соответствующие инструкции можно загрузить из Web-журнала Маргосиса (http://blogs.msdn.com/aaron_margosis/archive/ 2004/07/24/195350.aspx).

Лучше меньше, да лучше

Существует много простых решений, которые помогут администраторам и пользователям придерживаться принципа минимальных полномочий. В данной статье описаны лишь немногие приемы. В других решениях применяются программы виртуализации (например, VMware, Microsoft Virtual PC) для изоляции контекстов безопасности и ограничения программ, запускаемых на рабочих столах пользователей (например, с помощью Microsoft Software Restriction Policies). И конечно, очень важны обучение и тренировка пользователей.

Жан де Клерк - Член Security Office компании HP. Специализируется на управлении идентификационными параметрами и безопасности продуктов Microsoft. Автор книги Windows Server 2003 Security Infrastructures (издательство Digital Press). jan.declercq@hp.com


Пробел RunAs

Приходилось ли вам безуспешно пытаться запустить Windows Explorer с помощью RunAs, несмотря на правильно указанный пароль? Причина в том, что по умолчанию RunAs сначала выясняет, работает ли в системе экземпляр Windows Explorer, что всегда имеет место. Поэтому RunAs передает запрос существующему процессу Windows Explorer вместо того, чтобы запустить новый. Проблему можно устранить, если выбрать Tools, Folder Options из панели меню Windows Explorer, перейти к вкладке View и установить флажок Launch folder windows in a separate process. Можно также изменить параметр непосредственно в реестре, присвоив значение 1 элементу типа REG_DWORD SeparateProcess в разделе HKEY_CURRENT_USERSOFTWAREMicrosoftWindows CurrentVersionExplorerAdvanced.

Необходимо назначить этот пользовательский параметр для учетной записи, в контексте безопасности которой предстоит запустить новый экземпляр Windows Explorer (не в контексте безопасности текущей учетной записи). Установить этот флаг из сеанса регистрации текущей учетной записи можно двумя способами.

  • Запустить Internet Explorer (IE) в контексте безопасности другой учетной записи. Ввести локальный адрес в панели Address, чтобы поменять меню на соответствующее меню Windows Explorer, затем выбрать Tools, Folder Options из панели меню и перейти к вкладке View. Установить флажок Launch folder windows in a separate process.
  • Запустить regedit или regedt32 в контексте безопасности другой учетной записи. Перейти в раздел реестра HKEY_CURRENT_USERSOFTWAREMicrosoftWindows CurrentVersionExplorerAdvanced. Присвоить параметру SeparateProcess значение 1.