Безопасность своими руками
А. Сотский
Управление разрешениями через шаблоны безопасности и групповые политикиКак ни странно, опыт преподавания курсов по безопасности Windows 2000 и Windows Server 2003 в нашем учебном центре показывает, что даже теперь, в начале 2004 года, то есть через четыре года после появления Active Directory, у квалифицированных специалистов нет четкого представления о групповых политиках, основном инструменте настройки Active Directory. В частности, возможность тиражировать разрешения на файлы и параметры реестра с помощью групповых политик вызывает на наших курсах живой интерес. Этому вопросу и посвящена данная статья. Политики и шаблоныВсем читателям наверняка знакомы инструменты проверки параметров защиты компьютера на соответствие шаблону и редактирования шаблонов защиты компьютера - оснастки Security Templates и Security Configuration and Analysis. Обучение работе с этими средствами входит в программу официальных курсов Microsoft, их применение описано в литературе (см., например, "Безопасность сети на основе Windows 2000: учебный курс MCSE". М.: Русская Редакция, 2001), в том числе в журнальных статьях ("Все и сразу" С. Гордейчика в № 1 Windows &.NET Magazine/RE за 2003 год; "Конструктор шаблонов безопасности" М. Минаси в № 5 Windows & .Net Magazine/RE за тот же год). Во всех этих материалах упоминается, что шаблоны безопасности можно импортировать в групповые политики, тиражируя тем самым записанные в них параметры. Во всех статьях говорится, что с помощью шаблонов безопасности можно настраивать разрешения на объекты файловой системы и параметры реестра. Но нигде не делается на этом акцент. Давайте же восполним пробел. Рассмотрим оснастку Security Templates (см. экран 1).
Если открыть любой из имеющихся в системе шаблонов, увидим, что в его составе имеются ветви File System, Registry и System Services. В составе этих ветвей хранится информация о разрешениях на объекты файловой системы, параметры реестра и службы, соответственно. Достаточно щелкнуть два раза мышью по любому имеющемуся в этих ветвях объекту и нажать в открывшемся окне кнопку Edit Security - откроется стандартное окно редактирования списка разрешений для объекта. Немногие знают, что доступ к системным службам тоже можно разграничивать, устанавливая разрешения: кому-то позволено только просматривать состояние службы, кому-то - останавливать и запускать службу и т. д. Если интересующий вас объект в списке отсутствует, следует в меню All Tasks выбрать пункт Add file or Folder, Add Key или Add System Service, после чего перейти к объекту на своем компьютере, если он есть, либо ввести полный путь к файлу/папке или параметру реестра с клавиатуры. Из служб можно выбирать только те, что имеются на компьютере, на котором запускается оснастка. Настроить параметры системы в соответствии с тем, что указано в шаблоне, можно тремя способами: с помощью оснастки Security Configuration and Analysis, через командную строку с помощью команды Secedit и через групповые политики. Последний вариант предпочтительнее остальных, так как позволяет тиражировать эти настройки сразу на большое количество компьютеров. Инкрементальные шаблоны безопасности (см. упомянутую выше статью С. Гордейчика) также удобно применять, используя групповые политики и их механизм наследования параметров. В любой объект групповой политики можно импортировать содержимое шаблона безопасности, как показано на экране 2, после чего изменять любые настройки по своему усмотрению. В оснастке Group Policy Editor для нужного объекта групповой политики следует выбрать ветвь Computer Settings - Windows Settings - Security Settings. Вызвав для этой ветви меню All Tasks, необходимо выбрать пункт Import Policy и в открывшемся окне выбрать нужный файл с расширением INF, содержащий параметры искомого шаблона безопасности. Далее можно редактировать эти настройки. Соответствующий интерфейс полностью воспроизводит интерфейс редактирования шаблона безопасности в оснастке Security Templates. Где взять шаблоныШаблоны можно брать в разных местах. Прежде всего, существует стандартный набор шаблонов безопасности, поставляемых вместе с операционной системой. Полный обзор таких шаблонов содержится в упомянутых выше публикациях, замечу лишь, что разрешения на файлы и разделы реестра настраиваются только в следующих шаблонах:
Приведенный список далеко не полный, новые шаблоны появляются регулярно. Некоторые организации и ведомства также предлагают свои варианты шаблонов безопасности. Эти шаблоны затрагивают списки доступа к файлам и системным компонентам через реестр. В частности, для Windows 2000 свои шаблоны предлагают Агентство национальной безопасности США (www.nsa.gov) и Национальный институт стандартов и технологий США (www.nist.gov). Для Windows Server 2003 обе организации рекомендуют пользоваться шаблонами, поставляемыми вместе с "Руководством по защите систем на платформе Windows Server 2003" (Microsoft Windows Server 2003 Hardening Guide). Шаблоны, предлагаемые NIST, могут быть интересны "любителям антиквариата" тем, что наряду с файлами, входящими в состав стандартной установки операционной системы Windows 2000 Professional, в них описаны списки доступа на файлы и разделы реестра, соответствующие установленному на компьютере Netscape Navigator 4.6. Сделай самПредставьте себе ситуацию: вы хотите распространить через шаблоны безопасности или групповые политики настройки доступа к объектам какой-либо программы, установленной на компьютере, а готового шаблона, описывающего эту программу, найти не удалось. В таком случае придется изготовить шаблон самостоятельно. Если программа спроектирована со стандартным размещением компонентов, тогда все просто: в шаблон следует внести папку программы, по умолчанию C:\Program РЛек\<название программы> и параметр реестра HKEY_LOCAL_MACHlNE\Software \<название разработчика> \<название программы >. Для этих объектов имеет смысл задать разрешения: Administrators - Full Control, Users - Read&Execute; с наследованием разрешений дочерними объектами. Те программные файлы, которые программа установки приложения записывает в системную папку %Windir%\System32 и папку общих программных компонентов C:\Program Files\Common Files, унаследуют аналогичные разрешения от указанных папок. В случае программы со стандартным размещением компонентов все настраиваемые индивидуальные параметры для пользователя сохраняются в его профиле, путь к которому программа запрашивает у системы, а также в ветви реестра HKEY_CURRENT_USER. К сожалению, не все программы написаны со стандартным размещением компонентов. В таком случае требуется исследование программы, как в процессе установки, так и в ходе дальнейшей работы. Здесь можно задействовать как стандартные средства регистрации событий и аудита Windows, так и дополнительные утилиты. Существуют две бесплатные утилиты, разработанные компанией Sysinternals (www.sysinternals.com), Filemon и Regmon. Они предназначены для отслеживания операций с файлами и реестром. В данном случае трудно применить аудит доступа к объектам для регистрации событий безопасности Windows, так как для его использования требуется настройка на уровне отдельных объектов - папок, файлов и разделов реестра, а их для вновь устанавливаемой программы еще нужно выявить. Регистрацию событий и аудит Windows придется тем не менее задействовать: следует включить регистрацию событий категории Process Tracking. Для чего - будет сказано ниже. Рекомендуется запустить программы Filemon (см. экран 3) и Regmon непосредственно перед запуском утилиты установки программы и собрать сведения об операциях с файлами и реестром, выполняющихся в течение процесса развертывания. После этого самое главное - сохранить полученные протоколы перед тем, как перезагружать компьютер после установки программы. Протоколы, получаемые в результате работы программ Filemon и Regmon, - это текстовые файлы в формате CSV, которые можно импортировать в Excel или Access для анализа. В этих протоколах фигурируют все операции в хронологическом порядке, которые выполнялись на компьютере как в ходе работы программы установки, так и в ходе работы системных служб или других программ, запущенных в это время. Поэтому обработка протоколов сводится к двум основным операциям: сначала следует отфильтровать все операции, кроме записи файлов и записи в реестр, а затем отбросить все операции, кроме тех, которые инициированы программой установки (либо службой Microsoft Installer, процесс MSlExec) и процессами, порожденными процессом установки. Для выявления этих процессов нужно проанализировать журнал аудита событий категории Process Tracking. По оставшимся записям требуется составить отчет с перечислением задействованных объектов - файлов, папок и разделов реестра. Этот отчет необходимо экспортировать в текстовый файл, после чего минимальное дополнительное оформление превратит его в готовый шаблон защиты:
Затем следует подставить общий стандартный заголовок в начале файла, каждую строку взять в кавычки и подставить в конец строки после кавычек: ",0,"D:AR(A;CI;KA;;;BA)(A;CI;KR;;;BU)"" (именно такой текст, только внешние кавычки следует убрать). Эту строку можно воспроизвести на своем компьютере, сделав некий тестовый шаблон с установленными разрешениями на один файл и один раздел реестра, а затем открыв соответствующий INF-файл в Notepad (см. листинг 1). Приведенные в листинге разрешения соответствуют стандартным разрешениям по умолчанию в среде Windows Server 2003. Излишне говорить, что полученный шаблон настроек необходимо сначала протестировать, прежде чем распространять через групповые политики. В значительной части случаев сразу создать работоспособные настройки, скорее всего, не получится. Дело в том, что многие программы сохраняют свои промежуточные рабочие данные непосредственно в папке программы, а не в папке, указанной в переменной окружения %ТЕМР%. Часто приходится использовать такие программы, написанные для Windows 95/98/МЕ, так как ждать новых версий, написанных с учетом требований многопользовательской операционной системы, обеспечивающей разграничение доступа к ресурсам, по тем или иным причинам не приходится. Если установить на файлы и папки разрешения, указанные выше (Administrators - Full Control, Users - Read & Execute, унаследовать разрешения от папки на дочерние объекты), тогда такую программу можно будет запускать и полноценно использовать лишь при наличии прав администратора на данном компьютере. В таком случае опять придется задействовать мониторинг событий, но уже не в процессе установки, а в ходе повседневной работы программы. Вновь следует использовать утилиты Filemon и Regmon, включить регистрацию событий категории Process Tracking, чтобы выявить дочерние процессы, запускаемые данной программой, и отследить их активность тоже. Кроме того, необходимо включить регистрацию событий категории Use of User Rights: возможно, для обеспечения работоспособности программы придется наделить пользователей какими-то системными привилегиями, которые у администратора имеются изначально. При обработке протоколов, полученных при использовании программ Filemon и Regmon, следует:
Еще один способЕсли на машине установлена Wndows ХР или Windows Server 2003, можно вместо манипуляций с Filemon и Regmon модифицировать ярлык программы, чтобы она запускалась в режиме эмуляции рабочей среды более ранней версии Windows. Но если при этом используется эмуляция не Windows NT/2000, запуск в таком режиме приводит к расширению прав данного процесса до уровня локального администратора или даже системы, что сводит на нет всю защиту, обеспечиваемую операционной системой. Поэтому в корпоративной среде указанной возможностью пользоваться вряд ли стоит - слишком велик риск. Впрочем, уровень риска оценивать вам, сопоставлять его с приобретенным удобством тоже вам, и, хотя, в конечном счете принимать решение, возможно, придется вашему начальнику, за последствия отвечать опять же вам. К тому же такие параметры ярлыка программы, в отличие от разрешений на файлы и реестр, через шаблоны безопасности и групповые политики тиражировать невозможно.
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=6268 |