6.1 Общие положения ГОСТ Р 70860—2023
ВМ и гипервизоры представляют собой технологии, которые обеспечивают виртуализированную обработку (также известную как виртуализированные вычисления) для облачных сервисов. Эти технологии в первую очередь относятся к облачным сервисам типа инфраструктурных функциональных возможностей и laaS (инфраструктура как услуга) согласно описанию в ГОСТ ISO/IEC 17788 (см. также [1]).
Одной из ключевых особенностей облачных вычислений является возможность совместного использования ресурсов. Это имеет важное значение не только для сокращения расходов, но и для поддержания на высоком уровне таких рабочих характеристик, как масштабируемость и устойчивость. Совместное использование вычислительных ресурсов требует определенного уровня виртуализации. Виртуализация в целом означает, что определенный ресурс становится доступным для использования в форме, которая физически не существует как таковая, но которая может использоваться с помощью программного обеспечения. Другими словами, виртуализация обеспечивает абстрактное представление базового ресурса, который преобразуется в программно-определяемую форму для использования другими программными объектами. ПО, выполняющее виртуализацию, позволяет нескольким пользователям совместно и одновременно использовать один физический ресурс, не влияя на работу друг друга и, как правило, не зная друг о друге (см. [2], 5.5).
Одним из подходов к виртуализации вычислительных ресурсов является использование ВМ, что предполагает наличие гипервизора, обеспечивающего абстрактное представление аппаратных ресурсов вычислительной системы и позволяющего нескольким ВМ работать в одной физической системе. При этом каждая ВМ имеет собственную гостевую ОС, как показано на рисунке 1. Это позволяет использовать ресурсы одной системы несколькими приложениями, работающими в разных ВМ.
Гипервизор представляет собой, как правило, ПО, которое устанавливается и управляется CSP. Облачный сервис, на базе которого работает ВМ, предоставляет возможность CSU загружать ПО из образа виртуальной машины и запускать его на ВМ в системе CSP. ВМ управляется гипервизором, но CSU этого не видит [из 6.1 Общие положения ГОСТ Р 70860—2023]
6.2 Виртуальные машины и виртуализация систем ГОСТ Р 70860—2023
ВМ представляет собой изолированную среду выполнения ПО, которая использует виртуализированные физические вычислительные ресурсы. Другими словами, речь идет о виртуализации системы. ПО в каждой ВМ получает тщательно контролируемый доступ к физическим ресурсам, чтобы обеспечить совместное использование этих ресурсов. ВМ, которые иногда называются системными ВМ, предлагают широкую функциональность, необходимую для выполнения полных стеков ПО, включая целые ОС и код приложений, использующих ОС. Как показано на рисунке 1, это отражается в виде элементов «Гостевая ОС» и «Приложение №» в каждой ВМ.
Цель ВМ — обеспечить одновременную работу нескольких приложений в одной аппаратной системе. При этом эти приложения остаются изолированными друг от друга. ПО, работающее в каждой ВМ, имеет свое собственное системное аппаратное обеспечение, такое как процессор, оперативная память, одно или несколько устройств для хранения данных и сетевое оборудование. Изолированность означает, что ПО, работающее в одной ВМ, отделено от ПО, работающего в других ВМ в той же системе, и это ПО никак не пересекается друг с другом. Также оно отделено от ОС хоста. Виртуализация обычно означает, что часть доступных физических вычислительных ресурсов может быть предоставлена каждой ВМ, например: ограниченное количество процессоров, ограниченный объем оперативной памяти, ограниченное пространство для хранения данных и контролируемый доступ к сети.
Каждая ВМ содержит полный стек ПО, начиная с операционной системы и заканчивая любым другим ПО, необходимым для работы одного или более приложений, выполняемых в ВМ. Программный стек может быть очень простым (например, собственное приложение, написанное на языке программирования С, использующее только функции, предоставляемые самой ОС) или сложным [например, приложение, написанное на языке программирования Java™, для которого требуется среда выполнения и которое активно использует библиотеки и (или) сервисы, которых нет в операционной системе и которые должны предоставляться отдельно].
Каждая ВМ может в принципе содержать любую ОС. Различные ВМ на одной аппаратной системе могут работать под управлением совершенно разных ОС, таких как Linux и Windows. Единственное требование заключается в том, что все ПО, выполняемое в ВМ, должно быть разработано для аппаратной архитектуры именно этой системы, поскольку аппаратное обеспечение виртуализируется, а не эмулируется. Так, например, программный код, созданный для архитектуры ARM, не будет работать в ВМ, запущенной в системе на базе архитектуры Intel х86 [из 6.2 Виртуальные машины и виртуализация систем ГОСТ Р 70860—2023]
6.3 Гипервизоры ГОСТ Р 70860—2023
6.3.1 Общие положения ГОСТ Р 70860—2023
Гипервизоры, которые также иногда называются мониторами ВМ, представляют собой ПО, которое виртуализирует физические ресурсы и позволяет запускать ВМ. Виртуализация означает управление абстрактным представлением физических ресурсов системы. Гипервизоры также управляют работой ВМ. Гипервизор распределяет ресурсы для каждой запущенной ВМ, включая процессор, оперативную память, систему хранения данных и сетевые компоненты, а также пропускную способность.
Гипервизоры бывают двух типов:
- автономные (тип I);
- на основе базовой ОС (тип II).
Гипервизоры типа I могут работать быстрее и эффективнее, поскольку для них не требуется ОС хоста. Гипервизоры типа II могут работать медленнее, но они имеют ряд преимуществ: отличаются простотой настройки и совместимы с большим количеством аппаратного обеспечения, чем гипервизоры типа I. Это связано с тем, что для гипервизоров типа I необходимо учитывать особенности аппаратного обеспечения, в то время как гипервизоры типа II используют преимущества аппаратной поддержки, встроенной в ОС хоста [из 6.3.1 Общие положения ГОСТ Р 70860—2023]
6.3.2 Гипервизоры типа I ГОСТ Р 70860—2023
Гипервизоры типа I работают непосредственно на основе аппаратного обеспечения системы и напрямую управляют им, так же как и ВМ. Принцип организации системы, использующей гипервизор типа I, показан на рисунке 1.
Рисунок 1 — Виртуализация аппаратного обеспечения гипервизором типа I
[из 6.3.2 Гипервизоры типа I ГОСТ Р 70860—2023]
6.3.3 Гипервизоры типа II ГОСТ Р 70860—2023
Гипервизоры типа II работают поверх ОС хоста, а точнее, ядра ОС хоста. Именно ОС хоста управляет аппаратным обеспечением системы, а гипервизор использует ее функциональные возможности для работы и управления ВМ. Принцип организации системы, использующей гипервизор типа II, показан на рисунке 2.
Рисунок 2 — Виртуализация аппаратного обеспечения гипервизором типа II
[из 6.3.3 Гипервизоры типа II ГОСТ Р 70860—2023]
6.4 Безопасность ВМ и гипервизоров ГОСТ Р 70860—2023
Для аппаратных систем операционная система имеет самый высокий уровень привилегий, поскольку она должна контролировать доступ ко всем аппаратным ресурсам. Однако в случае с хостом гипервизора последний должен контролировать весь доступ гостевых ВМ к ресурсам процессора и оперативной памяти (обеспечивая виртуализацию процессора и памяти), поэтому он должен работать на более высоком уровне привилегий, чем все ВМ. Для этого гипервизоры устанавливаются на аппаратных системах, которые помогают выполнять виртуализацию. В частности, аппаратная система имеет два состояния процессора: режим root (гипервизор) и режим non-root (гость). Все гостевые ОС работают в режиме non-root, в то время как гипервизор работает в режиме root.
Несмотря на аппаратную поддержку виртуализации, изоляция процессов среды выполнения для ВМ, обеспечиваемая гипервизором, может быть нарушена неавторизованными или скомпрометированными ВМ, получившими доступ к областям оперативной памяти, принадлежащим гипервизору или другим ВМ. Неавторизованные или скомпрометированные ВМ используют определенные уязвимости гипервизоров в отношении определенных программных структур, таких как блок управления ВМ (VMCB) и таблицы страниц виртуальной памяти, которые используются гипервизором для отслеживания состояния выполнения ВМ и отображения памяти с адресов ВМ на адреса памяти хоста соответственно. Об этих уязвимостях гипервизоров было известно уже давно, поэтому многие из них уже устранены или будут устранены в скором будущем. Более поздние версии гипервизоров были обновлены для более надежной работы. CSC и CSP должны убедиться в том, что все используемые гипервизоры обновлены и защищены от известных уязвимостей.
Еще одна проблема безопасности в платформе хоста гипервизора может быть связана с ПО, используемым для виртуализации устройств. В отличие от виртуализации набора команд и памяти виртуализация устройств осуществляется не непосредственно гипервизором, а с помощью вспомогательных программных модулей. Основные источники возникновения уязвимостей включают в себя:
- программный код, который эмулирует физические аппаратные устройства, запущенные в гипервизоре в качестве загружаемого модуля ядра, и
- драйверы устройств с прямым доступом к памяти (DMA), которые могут обращаться к областям памяти, принадлежащим другим ВМ или даже гипервизору.
Одними из возможных негативных последствий получения неавторизованной ВМ контроля над гипервизором являются: установка руткитов или атаки на другие ВМ на том же хосте гипервизора. Перед установкой и использованием в системе, в которой присутствуют гипервизор и ВМ, все ПО для виртуализации устройств должно быть проверено на наличие уязвимостей [из 6.4 Безопасность ВМ и гипервизоров ГОСТ Р 70860—2023]
6.5 Образы ВМ, метаданные и форматы ГОСТ Р 70860—2023
Образ ВМ представляет собой пакет данных, содержащий информацию и исполняемый код, необходимые для запуска экземпляра ВМ. Образ ВМ используется для создания нового экземпляра ВМ в случае необходимости. Образ ВМ может включать в себя полный стек ПО, необходимый для работы приложения, начиная с операционной системы, библиотек, сред выполнения, программного кода самого приложения, конфигурационных файлов и других метаданных, используемых приложением. Образ ВМ может также включать в себя метаданные, связанные с созданием самой ВМ.
Метаданные ВМ содержат информацию о конфигурации и запуске ВМ. Сюда могут входить такие свойства ВМ, как объем оперативной памяти, требования к процессору и так далее. Метаданные ВМ также обычно ссылаются на образы дисков, содержащиеся в образе ВМ, в частности, указывая, как они развернуты в экземпляре ВМ.
Принцип организации образа ВМ заключается в том, что он должен содержать все объекты, необходимые для работы экземпляра ВМ, где образ ВМ используется в качестве входных данных для гипервизора для создания и запуска ВМ. В целом образ ВМ состоит из двух наборов данных: во-первых, метаданных ВМ и, во-вторых, образов дисков. Важно понимать, что существует множество различных форматов как метаданных ВМ, так и образов дисков. Конкретный гипервизор, используемый для создания ВМ, может понимать только определенные форматы метаданных ВМ и образов дисков.
Образы ВМ основаны на данных, хранящихся в файлах. Файлы находятся в файловых системах, которые хранятся в образе ВМ в виде одного или нескольких образов дисков. Эти файлы могут быть файлами операционной системы, приложения и любой другой части программного стека. Существует как минимум один образ диска, но может быть несколько образов диска, если такая организация файлов используется приложением и его программным стеком. Как правило, объем данных, хранящихся в образах дисков, очень большой, и поэтому форматы, используемые для хранения данных, предполагают использование технологии сжатия данных в той или иной форме.
Существует множество используемых форматов образов ВМ и дисков, из которых значительная часть является чьей-то собственностью, а другая часть имеет открытый исходный код. Примеры форматов образов ВМ и дисков, созданных на базе отраслевых стандартов:
- OVF (см. ГОСТ Р ИСО/МЭК 17203 и [3]). Пакет OVF состоит из нескольких файлов, размещенных в одном каталоге. Существует файл дескриптора OVF (с расширением .ovf) с данными в формате XML, описывающими ВМ в пакете, включая метаданные, такие как имя, требования к аппаратному обеспечению и ссылки на другие файлы в пакете. Пакет OVF также содержит один или несколько образов дисков, а также некоторые дополнительные файлы, например файлы сертификатов. Формат образов OVF относительно широко поддерживается как с помощью инструментов импорта/экспорта, так и без их использования;
- формат диска ИСО — формат архива, используемый для данных, записываемых на оптические диски (см. [3] и [4]). Стандартом файловой системы для оптических дисковых носителей является [3], в основном компакт-дисков. В форматах для DVD-дисков и дисков Blu-ray (BD), как правило, применяют [4] (также известный как Universal Disk Format или UDF), идеально подходящий для (перезаписываемых оптических носителей.
Образы дисков обычно сжимаются из-за их большого размера, хотя бывают случаи, когда используются необработанные несжатые образы дисков для обеспечения более высокой скорости при запуске ВМ за счет использования большего пространства.
Форматы образов ВМ и образов дисков, которые поддерживаются конкретным гипервизором, указаны в документации к гипервизору [из 6.5 Образы ВМ, метаданные и форматы ГОСТ Р 70860—2023]