Практические решения для защиты виртуальных машин

Программы виртуализации — ходовой товар на рынке высоких технологий. Такие поставщики, как Microsoft и VMware, выпускают продукты виртуализации как для серверов, так и для рабочих станций; аппаратная поддержка виртуализации реализована в процессорах AMD и Intel. Благодаря преимуществам технологий виртуализации мы наконец можем эффективно использовать избыток вычислительных возможностей современных многопроцессорных и многоядерных серверов: на одном аппаратном сервере можно запустить несколько экземпляров операционных систем, каждый из которых выглядит для сетевых пользователей как настоящий специализированный сервер.

Принимая решение о виртуализации, необходимо учитывать некоторые особенности этой технологии. В частности, процесс виртуализации сопряжен с определенными проблемами безопасности. Прежде чем решительно внедрять виртуализацию, требуется провести анализ Virtual Server и его основных уязвимых мест. Кроме того, необходимы практические решения, применимые почти к любым компаниям.

Тщательная подготовка базового компьютера

Установить Virtual Server чрезвычайно просто, но для безопасности нужно принять ряд подготовительных мер. Базовая операционная система — самое слабое звено Virtual Server: если она поражена, то потенциально уязвима каждая связанная с ней виртуальная машина. Поэтому физический сервер должен быть установлен в надежно защищенном месте.

При запуске Virtual Server каждой гостевой операционной системе выделяется физическая память, доступная базовой операционной системе. Виртуальные диски, используемые виртуальными машинами, обычно хранятся в напрямую подключаемом устройстве хранения (DAS) или в запоминающих устройствах, соединенных по каналу Fibre Channel. Получив физический доступ к компьютеру, злоумышленник может запустить физический или программный отладчик и следить за работой гостевых операционных систем, собирая секретные данные, например пароли. Злоумышленник также может получить доступ к виртуальным дискам и читать их, как будто они представляют собой простые файлы, и, что весьма вероятно, извлекать конфиденциальную информацию с использованием бесплатных аналитических инструментов или даже простого шестнадцатеричного редактора.

Необходимо максимально надежно защитить базовую операционную систему. Во-первых, следует принять обычные меры предосторожности: удалить локальные учетные записи, в которых нет необходимости, и назначить оставшимся учетным записям надежные пароли. Затем требуется сократить поверхность атаки, удалив любые необязательные службы и приложения. Virtual Server нельзя запускать вместе с другими серверными продуктами, такими как Microsoft Exchange Server или SQL Server. Microsoft IIS следует запускать в базовой операционной системе для администрирования Virtual Server, но не стоит развертывать дополнительные Web-узлы. Если злоумышленник дистанционно проникнет через какую-нибудь лазейку, он сможет управлять всей базовой операционной системой и получить доступ к VM. При уменьшении поверхности атаки снижается до минимума вероятность того, что взломщик отыщет слабое место для проникновения. Дополнительное преимущество сокращенной поверхности атаки — в долгосрочной перспективе придется применять меньше программных исправлений. Это важное преимущество, так как применение исправлений может повлиять на работоспособность гостевых операционных систем.

Если базовая операционная система — автономный сервер домена, важно убедиться, что пользователям, не имеющим законных прав, запрещено регистрироваться в базовой операционной системе по сети (для доступа к общим сетевым ресурсам или через службу Terminal Services). Поэтому базовая операционная система для совместного доступа к файлам и принтерам не используется. Настроить политику безопасности можно с помощью оснастки Local Security Policy консоли Microsoft Management Console (MMC) или объекта групповой политики GPO. Запустите оснастку, разверните Local Policies и щелкните на User Rights Assignment в левой панели. В правой панели следует дважды щелкнуть на Deny access to this computer from the network и убедиться, что пользователи, которым не нужен доступ к базовой операционной системе (или группы, членами которых они являются) внесены в список отказников. Повторите процедуру для Deny logon through Terminal Services. Запрет доступа к базовой операционной системе через сеть и службы Terminal Services не помешает пользователям обращаться к службам, предоставляемым виртуальными машинами на сервере. Чтобы ограничить доступ к этим системам, их необходимо настроить аналогично. Для дополнительной защиты базового компьютера полезно задействовать брандмауэр Windows Firewall операционной системы Windows 2003 SP1 и протокол IPsec. Однако одна простая настройка IPsec и брандмауэра базовой операционной системы не всегда позволяет предотвратить доступ пользователей к службам в гостевых операционных системах.

Следует также проанализировать стратегию управления программными обновлениями для базовых операционных систем с Virtual Server. Например, не стоит настраивать базовую операционную систему на использование службы Microsoft Update (или внутреннего механизма обновления, такого как SMS или WSUS) и автоматическую перезагрузку после обновления. Перезагружая таким образом сервер, можно потерять все данные виртуальных машин, если предварительно не принять меры к тому, чтобы корректно закрыть гостевые операционные системы или по крайней мере сохранить их состояние на диске. На практике это означает, что необходимо найти способ обновлять базовую операционную систему, не снижая готовности гостевых операционных систем.

Начальная настройка конфигурации

