VMScape: новая уязвимость, нарушающая изоляцию между виртуальными машинами и гипервизором

уязвимость

Исследователи из Швейцарской высшей технической школы Цюриха объявили в своем блоге, что новая атака под названием VMScape (CVE-2025-40300), способный обойти защиту Spectre-BTI и поставить под угрозу безопасность в виртуализированных средах. Этот метод позволяет процессу внутри виртуальной машины извлекать конфиденциальные данные из компонентов гипервизора, работающих в пространстве пользователя, таких как QEMU-KVM.

Тревожная вещь это то, что Память этих компонентов может содержать важную информацию., такие как ключи доступа к зашифрованным дискам или остатки конфиденциальных данных из других гостевых систем. Исследователи продемонстрировали осуществимость атаки с помощью эксплойта кому удалось осуществить утечку ключей шифрования из драйвера virtio в QEMU, достигнув скорости утечки 32 байта в секунду на системах с процессорами AMD Zen 4.

Как работает VMScape

VMScape основан на манипуляции из буфера назначения ветвления (BTB), используемый процессорами для прогнозирования ветвлений во время спекулятивного выполнения. Внедряя специально созданные цели ветвлений, злоумышленник может вызвать неверные прогнозы и использовать кэш процессора для получения конфиденциальной информации.

Хотя Современные системы уже включают в себя средства защиты против Спектр-БТИ, Они не предполагали, что как гостевые процессы, такие как компоненты гипервизора в пространстве пользователя имели одинаковый уровень защитыЭто позволило перепутать входные данные BTB между собой, нарушив ожидаемую изоляцию.

Наш систематический анализ изоляции домена защиты показывает, что текущие механизмы слишком универсальны: на всех процессорах AMD Zen, включая новейшую версию Zen 5, предиктор ветвлений не различает выполнение хостовой и гостевой команд, что позволяет использовать примитивные атаки с использованием кросс-виртуализации BTI (vBTI). Хотя современные процессоры Intel обеспечивают лучшую изоляцию, недостатки сохраняются.

Используя один из этих примитивов vBTI, мы создали комплексный эксплойт под названием VMScape. VMScape позволяет злонамеренной гостевой системе KVM получать конфиденциальную информацию, такую ​​как ключи шифрования/дешифрования, из гипервизора пользовательского пространства, такого как QEMU. Ниже представлена ​​демонстрация VMScape, работающего на AMD Zen 4.

Расходы на обеспечение безопасности немалые, поскольку последствия зависят от частоты, с которой система передает управление пользовательскому пространству. В средах с эмулируемыми устройствами (по умолчанию в QEMU), Падение производительности может достигать в среднем 10%., в то время как в интенсивных тестах, таких как работа с диском в Virtio, наблюдалось снижение производительности до 51%. При лёгких нагрузках, таких как UnixBench, снижение производительности едва достигает 1%.

Затронутые процессоры

Уязвимость влияет на все процессоры AMD Zen (включая 5-е поколение), процессорам Hygon уже старые модели Intel, например, на базе Coffee Lake (2017). Новые процессоры, такие как Cascade Lake и Alder Lake, представляют частичный риск. В отличие от них, последние поколения процессоров Intel включают технологию eIBRS, которая улучшает изоляцию хост-гостевой системы, хотя и не полностью исключает атаки с использованием манипуляции историей ветвлений (vBHI).

Ограничения атаки

На данный момент, VMScape демонстрировался только на системах, использующих KVM с QEMU. для эмуляции устройств в пользовательском пространстве. Гипервизоры, такие как Xen, не подвержены уязвимости, в то время как другие, такие как VMware и Hyper-V, ещё не прошли тщательную оценку.

Меры по смягчению последствий в ядре Linux

Чтобы противостоять этой атаке, Выпущены обновления ядра Linux. (версии 6.16.7, 6.12.47, 6.6.106, 6.1.152, 5.15.193 и 5.10.244). Решение реализует использование инструкции IBPB. (Барьер косвенного предсказания ветвлений), который очищает состояние предиктора ветвлений после каждого перехода из виртуальной машины в пространство пользователя.

Защита можно включить через опцию загрузки ядра:

vmscape={off|ibpb|force}

В лице Смягчение ibpb включено только на уязвимых процессорах, в то время как Force применяет его ко всем архитектурам. Статус уязвимости и активные средства защиты можно найти здесь:

/sys/devices/system/cpu/vulnerabilities/vmscape

Наконец, если вы хотите узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.