Виртуализация начинает приобретать такую популярность, что вполне может стать одной из главных технологий десятилетия. Но, несмотря на всеобщий интерес к этой теме, обеспечению безопасности виртуализации пока уделяется недостаточно внимания. Продукты виртуализации, такие как Microsoft Hyper-V, порождают новые риски для безопасности, и вопрос защиты виртуальных машин, безусловно, требует решения.
Обеспечение безопасности операционной системы на виртуальной машине имеет много общего с защитой операционных систем на физическом компьютере, но вместе с тем при обеспечении защиты виртуальных машин необходимо учитывать дополнительные обстоятельства. Во-первых, несколько виртуальных машин имеют совместный доступ к физическим ресурсам, например к процессору и сетевым интерфейсам, что порождает новые риски безопасности. Во-вторых, и это более важный фактор, настройки виртуальных машин, образы дисков, данные системы BIOS и даже оперативной памяти хранятся на хосте в виде файлов и потенциально могут подвергнуться несанкционированным изменениям.
Второе обстоятельство имеет особое значение, так как доступ к виртуальному диску представляет собой такую же угрозу, как и физический доступ к диску. Имея физический доступ к диску, можно извлечь его, установить в другой компьютер и смонтировать под другой операционной системой — и все, после этого ранее настроенные ограничения на доступ к файловой системе действовать не будут. Получить неограниченный доступ к файловой системе еще можно, загрузив компьютер с компакт-диска или сменного носителя. Эксперты в области компьютерной безопасности единодушны во мнении, что, если к компьютеру возможен физический доступ, он может быть скомпрометирован. Реальные серверы можно запереть в охраняемом помещении и ограничить к ним доступ. В случае виртуальных машин доступ к файлу образа виртуального диска VHD эквивалентен физическому доступу к компьютеру. Таким образом, если файлы образа виртуальной машины доступны по сети, это равносильно тому, что к ним предоставлен физический доступ. Более того, этот риск еще выше — злоумышленник может скопировать файл образа диска виртуальной машины, а вы даже не узнаете, что он был похищен. Поэтому при обеспечении защиты виртуальных машин следует не только ограничить доступ к хосту, на котором размещена виртуальная машина, но и принять дополнительные меры в гостевой операционной системе по ограничению взаимодействия между хостом и виртуальной машиной.
Настройка защиты хоста
Защита сервера Windows Server 2008, играющего роль хоста Hyper-V, приобретает особое значение, поскольку от нее зависит безопасность всех гостевых операционных систем на данном хосте. Необходимо отметить, что в руководстве по настройке безопасности Server 2008 Security Guide и мастере настройки безопасности Security Configuration Wizard (SCW) никаких указаний на этот счет не дается.
Можно запустить Hyper-V в режиме Server Core, который появился в Server 2008. Server Core представляет собой минимальную версию сервера Windows без Windows Explorer, диалоговых окон, приложений и служб, которые потребляют дополнительные системные ресурсы и потенциально увеличивают площадь атаки. При сокращении размера операционной системы остается меньше слабых мест и меньше файлов, которые могут потребовать исправлений, благодаря чему сокращается число необходимых перезагрузок сервера. Для этого приходится жертвовать возможностью локального управления сервером с использованием графических средств, но все графические средства управления можно задействовать при удаленном управлении. В данной статье используются примеры применения графических средств управления, которые можно использовать локально при стандартной установке Windows Server 2008 или удаленно для Server Core.
Сокращение поверхности атаки является ключевым фактором при защите операционной системы, поэтому стоит выделить специальный сервер для задач виртуализации, при этом на хосте не устанавливаются дополнительные роли и службы. Единственное исключение: хост Hyper-V является лучшим местом для установки системы обнаружения вторжений Intrusion Detection System (IDS). Поскольку весь трафик гостевых операционных систем проходит по сетевым интерфейсам хоста, один сенсор IDS на хосте сможет контролировать трафик всех гостевых операционных систем.
Как уже упоминалось, гостевые операционные системы могут быть изменены пользователями хоста. Поэтому очень важно внимательно следить за разграничением прав. Проще всего предоставить права на хост ограниченному числу пользователей, указав при этом, осуществляется ли доступ локально или через службу терминалов. При составлении списка пользователей, которым разрешена регистрация на данном сервере, можно воспользоваться механизмом групповых политик. Для этого нужно запустить консоль Local Security Policy, раскрыть раздел Local Policies и выбрать User Rights Assignment. В правой панели выполните двойной щелчок мышью на Allow Log On Locally Policy. Как показано на экране 1, по умолчанию пользователи имеют право регистрироваться локально.
Выделите элемент Users и щелкните Remove. Далее следует выбрать пользователей и группы, которым должна быть разрешена локальная регистрация на данном сервере.
Определив список пользователей, которым разрешена локальная регистрация на данном хосте, можно уточнить права доступа пользователей к виртуальным машинам на хосте. Для этого используется Authorization Manager. В поле поиска меню Start следует ввести azman.msc и, не дожидаясь вывода результатов поиска, нажать Enter. В меню Action нужно выбрать Open Authorization Store. В диалоговом окне Authorization Store выберите XML file и откройте файл C:ProgramDataMicrosoftWindowsHyper-VInitialStore.xml. Поскольку каталог ProgramData по умолчанию является скрытым, может потребоваться ввести эту часть пути имени файла вручную.
Загрузив хранилище авторизации, раскройте файл InitialStore.xml, Microsoft Hyper-V Services, Definitions, а затем Role Definitions. В правой панели дважды щелкните User и выберите закладку Definition, позволяющую добавлять и удалять операции, которые могут выполнять пользователи. Подробные сведения об использовании модуля Authorization Manager можно найти в статье technet.microsoft.com/en-us/dd283030.aspx.
По сравнению с другими продуктами виртуализации Hyper-V обладает более широкими возможностями программного управления через интерфейс Windows Management Instrumentation (WMI). При этом следует учитывать, что данные средства программного управления гостевой операционной системой могут использоваться в целях, которые этой операционной системой не предусмотрены, что может позволить неавторизованному пользователю обойти контроль безопасности гостевой операционной системы.
Поскольку WMI обеспечивает интерфейс автоматизации, можно использовать разрешения WMI для ограничения доступа к Hyper-V через WMI. В поле поиска меню Start следует ввести команду wmimgmt.msc и нажать Enter. В появившемся окне нужно щелкнуть правой кнопкой мыши на WMI Control и выбрать Properties. Перейдите на закладку Security, откройте Root, Virtualization и выберите пункт ms_409, как показано на экране 2.
Нажав после этого кнопку Security, вы можете выполнить тонкую настройку разрешений пользователей. В таблице приведены сведения о разрешениях WMI, которые можно настроить.
Защита хоста от гостевых операционных систем
При создании виртуального сервера необходима тщательная настройка сетевых компонентов. Виртуальный сервер должен иметь достаточное число сетевых интерфейсов для правильной сегментации сетей для виртуальных машин. При этом не следует размещать на одном хосте виртуальные машины, которые должны находиться в различных сегментах безопасности сети. Лучше всего разместить на одном хосте только такие гостевые операционные системы, которые выполняют сходные роли и имеют одинаковые требования к безопасности.
Следует изолировать сеть хоста от сетей гостевых операционных систем таким образом, чтобы только авторизованные пользователи могли получить доступ к хосту через защищенную сеть. Лучше всего подключить выделенный сетевой интерфейс к изолированной сети, используемой для управления серверами. Если же такой подход невозможен, для ограничения сетевых подключений к хосту следует использовать другие технологии защиты и разграничения сетей — VLAN, IPsec, VPN, туннели SSL и фильтрацию пакетов.
При защите гостевых операционных систем виртуальных машин в первую очередь применяются стандартные методы, используемые при защите физических машин. Одним из преимуществ виртуальных машин является унификация виртуальных аппаратных средств — это позволяет задействовать одни и те же драйверы виртуальных устройств. Благодаря этому можно легко создать защищенные базовые образы (шаблоны) для различных используемых серверных ролей. Необходимо защитить эти образы от компрометации и обеспечить своевременную установку обновлений с помощью Offline Virtual Machine Servicing Tool или других средств. Защита систем — весьма трудоемкая задача, на которую часто не хватает времени. Благодаря применению предварительно защищенных эталонных образов гостевых операционных систем можно обеспечить заранее выбранный базовый уровень защиты для всех вновь создаваемых виртуальных машин.
Как уже было сказано, наибольший риск, связанный с использованием виртуальных машин, заключается в том, что каждый пользователь, обладающий достаточными правами, может скопировать образ диска виртуальных машин, смонтировать его и обойти механизмы безопасности гостевой операционной системы. Для предотвращения этой угрозы и защиты важных данных можно воспользоваться шифрованием диска гостевой операционной системы. Файловая система с шифрованием Encrypting File System Microsoft (EFS) является приемлемым способом защиты данных. В случаях, когда хранящиеся на гостевой операционной системе данные имеют особое значение, можно использовать средства полного шифрования диска, такие как Windows Bitlocker Drive Encryption в Windows Vista или PGP Whole Disk Encryption.
Виртуальные машины позволяют легко изменять конфигурацию, добавлять и удалять виртуальные аппаратные средства. Благодаря этому становится возможным добавление устройств только по необходимости и удаление этих устройств, когда потребность в них исчезает. Особенно актуальна практика отключения устройств, если в виртуальной машине был включен доступ к дисководу CD-ROM хоста, поскольку иначе при каждой смене компакт-диска все подобные гостевые операционные системы будут воспринимать это точно так же (и, кстати, сильно замедлять доступ к компакт-диску).
При настройке аппаратуры виртуальных машин следует установить ограничение на использование ресурсов процессора виртуальной машиной. По умолчанию виртуальная машина может использовать 100% ресурсов процессора хоста. Такая практика делает возможной атаку типа «отказ в обслуживании», Denial of Service (DoS). Атака на одну из виртуальных машин повлияет на все виртуальные машины, размещенные на данном хосте. Ограничение использования процессора гостевыми операционными системами позволяет оставить достаточное процессорное время хосту и другим виртуальным машинам и предотвратить зависание. И наконец, поскольку доступ к виртуальным машинам с помощью консоли Hyper-V Management Console эквивалентен непосредственному доступу к консоли виртуальных машин, необходимо строго соблюдать все стандартные принципы обеспечения безопасности, включая парольную защиту в хранителе экрана и завершение сеанса работы с системой, когда она не используется.
Защита важных машин
Часто бывает, что на виртуальных машинах требуется разместить конфиденциальную информацию. В таких случаях необходимо обеспечить более высокий уровень защиты виртуальной машины. Одним из преимуществ виртуальных машин является возможность быстрого перевода виртуальных машин в автономный режим и возврата к работе с помощью функции приостановки работы (suspend) Hyper-V. Корневой сервер сертификатов, например, содержит данные такой важности, что, вероятно, вы захотите, чтобы доступ к нему был возможен только в моменты выполнения определенных операций.
Для защиты таких важных виртуальных машин можно разместить их на съемных жестких дисках. Завершив операции с такой виртуальной машиной, можно отключить диск и убрать его в надежное место. Если у вас есть виртуальные машины, которые большую часть времени остаются отключенными, убедитесь, что они периодически (раз в месяц) включаются для установки последних обновлений.
Для предотвращения несанкционированного запуска содержащих важную информацию виртуальных машин можно установить пароль на запуск виртуальных машин. Одним из способов запрета запуска виртуальных машин Windows является задание системного пароля для операционной системы. Для этого в меню Start в поле поиска нужно ввести syskey и нажать Enter. Появится диалоговое окно Startup Key, показанное на экране 3.
Щелкните Update и выберите Password Startup, введите пароль и подтверждение и нажмите OK. Я бы не советовал устанавливать пароль на все серверы подряд, поскольку тогда при каждом перезапуске сервера потребуется, чтобы кто-то ввел пароль. При сбое или автоматическом перезапуске системы она так и будет ожидать ввода пароля.
Безопасность виртуальности
Выберите, какие из приведенных в данной статье советов по обеспечению безопасности больше всего подходят для вашей организации. Убедитесь, что обновлены соответствующие документы и регламенты по безопасности и обслуживанию систем. Лишь очень немногие политики и стандарты связаны с рисками, присущими только виртуальным машинам. Не забудьте, что администраторы и персонал должны понимать, чем отличаются работа и обслуживание виртуальных машин по сравнению с физическими системами. Виртуальные машины могут быть такими же безопасными, как и физические. Надо только все спланировать и правильно реализовать.
Марк Барнетт (mburnett@xato.net) — независимый консультант, специализирующийся на вопросах безопасности Windows. Имеет сертификат IS MVP