Чтобы установить Virtual Server 2005 R2 Enterprise Edition, необходимо сначала загрузить продукт. Сведения о загрузке приведены во врезке «Дополнительные ресурсы»; требуется регистрация. Также необходимо загрузить сопутствующую документацию, которая содержит полезные сведения. Не забудьте установить IIS перед установкой Virtual Server.

Дважды щелкните мышью на загруженном файле setup.exe, чтобы запустить мастер Virtual Server Setup Wizard, и пройдите по этапам простого процесса установки. Мастер просит выбрать порт для административного Web-узла и настроить Web-узел для ограниченного делегирования. Обычно административный Web-узел работает в контексте подключенного к нему пользователя. При этом все файлы ресурсов (например, файлы конфигурации и виртуальные диски) должны находиться в напрямую подключенном хранилище (DAS). Если планируется обращаться к файлам ресурсов через сеть — например, если они хранятся на устройстве хранения данных, подключенном к сети (NAS), — то необходимо назначить ограниченное делегирование, и Web-узел будет функционировать как LocalSystem. Чтобы повысить безопасность и производительность, рекомендуется всегда хранить файлы ресурсов локально. Кроме того, не следует включать ограниченное делегирование. Изменяйте порт Web-узла, только если для этого есть веские причины.

Теперь необходимо обеспечить безопасность установленной системы. Подключитесь к административному Web-узлу Virtual Server, войдя в меню Start, All Programs, Microsoft Virtual Server, Virtual Server Administration Website. Если система выведет запрос на учетные данные, нужно указать пользователя из локальной группы Administrators в базовой операционной системе; в противном случае в доступе будет отказано. Чтобы система не запрашивала учетных данных каждый раз при обращении к административному Web-узлу, можно ввести URL для сайта в зону локальной корпоративной сети в Microsoft Internet Explorer — IE.

В нижней части Web-страницы приводится предупреждение, что для сайта не включена защита на уровне SSL. Первоочередная задача — получить сертификат SSL, чтобы защитить входящий и исходящий трафик административного Web-узла. Если служба Microsoft Certificate Services активна, можно использовать ее, чтобы получить сертификат SSL; в противном случае сертификат можно получить из независимого источника, например Verisign (хотя такой способ может быть связан с большими затратами). Откройте оснастку IIS консоли MMC и разверните узел Web Sites под именем Web-сервера. Там находится Web-узел с именем Virtual Server; это сайт, для которого нужно запросить сертификат SSL. Не забудьте выбрать свободный TCP-порт для соединения SSL и настроить Web-узел на его использование. Рекомендуется также настроить Web-узел Virtual Server на использование соединений SSL. После того как будет завершена настройка SSL, необходимо задействовать новый URL для подключения к Web-узлу, указав HTTPS вместо HTTP и номер используемого сайтом SSL-порта. Полезно создать URL для быстрого доступа и сохранить его.

Следующий шаг — определить круг лиц, имеющих доступ к административному Web-узлу. По умолчанию любое число пользователей из локальной группы Administrators имеет право администрировать Virtual Server. Рекомендуется вручную добавлять пользователей и группы, которым нужен административный доступ, а не просто вводить их в группу Administrators. Чтобы предоставить пользователям разрешения, запустите административный Web-узел, выберите пункт Server Properties в левой панели Web-узла и щелкните на Virtual Server Security. Затем можно добавлять учетные записи пользователей и групп с помощью кнопки Add entry (экран 1).

Экран 1 . Настройка администраторов и операторов

Чтобы добавить в список учетную запись пользователя домена или группы домена, следует указать запись в виде DOMAINNAMEusername или DOMAINNAMEgroupname. Каждый пользователь или группа могут иметь несколько разрешений. В руководстве администратора Virtual Server, которое можно найти в программной группе Microsoft Virtual Server, каждое разрешение подробно описано. Как следует из названия, Full обеспечивает пользователю или группе все разрешения. Как правило, следует давать пользователям только разрешения, необходимые для выполнения назначенных задач. Обратите внимание, что нельзя удалить локальную группу Administrators, которой доступ предоставляется всегда, даже если попытаться удалить разрешения. В результате каждый администратор домена имеет доступ к административному Web-узлу Virtual Server. Чтобы отказать в доступе такого уровня администраторам домена, требуется удалить эту группу из локальной группы Administrators в базовой операционной системе.

Необходимо также защитить сервер Virtual Machine Remote Control (VMRC). Чтобы настроить VMRC-сервер, следует выбрать пункт Server Properties в левой панели Web-узла. Первый вариант настройки — метод проверки подлинности (экран 2). Проверка подлинности обычно происходит незаметно для пользователя и проводится между VMRC-клиентом и VMRC-сервером. После проверки подлинности пользователь подключается к консоли VM, но не регистрируется автоматически в самой VM. Варианты проверки подлинности: Automatic, NTLM и Kerberos. NTLM — надежный способ проверки подлинности на сервере, но он не позволяет проверить истинность сервера. Kerberos обеспечивает взаимную проверку подлинности. Следует установить флажок Disconnect idle connections — это аналог хранителя экрана для Virtual Server. Он активен по умолчанию, и время ожидания составляет 15 минут.

