Для гипервизора KVM реализована возможность запуска гостевых систем Xen

22 февраля 2019 года

Жуан Мартинс (Joao Martins) из компании Oracle предложил для обсуждения разработчиками ядра Linux набор патчей, добавляющий в гипервизор KVM возможности запуска немодифицированных гостевых систем Xen в режиме HVM c использованием всех уже имеющиеся бэкендов (драйверы на стороне хост-окружения (Dom0), применяемые для обеспечения работы гостевой ОС) и фронтэндов (драйверы на стороне гостевой ОС (DomU) для взаимодействия с бэкенд-драйверами хост-окружения, например драйверы сетевой, графической и дисковых подсистем).

В KVM поддержка гостевых систем Xen может оказаться полезной для переноса существующих образов гостевых систем из инфраструктур на базе Xen или для создания полигонов для тестирования и разработки гостевых систем для Xen, а также для использования имеющихся паравиртуальных драйверов (PV) Xen. На стороне гипервизора реализация напоминает подход, применённый в KVM для запуска вложенных виртуальных машин HyperV. На стороне бэкенда предлагается использовать штатные драйверы Xen.

В отличие от развивавшегося около 10 лет назад модуля xenner, обеспечивающего эмуляцию Xen Dom0 через KVM, в предложенном наборе патчей обеспечена возможность применения существующих паравиртуальных драйверов Xen (вместо полной эмуляции оборудования, для ввода/вывода, обработки прерываний и взаимодействия с оборудованием на стороне гостевой системы применяются специальные драйверы, работающие через бэкенд-драйверы хост-системы). Более того, кроме бэкенд и фронтэнд драйверов Xen для управления можно использовать штатный инструментарий Xen, так как в предложенных для KVM патчах воплощён необходимый для их работы UABI. Например, можно запускать немодифицированные версии xenstored, xenstore-list и xenstore-read.

Патчи разбиты на две основные части:

  • Код для поддержки Xen HVM ABI, позволяющий загружать гостевые системы в режиме HVM без применения на стороне гостевой системы паравиртуализированных драйверов.
  • Код для поддержки паравиртуальных (PV) драйверов, обеспечивающий перенаправление гипервызовов, эмулируя поведение PV бэкендов Xen, и реализующий специфичные для Xen механизмы для работы с разделяемой памятью и каналами для уведомления о наступлении различных событий.

Дополнительно можно отметить выявление трёх уязвимостей в KVM, которые были исправлены в обновлениях ядра Linux 4.20.8, 4.19.21, 4.14.99 и 4.9.156:

  • CVE-2019-7222 - утечка памяти, позволяющая в гостевой системе, запущенной с использованием вложенной виртуализации, получить доступ к отрывкам памяти ядра хост-системы. Проблема вызвана отсутствием очистки памяти перед использованием в структуре kvm_inject_page_fault;
  • CVE-2019-7221 - возможность обращения к уже освобождённой области памяти (use-after-free) в коде эмуляции таймера vmx. Уязвимость может быть эксплуатирована из гостевой системы, запущенной с использованием вложенной виртуализации, и потенциально может привести к выполнению своего кода на стороне хост-системы;
  • CVE-2019-6974 - установка файлового дескриптора устройства до создания ссылки на него может применяться для создания условий use-after-free и повышения своих привилегий в системе. Проблему можно эксплуатировать на стороне хоста, при наличии у пользователя доступа к /dev/kvm.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Для гипервизора KVM реализована возможность запуска гостевых систем Xen», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.