Hacker News Digest

Тег: #hypervisor

Постов: 4

VMScape and why Xen dodged it (virtualize.sh)

Новая атака VMScape от ETH Zürich использует уязвимости предсказателя переходов в процессорах AMD Zen 4 и Zen 5 для утечки данных между виртуальными машинами в облачных средах. Она успешно работает против гипервизоров KVM и VMware, позволяя вредоносной гостевой VM атаковать компоненты пользовательского пространства, такие как QEMU, и извлекать конфиденциальную информацию. Это очередное проявление проблем с изоляцией в современных CPU, оптимизированных для производительности.

Xen оказался неуязвим благодаря своей микроядерной архитектуре, где гипервизор минимален, а все дополнительные сервисы, включая эмуляцию устройств, вынесены в отдельную виртуальную машину Dom0. Это решение, принятое два десятилетия назад, сократило поверхность атаки и предотвратило воздействие VMScape на критически важные компоненты. Таким образом, архитектурный выбор Xen обеспечил встроенную защиту без необходимости экстренных исправлений, в отличие от KVM и VMware.

by plam503711 • 28 сентября 2025 г. в 18:19 • 99 points

ОригиналHN

#xen#kvm#vmware#hypervisor#virtualization#microkernel#dom0#qemu#amd-zen#security

Комментарии (22)

  • Архитектура Xen на микроядре с изолированным Dom0 ограничивает утечку данных при атаке vmscape только процессами внутри самого Dom0, что снижает риски.
  • В отличие от KVM, где эмуляция оборудования происходит в пользовательском пространстве хоста, в Xen управление и эмуляция выделены в отдельный Dom0, что обеспечивает дополнительный уровень изоляции.
  • Атака vmscape позволяет утечку данных между виртуальными машинами, но не затрагивает напрямую гипервизор Xen, так как он работает на более привилегированном уровне.
  • Обсуждаются потенциальные преимущества микроядерных архитектур (например, seL4) для дальнейшего ограничения последствий побега из VM.
  • Отмечается, что сама уязвимость остается на аппаратном уровне, и контейнеризация (LXC, SmartOS zones) не обязательно защищает от подобных атак.

Hypervisor 101 in Rust (tandasat.github.io)

Введение в гипервизоры на Rust

1. Введение

  • Предварительные требования
  • Цели курса
  • Мотивация
  • Как достигаются цели
  • Что вы изучите
  • Дизайн фаззера
  • Дизайн гипервизора
  • Что этот курс НЕ охватывает
  • Демо: фаззер на основе гипервизора
  • Зачем использовать гипервизор для фаззинга
  • Приложения UEFI
  • Язык Rust
  • Классификация гипервизоров
  • Гипервизор vs хост, ВМ vs гость
  • Типы гипервизоров

2. Настройка и цикл работы гипервизора

  • Включение: активация аппаратной виртуализации
  • Настройка: создание структуры контекста гостя
  • Переключение: запуск в гостевом режиме
  • Возврат: переход обратно в режим хоста
  • Обработка: эмуляция событий
  • Цели и упражнения главы
  • Тестирование с Bochs
  • Подготовка к упражнениям
  • E#1: Включение VMX/SVM
  • E#2: Настройка VMCS/VMCB
  • E#3: Конфигурация гостевого состояния
  • Причины VM-выходов
  • Альтернативный дизайн гипервизора

3. Виртуализация памяти

  • Терминология
  • Традиционная страничная организация x64
  • Вложенная страничная организация
  • Связь с гипервизором
  • Ошибки страниц во вложенной организации
  • Структурные элементы вложенной организации
  • Сравнение традиционного и вложенного подходов
  • Цели и упражнения главы
  • E#4: Включение вложенной организации
  • E#5: Построение структур и трансляция адресов
  • E#6: Реализация copy-on-write и быстрого восстановления памяти
  • Продвинутые темы

4. Интроспекция ВМ для фаззинга

  • Проблема 1: Ненужное выполнение кода

by pykello • 18 сентября 2025 г. в 01:18 • 144 points

ОригиналHN

#rust#hypervisor#virtualization#x64#memory-virtualization#fuzzing#uefi

