Купить решения «Лаборатории Касперского»
в интернет-магазине Kaspersky-Security.ru |
Атака VMScape на процессоры | Блог Касперского
Может ли Spectre-образная атака VMScape применяться в практических атаках на гипервизор?
Команда исследователей из Швейцарской высшей технической школы в Цюрихе опубликовала научную работу, в которой показала, как можно совершить так называемый «побег из песочницы» при помощи атаки типа Spectre v2 в виртуальной среде. Имея доступ только к изолированной виртуальной машине, они смогли похитить ценные данные, которые в норме доступны только администратору сервера. Атака возможна на серверах, построенных на базе процессоров AMD, включая новейшие модели с архитектурой Zen 5, а также на процессорах Intel поколения Coffee Lake.
Опасность атак типа Spectre для виртуальных сред
Мы регулярно пишем о процессорных уязвимостях, связанных со спекулятивным выполнением инструкций, в которых штатные особенности «железа» используются для похищения секретов. Предыдущие публикации на эту тему, в которых подробно описывается общий принцип для таких атак, можно прочитать здесь, здесь и здесь.
Впервые уязвимости такого типа были выявлены в 2018 году, и с тех пор исследователям ни разу не удалось показать сколько-нибудь реалистичную атаку с их использованием. Все работы сводились к идее, что в теории некая сложная таргетированная атака класса Spectre возможна. Более того, в большинстве научных работ на эту тему исследователи ограничивались простейшим сценарием атаки: берем компьютер, устанавливаем на него вредоносную программу и похищаем секреты с применением аппаратных особенностей процессора. Несостоятельность такого подхода заключается в том, что если уж кому-то удастся установить на ПК вредоносное ПО, то он сможет похитить данные тысячей других, куда более простых, способов. Из-за этого Spectre и подобные атаки вряд ли когда-то будут угрожать конечным устройствам. Однако, когда речь идет об облачных средах, списывать Spectre со счетов не стоит.
Допустим, есть провайдер, предоставляющий услуги аренды виртуальных серверов организациям или частным лицам. Каждый клиент получает в свое распоряжение виртуальную машину, в которой он по определению волен запускать любое программное обеспечение. На том же сервере могут работать виртуальные системы других клиентов. Разделение прав доступа к данным в этом случае является критически важным. Нужно не допустить, чтобы злоумышленник, получив доступ к одной виртуальной машине, смог прочитать конфиденциальные данные соседнего клиента, либо, получив доступ к данным хоста, скомпрометировать инфраструктуру провайдера. Именно в этом случае атаки типа Spectre начинают казаться гораздо более опасным сценарием.
VMScape: практическое применение атаки типа Spectre v2
В предыдущих научных работах на эту тему реалистичность атаки Spectre никто толком не исследовал на практике. И это нормально для академической работы: теоретического обоснования возможности утечки данных, как правило, достаточно, чтобы производители процессоров и разработчики программного обеспечения озаботились усилением защиты и разработкой контрмер.
Авторы свежей работы из ETH Zurich прямо говорят о том, что ранее рассматриваемые сценарии атак на виртуальные среды (пример еще одной работы из ETH Zurich) имели гигантское допущение: предполагалось, что злоумышленники каким-то образом уже смогли установить вредоносную программу на хост. Как и при моделировании атак на обычные ПК, это не имеет особого практического смысла: если сервер взломан, защитник виртуального сервиса уже проиграл.
Предложенная в новой работе атака VMScape использует механизм инъекции целевого ветвления (Branch Target Injection), такой же, как во всех атаках, начиная со Spectre v2. Подробнее о нем мы не раз рассказывали ранее (например, тут), поэтому опишем его максимально коротко.
Branch Target Injection — это способ натренировать систему предсказания ветвлений процессора, которая ускоряет работу программ за счет спекулятивного выполнения инструкций. То есть, еще не зная результаты вычислений на предыдущем этапе программы, процессор пытается заранее выполнить следующий набор команд. Если получилось «угадать», по какому направлению (branch) пойдет выполнение ПО, скорость работы значительно увеличивается. Если не получилось — результаты вычислений просто отбрасываются.
Инъекция целевого ветвления — это ситуация, когда атакующий может заставить процессор в ходе спекулятивного выполнения инструкций обратиться к секретным данным и переместить их в кэш-память. Затем атакующий добывает эти данные непрямым способом, по стороннему каналу.
Исследователи обнаружили, что при работе спекулятивного выполнения инструкций разделение привилегий между хостом и гостевыми операционными системами реализовано не идеально, что позволяет провести новый вариант Branch Target Injection, получивший название Virtualization-based Spectre-BTI, или vBTI.
В результате исследователям удалось считать произвольные данные из памяти хоста, имея доступ только к виртуальной машине с настройками по умолчанию. Скорость чтения данных при этом составила 32 байта в секунду для процессора с архитектурой AMD Zen 4, с практически стопроцентной надежностью чтения данных. Это достаточно быстро, чтобы, например, украсть ключи шифрования данных, открывая прямой путь к хищению информации с соседних виртуальных машин.
Будет ли VMScape использоваться в реальных атаках
Уязвимыми к данной атаке оказались системы с использованием процессоров AMD, построенных на архитектуре Zen с первого по самое современное пятое поколение. Это стало возможно благодаря нюансам применения защиты от Spectre-подобных атак в этих процессорах, а также особенностей работы разработанных авторами примитивов vBTI. В процессорах Intel данная атака возможна только на серверах с достаточно старыми процессорами Coffee Lake 2017 года. На более современных архитектурах Intel улучшена защита, и атака VMScape в ее нынешнем варианте невозможна.
Заслугой авторов является разработка первой максимально приближенной к реальным условиям атаки типа Spectre v2 в виртуальном окружении, без чрезмерно свободных допущений и «костылей» в виде вредоносного ПО на уровне гипервизора. Атака VMScape полноценна: она обходит множество штатных средств безопасности, включая, например, технологию KASLR. Она успешно похищает ценный секрет — ключ шифрования данных.
К счастью, разработав атаку, ученые тут же предложили и решение против нее. Проблеме был присвоен идентификатор уязвимости CVE-2025-40300, а закрыть ее получилось патчем для ядра Linux. Причем в данном случае патч не особенно снижает производительность вычислений (этим зачатую грешат программные методы защиты от Spectre-подобных атак).
Для виртуальных сред также довольно давно реализованы методы защиты от любых попыток обращения к конфиденциальным данным. У AMD это технология Secure Encrypted Virtualization и ее подвид SEV-SNP (подробнее см. в этой статье), у Intel — Trusted Domain Extensions, или TDX. С их помощью секреты дополнительно шифруются, делая их похищение в лоб бессмысленным. Для процессоров AMD исследователи подтвердили, что SEV обеспечивает дополнительную защиту от атаки VMScape . Иными словами, практическое применение VMScape против современных серверов маловероятно. Но с каждым новым исследованием Spectre-образные атаки выглядят все реалистичнее и реалистичнее.
Однако атаки на особенности спекулятивного выполнения данных в современных процессорах сохраняют свою актуальность, несмотря на «академическую» природу исследований. Операторам виртуальных сред по-прежнему стоит учитывать уязвимости и потенциал атак в своей модели угроз.
Источник: Лаборатория Касперского
23.09.2025