Cyber

Firecracker VM Escape: как исследователи обошли микроВМ

Исследователи безопасности продемонстрировали побег из микроВМ Firecracker, получив выполнение кода с правами root на хосте.

·2 мин. чтения
Firecracker VM Escape: как исследователи обошли микроВМ

Исследователи продемонстрировали успешный побег из изолированной среды микроВМ Firecracker с получением выполнения произвольного кода с правами root на хосте. Эта работа продолжает серию публикаций PwnEscape и демонстрирует уязвимость на примере настройки Firecracker.

  • Исследователи использовали ранее обнаруженный примитив доступа к памяти хоста из гостевой системы.
  • Было найдено расположение процесса Firecracker в памяти для перехвата активного потока изнутри гостевой ОС.
  • Атака затрагивает структуру pt_regs, где ядро хоста хранит сохраненные пользовательские регистры потока во время системного вызова.

Архитектура угрозы в Firecracker

МикроВМ Firecracker управляется отдельным процессом на хосте. Каждый виртуальный CPU запускает отдельный поток, который входит в KVM для выполнения гостевого кода и возвращается в Firecracker при необходимости обработки событий в пространстве пользователя. Когда поток находится в таком системном вызове, хостовое ядро удерживает его сохраненные регистры в структуре pt_regs.

Указатель инструкций и указатель стека определяют состояние потока. Исследователи поняли, что модификация этого сохраненного фрейма при возврате из KVM_RUN позволяет перенаправить выполнение программы на заранее выбранный код. Для этого использовался механизм поиска физической памяти через табличные трансляции EPT.

Читайте такжеSonicWall устранила критическую уязвимость SSL-VPN в SonicOS

Разведка памяти и обход EPT

Гость и хост используют разные физические адресные пространства. С помощью размещения уникального байтового паттерна (nonce) в гостевой странице исследователи смогли связать гостевой физический адрес с аппаратным адресом на хосте через поиск корневых структур Extended Page Tables.

Обратный маппер позволил найти процесс хоста, проецирующий данную страницу, восстановив корневой каталог таблиц страниц процесса (PGD) и определив смещение загрузки исполняемого файла Firecracker с учетом рандомизации адресов ASLR. Это дало возможность безошибочно идентифицировать адресное пространство целевого демона.

Перехват потока и выполнение кода

Финальная часть эксплойта заключалась в поиске кадра pt_regs конкретного потока vCPU. Используя возвращаемый адрес из KVM_RUN и проверки валидности стека, исследователи локализовали точный физический адрес сохраненного регистрового фрейма.

Модификация обнаруженного кадра позволила изменить поведение потока в момент возврата из системного вызова в пользовательское пространство Firecracker. Это привело к выполнению полезной нагрузки атакующего на уровне хоста при сохранении стабильной работы виртуальной машины.

Что это значит для разработчиков и бизнеса

Подобные сложные атаки подчеркивают критическую важность изоляции контейнеров и микроВМ, особенно в многопользовательских облачных средах. Хотя инженеры Amazon Web Services постоянно совершенствуют безопасность Firecracker, демонстрация подобных цепочек уязвимостей указывает на скрытые риски при работе с низкоуровневыми компонентами виртуализации и управлением памятью.

Источник: Hacker News: Front Page

Похожие статьи