Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 130, ОКТЯБРЬ 2009 г.

Сражение на трех фронтах. Защищаем популярные сервисы платформы Microsoft

Мартин Пранкевич (urban.prankster@gmail.com)

В сети любой компании можно встретить достаточно большое количество самых разнообразных серверов - почтовый, Web, SQL, VoIP и многие другие, часто они запущены в виртуальных машинах. Учитывая, что сервисы в Windows ставятся при помощи мастеров, с их первичной настройкой обычно справляется администратор, обладающий базовыми знаниями. Но такая система будет недостаточно защищена и может стать источником проблем. В этой статье разберем, как повысить защиту флагманских продуктов Microsoft: Exchange Server, IIS и Hyper-V.

Защита Exchange Server

Обеспечение правильной и бесперебойной работы почтового сервиса является одной из приоритетных задач администратора. Можно спорить до хрипоты, что свободные сервера лучше, но факт остается фактом - Exchange Server пользуется большой популярностью среди многих компаний, благодаря надежности работы, тесной интеграции с Active Directory и планирующим особенностям. По данным разных источников ему отводят 2-3 место (после Sendmail). А это огромная цифра. Процесс установки и настройки Exchange Server 2007 был рассмотрен моим коллегой в октябрьском номере ][ за 2007 год, но чтобы довести сервер до ума, необходимо произвести еще ряд действий.

Можно прочитать кучу мануалов и рекомендаций и выполнять все, что в них написано. Я расскажу о более простом пути. В SP1 для Win2k3 стал доступен Мастер настройки безопасности (Security Configuration Wizard, SCW). Визард достаточно прост в обращении, ответив на несколько вопросов, можно сократить количество уязвимых мест и определить меры для повышения безопасности в соответствии с ролями, выполняемыми сервером. Но нужно помнить, что мастер не занимается развертыванием новых компонентов и не настраивает роли, это задача администратора.
По умолчанию SCW не устанавливается, он доступен в консоли "Установка и удаление программ - Установка компонентов Windows". Просто отмечаем "Мастер настройки безопасности" и ставим обычным образом (понадобится системный диск). Но если после установки запустить "SCW Viewer" (для использования SCW требуются права администратора домена) и просмотреть базу данных настроек безопасности, то обнаружим, что в списке известных ролей имеются настройки только для Exchange 2003, а для 2007 их нет.

В данном случае добавить нужные роли очень легко. Microsoft вместе с установочными файлами Exchange предлагает файлы-расширения для SCW. Находим в подкаталоге Scripts файлы Exchange2007.xml и Exchange2007Edge.xml (в случае использования сервера Win2k8 берем соответственно Exchange2007_Winsrv2008.xml и Exchange2007Edge_Winsrv2008.xml), которые представляют собой шаблоны безопасности, используемые SCW в своей работе. Файл Exchange2007.xml содержит настройки для всех ролей Exchange, за исключением Edge Transport. Напомню, что роль Edge Transport существенно отличается от остальных ролей Exchange. Такой сервер устанавливается, как правило, в DMZ и принимает на себя первый удар. Поэтому требования к его безопасности сильно отличаются от серверов, находящихся под защитой межсетевых экранов. Также это единственная роль, не требующая подключения к Active Directory. Соответственно для роли Edge Transport используется файл, содержащий префикс Edge.

Чтобы SCW-файлы были видны мастеру, их следует скопировать в каталог %SystemRoot%\security\msscw\kbs, а затем зарегистрировать при помощи утилиты SCWCMD.EXE (графический вариант - SCW.EXE), указав имя политики и путь к файлу шаблона:

> SCWCMD Register /kbname:Exchange2007 /kbfile:C:\Windows\security\msscw\kbs\Exchange2007.xml
> SCWCMD Register /kbname:Exchange2007Edge /kbfile:C:\Windows\security\msscw\kbs\Exchange2007Edge.xml

В ответ мы должны получить сообщение "Команда выполнена успешно", а в каталоге kbs появятся два файла - Exchange2007loc.xml и Exchange2007Edgeloc.xml, в которых содержатся объявления ролей.Кстати, при помощи SCWCMD можно просмотреть настройки, указанные в XML-файлах. Например так:

> SCWCMD View /x:C:\Windows\security\msscw\kbs\Exchange2007Edge.xml

В результате откроется окно "SCW Viewer" с установками, находящимися в данном файле.Если производится управление несколькими серверами, то удобнее хранить базу данных настроек безопасности централизованно и использовать на всех серверах сети. В этом случае сетевой путь к базе следует прописать в командной строке:

> SCW /kb \\server\scwkb

Из меню "Администрирование" запускаем мастер настройки безопасности, пропускаем первый шаг, на котором просто дается общая информация, на втором выбираем "Создать новую политику безопасности". Остальные пункты позволяют изменить существующую политику, применить политику и произвести откат последней примененной политики. Обращаю внимание на последний вариант, который позволяет в случае проблем, появившихся после применения политики, очень просто отменить все изменения, вернув целевую систему в первоначальное, рабочее состояние. Не следует принудительно завершать работу мастера, закрывая окно с настройками, так как сервер может остаться лишь частично настроенным, вместо этого надо выполнить откат политик сразу после применения. Хотя полный бэкап для подстраховки еще никому не вредил, наоборот доказано, что сон админа при наличии резервной копии крепче, а досуг длиннее.

На следующем шаге указываем сервер, который будет использован как образец при создании политики безопасности. В списке по умолчанию отображается локальная система, для удаленной системы указываем ее DNS, NetBIOS имя или IP-адрес. По окончании сканирования базы данных и анализа текущего состояния системы нажатием кнопки "Просмотр базы данных" можно получить отчет о найденных ролях и других возможностях. После внедрения новых политик в списке обнаруживаем несколько ролей, связанных с Exchange 2007, если их нет, регистрацию XML-файлов, очевидно, следует повторить. Щелчок по любому пункту позволяет посмотреть подробную информацию, строка "Состояние" покажет, установлена и включена ли выбранная роль.

Переходим к следующему этапу. Читаем сообщение о том, что неверное указание ролей может привести к неправильным настройкам, и переходим к этапу выбора ролей. К их анализу следует подойти осторожно, так как мастер хотя и использует все возможные методы определения, но все-таки может ошибаться. По умолчанию помощник покажет только установленные роли. Все доступные роли можно увидеть, используя раскрывающийся список "Просмотреть". Далее аналогично отмечаем клиентские функции (DHCP, DNS-клиенты и так далее) и компоненты, связанные с задачами администрирования (брандмауэр Windows, архивация данных, обозреватель сети и т.п.) Все внимательно просматриваем и оставляем только то, что действительно используется. В следующем окне увидим список дополнительных служб, с ними обычно проблем не возникает. Хотя если в системе обнаружена незадействованная дополнительная служба, лучше прекратить работу с мастером, удалить службу и повторить настройки, запустив SCW повторно.

Теперь не менее важный этап - определяем, что делать с неизвестными службами. По умолчанию предлагается не изменять режим запуска службы. Это спасает от возможных проблем в том случае, если мастер не корректно распознал все установки на сервере, нужные службы еще не установлены, или когда политика будет применяться на нескольких серверах. В защищенных средах следует использовать вариант "Отключить эту службу". Смотрим резюме по планируемым изменениям. В таблице несколько столбцов, где отображается текущий и планируемый статус запуска службы. Если настройки верны, переходим в раздел "Сетевая безопасность". Установив флажок в первом окне, можно пропустить этот раздел. Выбираем порты и одобряем приложения. Используя кнопки Добавить, Изменить и Удалить, можно соответственно указать новый порт и приложение, а также изменить или удалить имеющиеся настройки. По умолчанию доступ к разрешенным портам возможен с любого адреса, нажав кнопку Дополнительно, можно указать для выбранного приложения список разрешенных IP-адресов и подсетей. В частности, проверяем, чтобы были одобрены порты, принадлежащие Exchange (в контексте статьи и службы IIS).

Далее проверяем и подтверждаем внесенные изменения.Следующий раздел - "Параметры реестра", в нем производятся настройки протоколов, используемых для связи с другими системами. Первый шаг - настройка требования подписи SMB. Здесь два флажка, позволяющих указать, чтобы все подключающиеся системы отвечали минимальным требованиям к ОС. Второй флажок активирует функцию подписи трафика файлов и печати (данная опция требует дополнительной мощности CPU). Параметр реестра, который будет при этом изменен, указан внизу страницы. Второй шаг - настройка цифровой подписи LDAP, здесь один пункт, позволяющий указать минимальные требования к ОС (от Win2kSP3 и выше). Третий шаг - методы проверки подлинности LAN Manager для исходящих соединений. По умолчанию используются только учетные записи в домене, что обеспечивает наибольшую защищенность. Остальные (локальные учетные записи и пароли общего доступа Win95-Me) лучше не использовать (см. статью "Максимальная защита AD" в июльском ][ за 2009 год). Пункты на четвертом шаге будут зависеть от установок на предыдущем этапе. В нашем случае будет предложено выбрать метод исходящей проверки подлинности для компьютеров домена. Мастер предложит разрешить аутентификацию для систем Win2kSP6 и выше, а также синхронизировать время с NTP-сервером. Проверяем установки и подтверждаем выбор.

Еще один этап - "Проверка аудита", где определяются цели аудита. Здесь просто отмечаем один из трех вариантов: "Не выполнять аудит", "Выполнять аудит успешных действий", "Выполнять аудит успешных и неуспешных действий". В сводке, кроме контроля установок, можно включить/отключить использование шаблона безопасности SCWAudit.inf, который задает ACL доступа к файловой системе (примечание: эти установки нельзя откатить при помощи SCW). Далее в зависимости от имеющихся ролей могут настраиваться специфические установки. Например, при наличии IIS мастер позволит произвести настройку динамического содержимого и выбрать сохраняемые виртуальные каталоги (они отключены по умолчанию, поскольку представляют собой потенциальную угрозу). Это все. Сохраняем политику безопасности, указав имя файла и описание. Нажав "Просмотр политики безопасности", можно просмотреть все настройки. Здесь же при необходимости подключаются готовые шаблоны безопасности, которые расширят произведенные установки. Нажимаем Далее и выбираем применить эту политику сразу или отложить. Сохраненную политику затем можно внедрить при помощи SCW.

Защищаем IIS

Веб-сервер IIS (Internet Information Services) пользуется популярностью в первую очередь благодаря тому, что входит в комплект ОС, его очень просто установить и легко интегрировать в среду Windows. Надо признаться, многие администраторы его откровенно не долюбливают, и все из-за того, что в предыдущих версиях было выявлено остаточно много ошибок (в том числе связанных с безопасностью), да и производительностью он не блистал. В Win2k8 разработчики представили IIS 7.0 (IIS 7.5 в Win2k8R2), в котором учтены ошибки прошлого, а сам дизайн существенно переработан. В частности, в IIS реализован тот же подход, что и в самой Win2k8. По умолчанию устанавливается минимальный набор компонентов, а затем админ добавляет то, что действительно необходимо.

Так по умолчанию задействовано лишь 9 из 40 Role Services, которые обеспечивают основные функции HTTP, статическое содержимое и его сжатие, мониторинг и фильтрацию запросов, ведение журнала и консоль управления IIS (IIS Manager). Для удобства выбора Role Services разделены на 8 подкатегорий. Среди категорий особое внимание хотелось бы обратить на IIS 6.0 Management Compatibility (Совместимость метабазы IIS 6), отвечающую за совместимость по API с предыдущей версией веб-сервера. Например, при установке Exchange Server 2007 активация этого пункта обязательна. Дополнительный модуль FastCGI обеспечивает быструю обработку Perl, PHP, Ruby и других web-технологий, позволяя обслуживать большее число пользователей.

В IIS имеется внушительное количество настроек, при помощи которых можно настроить различного рода ограничения и тем самым повысить безопасность. Разберем некоторые из них.

Основные действия будем производить в Диспетчере служб IIS, ссылка для запуска которого находится в меню Администрирование (консольная команда Inetmgr).

По умолчанию к узлу будут иметь доступ системы со всех IP-адресов, компьютеров и доменов, при необходимости легко можно ограничить этот список, установив разрешения и запреты. Открываем пункт "Просмотр возможностей", выбираем "Ограничения IPv4-адресов и имен домена" и в панели "Действия" щелкаем добавить разрешающий или запрещающий элемент. Чтобы из консоли запретить доступ, например с адреса 10.0.0.1, пишем:

> appcmd set config /section:ipsecurity /+"[ipaddress='10.0.0.1',allowed='false']"

Соответственно, чтобы разрешить, меняем "false" на "true".Чтобы узел принимал подключения не со всех сетевых интерфейсов, используем пункт "Привязки узла" и указываем адреса для каждого порта (80 и 443).

Страница "Проверка подлинности" позволяет настроить методы проверки подлинности, которые могут быть использованы клиентами при подключении. Анонимный доступ по умолчанию включен. Выбрав одноименный пункт и нажав ссылку "Изменить", можно задать учетную запись, от имени которой будет производиться доступ (по умолчанию IUSR), или указать удостоверение пула приложений (по умолчанию сетевой сервис). Все эти действия можно выполнить из командной строки:

> appcmd set config /section:anonymousAuthentication /userName: string /password: string

Среди других методов проверки подлинности предлагается: Active Directory, обычная и дайджест-проверка.Еще одна настройка скрыта под ссылкой "Ограничения", расположенной в меню "Действия". В появившемся окне настраивается максимальная полоса пропускания для узла, время ожидания подключения в секундах (по умолчанию 180) и максимальное число одновременных подключений.

Фильтры запросов ограничивают типы обрабатываемых IIS HTTP-запросов, с их помощью администратор может заблокировать потенциально опасные действия. Из графического интерфейса управлять фильтрами нельзя, для этого следует использовать команду Appcmd.exe или WMI-сценарий. Просмотреть установки можно командой:

> appcmd list config -section:requestFiltering

Например, запретим обработку незарегистрированных расширений имен файлов:

> appcmd set config /section:requestfiltering /fileExtensions.allowunlisted:false

Чтобы запретить файлы с разрешением "exe", используем такую команду:

> appcmd set config /section:system.webServer/security/requestFiltering -fileExtensions.[fileExtension='.exe'].allowed:false

Остальные параметры позволяют указать максимальный размер содержимого, длину URL и HTTP-заголовка, запрещенные знаки в URL и многое другое.

Обеспечиваем безопасность Hyper-V

Тема номер один последних лет - виртуализация, и не нужно быть пророком, чтобы предсказать, что в дальнейшем связанные технологии будут только развиваться. Продукты виртуализации также несут дополнительные риски, и их защите сейчас уделяется недостаточно внимания. В целом мероприятия по обеспечению безопасности ОС и приложений, работающих в виртуальной машине, мало отличаются от таковых в "реальном" компьютере, но все же есть свои особенности. После установки роли Hyper-V все ОС, работающие на компьютере, включая основную, будут работать как виртуальные. Виртуальные машины используют одни и те же ресурсы реальной системы, что уже несет повышенную опасность. Hyper-V хранит все настройки на жестком диске, а значит, файлы могут быть изменены вирусом или другой программой. Атаке могут подвергнуться и сами сервисы, обеспечивающие функции виртуализации.

Действия по обеспечению безопасности Hyper-V можно разделить на две части: защита основной системы, в том числе и физическая, и защита виртуальной среды. Начнем с обновления системы и установки патчей. Просмотреть список доступных обновлений можно в Центре обновлений или командой:

> wmic qfe list

Так необходимо обязательно установить обновление KB950050, которое улучшает безопасность и стабильность Hyper-V, а также языковый пакет Language Pack for Hyper-V (KB951636). Кроме этого, рекомендуется обновление для Vista (KB952627), позволяющее включить поддержку удаленного управления сервером Win2k8 с ролью Hyper-V. Все эти файлы можно легко найти поиском.

На сервере с ролью Hyper-V не желательно наличие других сервисов, т.е. он не должен выполнять более никаких функций. Исключение составляют антивирусная защита и система обнаружения атак (IDS), установка которых на одной системе позволит защитить сразу группу гостевых ОС. При этом во избежание конфликтов необходимо исключить из сканирования каталоги, в которых хранятся файлы виртуальных машин, а также файлы vmms.exe и vmwp.exe (находятся в %SystemRoot%\System32).

Обязательно ограничиваем список пользователей, которые могут регистрироваться на данной системе. Находим в группе "Администрирование" ярлык "Локальная политика безопасности" (Local Security Policy) и в разделе "Локальные политики" выбираем "Назначение прав пользователя" (User Rights Assignment). Теперь ищем и устанавливаем политики "Локальный вход в систему", "Запретить локальный вход", "Отказать в доступе к этому компьютеру из сети".

Чтобы упростить защиту сервера, желательно использовать как минимум 2 сетевых адаптера: один для удаленного администрирования (мастер установки роли выдаст запрос о выборе сетевой карты для управления), второй – непосредственно виртуальными машинами для обмена данными.
Вообще говоря, для роли Hyper-V идеально подходит режим Server Core. В этом случае снижается количество потенциальных уязвимостей, увеличивается время наработки на отказ.

По умолчанию Hyper-V допускает к управлению виртуальными машинами только администраторов. Чтобы не включать в эту группу пользователей, лучше делегировать им необходимые права. Для этой цели следует использовать Диспетчер авторизации (Authorization Manager), при помощи которого создаются ролевые разрешения. Модель безопасности достаточно хорошо продумана, суммарные права определяются на основе нескольких составляющих - операция (разрешенные действия), задачи, роль, область (объекты, которыми можно управлять). Запускаем диспетчер, набрав в консоли "AzMan.msc", по умолчанию окно диспетчера пусто, чтобы начать работу, требуется выбрать хранилище. Это может быть служба Active Directory или ADAM (Active Directory Application Mode), сервер Microsoft SQL или XML. В поставке Windows имеется нужное хранилище - файл InitialStore.xml, расположенный в C:\Program Data\Microsoft\Windows\Hyper-V. Этот файл появится после создания роли Hyper-V, и по умолчанию в этом же каталоге хранятся настройки всех виртуальных машин. Вызываем контекстное меню и в нем пункт "Открыть хранилище данных для авторизации" (Open Authorization Store), указываем на данный файл.

Переходим в Microsoft Hyper-V services - Role Assignments - Administrator, затем в меню Action выбираем "Assign Users and Groups" и "From Windows and Active Directory". После этого назначаем учетную запись, которой необходимо передать права на управление Hyper-V. Теперь выбранный пользователь может выполнять задачи по управлению системой виртуализации, не являясь администратором сервера. Аналогичным образом при помощи других пунктов меню раздаются права на конкретные виртуальные машины и т.п. Хотя в этом случае настройки будут храниться на конкретной машине, что не всегда удобно, AzMan позволяет хранить настройки в Active Directory. Более подробную информацию по MMC-оснастке AzMan смотри на TechNet: technet.microsoft.com/en-us/library/cc786774(WS.10).aspx.

По умолчанию файлы виртуальных дисков VHD (Virtual Hard Disk) лежат в директории %users%\Public\Documents\Hyper-V\Virtual Hard Disks. Эти настройки можно изменить из Hyper-V Manager, но в этом случае придется побеспокоиться об установке корректных прав доступа на каталог и файлы. Чтобы упростить себе задачу, лучше хранить все файлы в отдельных каталогах на одном логическом томе, а для большей защиты активировать BitLocker (Encrypting File System не поддерживается Hyper-V).

Соответственно, при назначении лимитов на CPU, RAM и HDD для каждой виртуальной машины не забываем, что они имеют физический "нерезиновый" аналог. Скомпрометированная виртуальная машина, которой доступна вся системная мощь, может запросто заблокировать работу других VM.

Заключение

Защита сервисов - не единовременная задача, а регулярная работа. Сюда входит установка последних патчей, анализ трафика, логов и системы аудита. Только так можно быть уверенным в том, что твой сервер останется под полным контролем, и тебе не придется ночью, сломя голову, бежать на фирму восстанавливать его работу.

INFO

Статью об установке и настройке Hyper-V читай в статье "Гиперактивная виртуальность", опубликованной в февральском номере ][ за 2009 год.

Для получения справки по параметрам утилиты SCWCMD используй команду «SCWCMD transform».

WWW

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001