Экран 2 . Запрос сертификата VMRC-сервера

Следует также включить шифрование SSL 3.0/TLS 1.0. По умолчанию связь между VMRC-клиентом и VMRC-сервером не шифруется; после установки сертификата соединение будет защищено. Укажите переключатель Request и введите соответствующую информацию в форму, прежде чем щелкнуть OK. После нажатия кнопки OK генерируется запрос сертификата (экран 3). Выданный сертификат можно загрузить назад в VMRC-сервер, щелкнув на Virtual Machine Remote Control (VMRC) Server в административном Web-узле и выбрав режим Upload. При этом активизируется кнопка Browse, с помощью которой можно перейти к файлу сертификата. Новое нажатие кнопки OK загружает сертификат в VMRC-сервер.

Экран 3 . VMRC-сервер запрашивает сертификат

Защита файлов ресурсов

В Virtual Server используется несколько файлов ресурсов. Типичные файлы — конфигурации виртуальной машины (.vmc), виртуального жесткого диска (.vhd) и сохраненного состояния виртуальной машины (.vsv). В частности, файлы .vhd и .vsv содержат конфиденциальную информацию и требуют защиты. Взломщик, который получает доступ к этим файлам, может увидеть документы, пароли, ключи шифрования и другие данные. По крайней мере, доступ к этим файлам следует ограничить кругом пользователей с административными правами на виртуальном сервере — и собственно Virtual Server, — используя дискретные списки управления доступом (DACL); списки DACL формируются автоматически при определении круга лиц, имеющих административный доступ к Virtual Server, но изменить их можно вручную. Виртуальные машины можно запускать от имени учетных записей пользователя. Для этого можно выбрать VM на странице Master Status административного Web-узла или выбрать Virtual Machines, Configure в левой панели административного Web-узла, General Properties в панели Machine Status, а затем установить флажок Run virtual machine under the following user account и ввести имя пользователя и пароль действительного пользователя, как показано на экране 4. Данному пользователю необходимо предоставить доступ к файлу ресурсов, отредактировав список DACL.

Экран 4 . Задание учетных данных пользователя для виртуальных машин

Использование учетной записи конкретного пользователя для запуска VM также позволит применить файловую систему с шифрованием (EFS) для защиты любых .vhd-файлов, используемых VM. Достаточно войти в систему с учетными данными записи, с которой работает VM, перейти к .vhd-файлам и зашифровать каждый из них с помощью Windows Explorer или cipher.exe. Возможно, для регистрации придется разрешить пользователям интерактивный доступ или доступ через службы Terminal Services к Virtual Server, но, защитив .vhd-файлы, такой доступ всегда можно запретить. Не следует защищать с помощью EFS файлы .vmc и .vsv в родительской папке. Если это сделать, Virtual Server не сможет запустить VM.

Virtual Server обеспечивает отображение физических дисков в базовой операционной системе на виртуальные диски гостевых операционных систем. Я не рекомендую использовать такое отображение, так как в этом случае трудно гарантировать, что не произойдет обмен конфиденциальной информацией между базовой и гостевыми операционными системами. Не исключена порча файлов, а кроме того, это естественный путь для проникновения вредных программ из базовой операционной системы в гостевую и наоборот.

Защита виртуальных машин

При запуске VM на основе Virtual Server необходимо подходить к этой системе так же, как к физической. Требуется решить, нужно ли настраивать и использовать Windows Firewall в каждой VM, независимо от конфигурации брандмауэра Windows Firewall базовой операционной системы, продумать стратегию обновления каждой и сделать вывод, следует ли использовать такие инструменты, как мастер Security Configuration Wizard (SCW), для блокирования каждой VM. Зараженная или уязвимая для взлома VM может быть так же опасна для компании, как пораженный вирусом физический компьютер.

Приемлемая цена

Дабы привлечь внимание предприятий к преимуществам виртуализации, компания Microsoft изменила условия лицензирования для некоторых своих продуктов. Определенные группы потребителей могут загрузить бесплатно как Virtual Server, так и Virtual PC 2007. Покупатели Windows 2003 Release 2 (R2) Enterprise Edition могут запускать четыре виртуальных экземпляра операционной системы на одном физическом сервере, не покупая дополнительных копий, а пользователи Windows 2003 Datacenter Edition могут работать с неограниченным числом виртуальных экземпляров.

Virtual Server — мощный инструмент. Однако его применение связано с некоторым риском. У злоумышленников есть возможность собирать конфиденциальную информацию во всех формах с виртуальных жестких дисков и перехватывать обмен данными между VMRC-клиентами и собственно виртуальными машинами. Изложенные в данной статье рекомендации помогут обеспечить безопасность Virtual Server и важных данных в виртуальных машинах.

Джон Хоуи (jhowie@microsoft.com) – директор подразделения World Wide Services and IT Technical Community for Security в компании Microsoft. Имеет 15-летний опыт работы в области информационной безопасности, обладатель сертификатов CISSP, CISM и CISA