Доклады, выступления, видео и электронные публикации

Контроль целостности kvm-based виртуальной машины на различных этапах её жизненного цикла

Ключевыми понятиями в контексте виртуализации серверов (виртуализации вычислительных систем) – технологии, позволяющей представить ресурсы ЭВМ в некотором универсальном виде и запустить на одной физической машине одновременно несколько экземпляров операционных систем (ОС), называемых гостевыми [1-4], – являются «гипервизор» и «виртуальная машина» (ВМ).

Гипервизор – специальная программа, реализующая запуск виртуальных машин, а также осуществляющая управление ими [4-6]. Виртуальной машиной называют вычислительный ресурс (систему), который использует программное обеспечение вместо физического компьютера для запуска программ и развертывания приложений, причём каждая виртуальная машина запускает свою собственную операционную систему и функционирует отдельно от других виртуальных машин, даже если все они работают на одном хосте (физическом компьютере с запущенным гипервизором) [4, 7].

Являясь основой виртуальных инфраструктур, гипервизор и виртуальная машина являются и основными объектами защиты при построении подсистемы защиты.

В зависимости от гипервизора (ESXi [8], Hyper-V [9], KVM [10] и др.), создавшего и запустившего виртуальную машину, она будет иметь различную конструкцию и обладать различными возможностями. Принципы же построения системы защиты виртуальной инфраструктуры едины, вне зависимости от работающего на хосте гипервизора. Различны будут лишь конкретные средства защиты информации, реализующие эти принципы.

В данной статье рассмотрим вопросы контроля целостности KVM-based виртуальной машины, машины, созданной при помощи гипервизора KVM и среды управления libvirt.

Контроль целостности виртуальных машин является одной из необходимых мер для обеспечения безопасности информации, обрабатываемой в виртуальной инфраструктуре [4, 11-13].

Различные средства защиты информации (СЗИ) для контроля целостности некоторого объекта должны выполнять сравнение его текущего состояния с эталонным. СЗИ, осуществляющие контроль целостности виртуальных машин, не являются исключением. Эти программные или программно-аппаратные средства также должны выполнять получение информации о состоянии объекта (виртуальной машины), представление этой информации в формате, предназначенном для сравнения или сохранения в качестве эталона, а также выполнять непосредственно сравнение состояний.

В [14] показано, что каждая KVM-based виртуальная машина характеризуется своим виртуальным аппаратным обеспечением и работающей на нём гостевой операционной системой, а значит и контроль целостности виртуальной машины должен включать в себя контроль 2 компонентов: конфигурации, оборудования и его настроек, и файлов внутри виртуальной машины, как системных, так и пользовательских. То есть информацией о виртуальной машине для контроля её целостности должны быть данные о виртуальном оборудовании и о файлах.

Представление информации о файле для выполнения контроля целостности хорошо изучено и повсеместно применяется на практике: состояние выражается в виде хэш-суммы, вычисленной от файла. Расположение файлов на диске виртуальной машины не привносит никаких особенностей, и целесообразным форматом данных о файлах виртуальной машины видится список, содержащий пути к этим файлам на диске ВМ и их хэш-суммы.

В то же время вычисление хэш-сумм для представления информации об оборудовании является излишней мерой: объем данных, содержащих полные сведения о конфигурации KVM-based ВМ, исчисляется всего лишь десятками байт, а потому хранение и сравнение данных такого размера является простой задачей. Выбрав форматом данных об оборудовании ВМ список, содержащий полный перечень компонентов (дисков, сетевых карт, CPU и т.д.) с их параметрами, мы получаем возможность не только обнаружить нарушение целостности, но и определить его причину.

Таким образом, целесообразным форматом данных о состоянии виртуальной машины видится совокупность списка, содержащего пути к контролируемым файлам на диске ВМ с их хэш-суммами, и полного перечня виртуального оборудования.

Виртуальные машины, созданные при помощи гипервизора KVM и среды управления libvirt, могут находиться в одном из следующих состояний [11]:
  1. Не определена – базовое состояние. Libvirt ничего не знает о ВМ в этом состоянии, так как она еще не определена и не создана;
  2. Определена или остановлена – виртуальная машина был определена, но не работает.
  3. Выполняется – виртуальная машина была создана и запущена. Любая ВМ в этом состоянии активно выполняется на гипервизоре узла.
  4. Приостановлена – выполнение ВМ на гипервизоре приостановлено. Его состояние было временно сохранено до возобновления.
  5. Сохранена - аналогично состоянию «Приостановлено», но состояние ВМ сохраняется в постоянном хранилище, также виртуальную машину из этом состоянии можно восстановить.
Граф перехода между состояниями изображён на рисунке 1.

1.png

Рисунок 1. Граф перехода между состояниями ВМ.

Граф перехода показывает, что состояние «выполняется» является центральным для ВМ: переход в него возможен из любого состояния, в том числе возможен переход «выполняется»-«выполняется» в результате миграции. В то же время указанное состояние является ключевым с точки зрения безопасности: обработка информации (её чтение, модификация, запись и т.д.) происходит только на виртуальных машинах в состоянии «выполняется».

