Релиз ОС Qubes 4.0, использующей виртуализацию для изоляции приложений

Состоялся релиз операционной системы Qubes 4.0, реализующей идею использования гипервизора для строгой изоляции приложений и компонентов ОС (каждый класс приложений и системные сервисы работают в отдельных виртуальных машинах). Для загрузки подготовлен установочный образ размером 4.2 Гб. Для работы необходима система с 4 Гб ОЗУ и 64-разрядным CPU Intel или AMDс поддержкой технологий VT-x c EPT/AMD-v c RVI и VT-d/AMD IOMMU, желательно наличие GPU Intel (GPU NVIDIA и AMD плохо протестированы).

Приложения в Qubes разделены на классы в зависимости от важности обрабатываемых данных и решаемых задач, каждый класс приложений, а также системные сервисы (сетевая подсистема, работа с хранилищем и т.п.), работают в отдельных виртуальных машинах. При этом указанные приложения бесшовно доступны в рамках одного рабочего стола и выделяются для наглядности разным цветом обрамления окна. Каждое окружение имеет доступ на чтение к базовой корневой ФС и локальному хранилищу, не пересекающемуся с хранилищами других окружений, для организации взаимодействия приложений используется специальный сервис.

В качестве основы для формирования виртуальных окружений может применяться пакетная база Fedora и Debian, также сообществом поддерживаются шаблоны для Whonix, Ubuntu и Arch Linux. Пользовательская оболочка построена на основе Xfce, но в качестве опции можно использовать KDE. Когда пользователь запускает из меню приложение, это приложение стартует в определенной виртуальной машине. Содержание виртуальных окружений определяется набором шаблонов. В каждом виртуальном окружении приложения запускается отдельный X-сервер, упрощённый оконный менеджер и видеодрайвер-заглушка, транслирующий вывод в управляющее окружение в композитном режиме.

0_1522302496.png

Основные изменения:

  • Виртуальные окружения теперь запускаются в режимах PVH и HVP вместо PV, что позволило усилить изоляцию и обеспечить защиту от уязвимостей Meltdown и Spectre. PVH комбинирует элементы режимов паравиртуализации (PV) для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием, с применением полной виртуализации (HVM) для ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти;
  • Переписаны скрипты управляющего стека (Core Stack), улучшена структура и расширяемость;
  • Добавлен Admin API для организации управления виртуальными машинами, который упрощает кастомизацию, использование одноразовых VM, позволяет формировать более гибкие правила и даёт дополнительные возможности в управлении разделами с VM; 0_1522309381.png
  • Переписаны все утилиты командной строки qvm-*;
  • Запрещено переименование виртуальных машин, оставлены только операции клонирования в новую VM и удаления старой VM;
  • По умолчанию создаётся USB VM;
  • Предоставлено несколько шаблонов для одноразовых VM;
  • Новый формат резервных копий, использующий функцию scrypt и обязательно применяющий шифрование. Возможность использования незашифрованных резервных копий больше не предоставляется;
  • VM-пакеты qubes-core-agent/qubes-core-vm разделены для улучшения поддержки создания специализированных и минимальных шаблонов;
  • Qubes Manager разделён на отдельные виджеты для управления доменами и устройствами, в виджет управления устройствами добавлена поддержка USB;
  • Новый интерфейс управления разделами VM, позволяющий размещать VM на внешних накопителях;
  • Предложен более гибкий интерфейс управления межсетевым экраном, упрощающий интеграцию с unikernel;
  • В шаблонах виртуальных машин теперь по умолчанию отключен сетевой интерфейс, а для доставки обновлений используется прокси на основе qrexec;
  • Обеспечен более гибкий выбор IP-адресов для VM;
  • Повышена гибкость правил Qubes RPC. Добавлено новое окно с подтвержднием RPC-операций с возможностью указания целевой VM;
  • Новая архитектура подсистемы хранения данных, позволяющая подключать различные типы хранилищ;
  • Базовое окружение Dom0 обновлено до пакетной базы Fedora 25. Задействовано ядро Linux 4.9.

© OpenNet