Дата публикации:Fri, 12 Sep 2025 09:36:19 +0300
Исследователи из Швейцарской высшей технической школы Цюриха разработали метод атаки VMScape, позволяющий обойти существующую защиту от атак Spectre-BTI (Branch Target Injection) для нарушения изоляции между виртуальной машиной и компонентами гипевизора, работающими в пространстве пользователя (например, QEMU-KVM). Атака может быть использована для определения содержимого памяти подобных компонентов через проведение манипуляций из процесса на стороне гостевой системы.
В памяти компонентов гипервизоров, работающих в пространстве пользователя, могут содержаться такие конфиденциальные данные, как ключи доступа к зашифрованным дисковым разделам. Злоумышленники также потенциально могут использовать подобные компоненты как источник утечки конфиденциальных данных, оставшихся в памяти в результата активности других гостевых систем. Исследователями подготовлен пример эксплоита, позволяющий из гостевой системы на базе KVM извлечь информацию о ключах шифрования из virtio-обработчика на базе QEMU, выполняемого на стороне хост-окружения в пространстве пользователя. Скорость утечки данных из процесса QEMU на системе с CPU AMD Zen 4 составила 32 байта в секунду. В атаках класса Spectre-BTI (Branch Target Injection) для организации утечки данных используется подстановка значений в буфер адреса ветвления (BTB, Branch Target Buffer), применяемый при предсказании следующей операции ветвления. В ходе атаки создаются условия неверного предсказания перехода при спекулятивном выполнении инструкций. Задача атакующего в том, чтобы при выполнении спекулятивной операции ветвления адрес для перехода был взят из желаемой области памяти. После выполнения спекулятивного перехода, в процессорном кэше остаётся считанный из памяти адрес перехода (под видом адреса считываются необходимые атакующему данные из памяти). Для извлечения информации из кэша может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Процессоры и ядра ОС уже содержат защиту от атак Spectre-BTI, которая блокирует утечки между гипервизором и гостевой системой, а также между разными процессами. Но подобная защита не учитывала то, что компоненты гипервизоров, работающие в пространстве пользователя (например, процесс QEMU), и процессы в гостевой системе, выполняются на одном уровне защиты. Из-за этого записи в буфере адреса ветвления (BTB) при предсказании переходов смешивались для процессов гостевых систем и компонентов гипервизора, работающих в пространстве пользователя.

Включение защиты осуществляется через переменную командной строки ядра "vmscape={off|ibpb|force}" (опция ibpb включает защиту только для уязвимых CPU, а force - для всех). Подверженность CPU уязвимости и состояние включения защиты можно оценить через файл "/sys/devices/system/cpu/vulnerabilities/vmscape". Поддерживается два режима защиты: подстановка IBPB после каждой передачи управления от виртуальной машины в пространство пользователя (VMexit); подстановка инструкции IBPB после первой передачи управления от виртуальной машины в пространство пользователя.
Накладные расходы от применения защиты зависят от интенсивности передачи управления в пространство пользователя. При использовании эмулируемых устройств (по умолчанию в QEMU) интенсивность подобных переключений значительно выше, чем при применении виртуализированных устройств, и снижение производительности в среднем оценивается в 10%. При этом накладные расходы также сильно зависят от типа нагрузки, например, в тесте UnixBench на системе Zen 4 наблюдается снижение производительности на 1%, так как число переключений (VMexit) в нём минимально. В тесте на чтение и запись случайных данных с диска на базе virtio накладные расходы достигли 51%.
Уявзимость проявляется на всех процессорах AMD семейства Zen (включая 5 поколение), процессорах Hygon (на базе технологий AMD) и старых процессорах Intel, включая чипы на базе микроархитектуры Coffee Lake (2017 год). В списке частично подверженных уявзимости CPU упоминаются процессоры Intel на базе микроархитектур Cascade Lake и Alder Lake (возможность создания эксплоита для них не подтверждена). В последних поколениях процессоров Intel для изоляции хост-окружения и гостевой системы применяется технология eIBRS, но она лишь частично защищает от воздействия из гостевой системы на буфер с историей переходов (BHB, Branch History Buffer), что не исключает создание атак по подстановке значений через BHB.
Возможность совершения атаки VMScape пока продемонстрирована только на системах с гипервизором KVM и компонентами на базе QEMU (QEMU-KVM), эмулирующими различные устройства в пространстве пользователя. Гипервизор Xen проблеме не подвержен. Оценка VMware, Hyper-V и прочих гипервизоров не производилась, ожидается, что возможность атаки на них будет проанализирована производителями.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63868