Анализируя граф состояний ВМ, мы можем увидеть, что загрузка ОС происходит при переходе ВМ из «не определена» в «выполняется» и из «определена\остановлена» в «выполняется». Для физических ЭВМ постулат о необходимости контроля целостности на этапе доверенной загрузки операционной системы является на сегодняшний день общепризнанным. Аналогично и для ВМ контрольные процедуры необходимы на данном этапе.

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

В процессе миграции ВМ перемещается с одного хоста (гипервизора) на другой, в процессе такого перемещения по сети передаются пакеты, содержащие данные о конфигурации ВМ. Т.к. существует угроза модификации этих данных при передаче, то целесообразно проводить контроль целостности и при выполнении «migrate».

Итак, сформулированы следующие тезисы:
  • Необходим контроль целостности ВМ
  • В рамках него необходимо контролировать целостность оборудования и файлов ВМ
  • Для контроля файлов ВМ должны рассчитываться хэш суммы и сравниваться с эталонными
  • Для контроля оборудования ВМ настоящие значения параметров оборудования должны сравниваться с эталонными значениями (хэширование не используется)
  • Контроль целостности должен выполняться при каждом переходе ВМ в состояние «выполняется»
  • Названные идеи уже реализованы в специальном программном обеспечением «Аккорд-KVM». Помимо контроля целостности оно выполняет контроль за размещением ВМ (также при каждом переходе в состояние «выполняется»), а также регистрацию событий в виртуальной инфраструктуре.
Перехват перехода в состояние «выполняется» осуществляется за счёт hook-скрипта, сходящего в состав СПО, а контрольные процедуры реализованы в исполняемом модуле accordkvm. Эталонные значения для контроля целостности хранятся в собственной БД СПО.

Стоит отметить, что хотя контроль целостности ВМ и не является достаточным условием для построения надёжной системы защиты виртуальной инфраструктуры, но является условием необходимым, без которого построение системы защиты невозможно.

Список литературы

  1. Что такое виртуализация серверов? [Электронный ресурс]. URL: https://www.hpe.com/ru/ru/what-is/server-virtualization.html (дата обращения: 10.09.2020).
  2. Как работает виртуализация серверов? [Электронный ресурс]. URL: https://computer.howstuffworks.com/server-virtualization.htm (дата обращения: 10.09.2020).
  3. Виртуализация серверов [Электронный ресурс]. URL: https://www.vmware.com/topics/glossary/content/server-virtualization (дата обращения: 10.09.2020).
  4. ГОСТ Р 56938-2016 Защита информации. Защита информации при использовании технологий виртуализации. Общие положения
  5. Что такое гипервизор? [Электронный ресурс]. URL: https://www.networkworld.com/article/3243262/what-is-a-hypervisor.html (дата обращения: 10.09.2020).
  6. Что такое гипервизор? [Электронный ресурс]. URL: https://www.vmware.com/topics/glossary/content/hypervisor (дата обращения: 10.09.2020).
  7. Что такое виртуальная машина? [Электронный ресурс]. URL: https://www.vmware.com/topics/glossary/content/virtual-machine (дата обращения: 10.09.2020).
  8. ESXi [Электронный ресурс]. URL: https://www.vmware.com/ru/products/esxi-and-esx.html (дата обращения: 10.09.2020).
  9. Архитектура Hyper-V [Электронный ресурс]. URL: https://docs.microsoft.com/ru-ru/virtualization/hyper-v-on-windows/reference/hyper-v-architecture (дата обращения: 10.09.2020).
  10. Сайт проекта KVM [Электронный ресурс]. URL: https://www.linux-kvm.org/page/Main_Page (дата обращения: 10.09.2020).
  11. Приказ № 17 ФСТЭК России от 11 февраля 2013 г. «Об утверждении требований о защите информации, не составляющей государственную тайну, содержащейся в государственных информационных системах».
  12. Приказ № 21 ФСТЭК России от 18 февраля 2013 г. «Об утверждении состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных»
  13. Приказ № 31 ФСТЭК России от 14 марта 2014 г. «Об утверждении Требований к обеспечению защиты информации в автоматизированных системах управления производственными и технологическими процессами на критически важных объектах, потенциально опасных объектах, а также объектах, представляющих повышенную опасность для жизни и здоровья людей и для окружающей природной среды».
  14. Ваганов Т. Е., Мозолина Н. В., Чадов А. Ю. Контроль целостности виртуальных машин в среде виртуализации KVM // Комплексная защита информации: материалы ХХIV научно-практической конференции. Витебск. 21–23 мая 2019 г.: УО ВГТУ. Витебск, 2019. С. 242–248.
  15. VM lifecycle [Электронный ресурс]. URL: https://wiki.libvirt.org/page/VM_lifecycle#States_that_a_guest_domain_can_be_in

Автор: Мозолина Н. В.

Дата публикации: 05.10.2020

Выходные данные: 13-15 сентября 2020 года, Московская область


Scientia potestas est
Кнопка связи