Комментарии (13)

  • Пользователи высоко оценивают качество и полезность материалов по созданию гипервизора и операционной системы, связывая их с предыдущей работой автора.
  • Высказывается критика в адрес формата материалов (Markdown/HTML) и пожелание иметь возможность скачивания в PDF для архивации.
  • Отмечается, что материал представляет собой конспект/слайды курса и может быть сложен для понимания без предварительных знаний или посещения занятий.
  • Возникает дискуссия о практической ценности таких материалов для самообразования без наличия глубоких базовых знаний.
  • Упоминается растущий интерес к теме создания гипервизоров, о чём свидетельствует частое появление подобных руководств.
  • Предлагаются технические решения для создания PDF-версии (например, печать в PDF через браузер).
  • В комментариях присутствует лёгкое обсуждение терминологии (значение слова "hypervisor") и личный опыт работы в данной области.

Hypervisor in 1k Lines (1000hv.seiya.me)

Гипервизор за 1000 строк

Практическое руководство по созданию минимального RISC-V гипервизора, способного загружать Linux. Продолжение книги «ОС за 1000 строк», но теперь на Rust и с нуля (type-1, bare-metal). Используем только важное: сторонние крейты экономят код.
Репозиторий: github.com/nuta/hypervisor-in-1000-lines
Лицензии: текст — CC BY 4.0, код — MIT.

Содержание:
0. Введение

  1. Старт
  2. Загрузка
  3. Hello World
  4. Менеджер памяти
  5. Режим гостя
  6. Страницы гостя
  7. Привет из гостя
  8. Сборка ядра Linux
  9. Запуск Linux
  10. SBI
  11. MMIO
  12. Прерывания
  13. Заключение

by lioeters • 09 сентября 2025 г. в 23:13 • 111 points

ОригиналHN

#hypervisor#risc-v#rust#linux#bare-metal#qemu#sbi#mmio

Комментарии (12)

  • Демо-гипервизор на 1000 строк — интересная техническая игрушка, но без паравиртуальных драйверов и прочей инфраструктуры непригоден для реального использования.
  • Чтобы запустить RISC-V гипервизор на x86, нужен QEMU, потому что это эмуляция другой архитектуры.
  • Желающим увидеть «тот же объём, но на C» скидывают 500-строчный SimpleVisor и репозиторий kvmsample.
  • В дискуссию вмешалась философия: «OS» можно уложить и в 5 строк EFI-кода, если не требовать от неё ничего, кроме «Hello, world».

Writing a Hypervisor in 1k Lines (seiya.me)

Я написал учебник по созданию гипервизора с нуля за 1 000 строк кода: 1000hv.seiya.me. Это тип-1 гипервизор для 64-битного RISC-V с расширением H в QEMU. Подойдёт тем, кто уже прошёл OS in 1 000 Lines.

Код на стабильном Rust — без nightly. Сообщество Rust наконец-то добавило всё необходимое, включая inline-assembly.

Идея книги: гипервизор — это «обработчик событий»:

const vcpu = new VirtualCPU(memory);
while (true) {
    try { vcpu.resume(); }
    catch (e) { handle(e); } // MMIO, прерывания…
}

Он запускает гостевую ОС, перехватывает выходы из VM и возвращается. Это позволяет строить не только классические ОС, но и безопасные среды вроде gVisor или Hyperlight.

Книга уже доступна онлайн. Приятного кодинга!

by ingve • 29 августа 2025 г. в 22:12 • 93 points

ОригиналHN

#rust#hypervisor#risc-v#qemu#virtualization#os#vmware#inline-assembly

Комментарии (9)

  • RISC-V можно полностью виртуализировать методом «ловушка-и-эмуляция» без аппаратного расширения, но обход таблиц страниц будет медленным.
  • @drob518 уточнил: обход таблиц страниц выполняется программно, а не аппаратно.
  • @nerpderp82 спросил, можно ли использовать RVV для обхода таблиц страниц.
  • @anchovy_ попросил литературу по гипервизорам; @dmitrygr дал ссылки на академическую теорию и практику VMware.
  • @TZubiri посоветовал учиться по документации производителей и исходному коду, а не по университетским книгам.