VMScape: Новата уязвимост, която нарушава изолацията между виртуалните машини и хипервизора

уязвимост

Изследователи от ETH Zurich обявиха в публикация в блога си, че нова атака, наречена VMScape (CVE-2025-40300), способен заобикалят защитите на Spectre-BTI и компрометират сигурността във виртуализирани среди. Този метод позволява на процес във виртуална машина да извлича чувствителни данни от компоненти на хипервизора, работещи в потребителското пространство, като например QEMU-KVM.

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

Как работи VMScape

VMScape е базиран на манипулация от буфера за местоназначение на клона (БТБ), използвани от процесорите за предсказване на разклонения по време на спекулативно изпълнение. Чрез инжектиране на изработени цели за разклонения, атакуващият може да предизвика погрешни прогнози и да използва кеша на процесора, за да извлече чувствителна информация.

Въпреки че Съвременните системи вече включват защитни механизми срещу Spectre-BTI, Те не са предвидили това и двете гост процеси, като например компоненти на хипервизора в потребителското пространство споделяха едно и също ниво на защитаТова позволи на входовете на 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={изключено|ibpb|сила}

Con Смекчаването на ibpb е активирано само на уязвими процесори, докато принудителното го прилага към всички архитектури. Състоянието на уязвимостта и активните защити могат да бъдат намерени на:

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

И накрая, ако се интересувате да научите повече за него, можете да се консултирате с подробностите в следваща връзка.