Недостаток KVM на серверах AMD дал вредоносным виртуальным машинам путь к захвату хоста •

    0
    47


    Google Project Zero выпустил еще один отчет об уязвимости, демонстрирующий экспериментальный эксплойт против гипервизора KVM с открытым исходным кодом, который позволяет злоумышленнику сбежать с виртуальной машины на серверах на базе AMD, получив контроль над базовой хост-системой.

    «Насколько мне известно, – заявил о своем открытии исследователь Project Zero Феликс Вильгельм, – это первая публичная статья о KVM-переходе между гостями и хостами, которая не связана с ошибками в компонентах пользовательского пространства, таких как QEMU. . “

    Уязвимость, которая была продемонстрирована с помощью проверочной атаки для запуска оболочки на хост-системе, работающей на процессоре AMD Epyc 7351P, основана на функциональности, эксклюзивной для чипов AMD, то есть Intel, давнего конкурента компании и нынешнего большинства. владелец серверного рынка, не пострадает.

    «Недавнее увеличение доли рынка AMD в серверном сегменте означает, что реализация KVM AMD внезапно становится более интересной целью, чем это было в последние годы», – отметил Вильгельм.

    «Расширение виртуализации AMD называется SVM (Secure Virtual Machine), и для поддержки вложенной виртуализации гипервизор хоста должен перехватывать все инструкции SVM, которые выполняются его гостями, имитировать их поведение и поддерживать синхронизацию своего состояния с базовым оборудованием. .

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

    Вильгельму удалось достаточно быстро найти ошибку, обнаружив способ, с помощью которого гости-злоумышленники могут получить доступ к регистрам, зависящим от модели (MSR) на хосте. «Когда я впервые обнаружил и сообщил об этой уязвимости, я был вполне уверен, что этот тип доступа MSR должен быть более или менее эквивалентен выполнению полного кода на хосте», – пояснил он.

    «Хотя мое мнение оказалось правильным, мне потребовалось несколько недель разработки эксплойта».

    Завершенная атака, доступная только в модуле KVM, включенном в ядра Linux 5.10 и 5.11 и на оборудовании AMD, позволяет гостю-злоумышленнику получить полный контроль над хост-машиной: запускается ошибка, осуществляется доступ к MSR определенного хоста и удаленный запуск оболочки – процесс, который занимает максимум пять минут.

    Однако в отчете Вильгельма есть хорошие новости. Функция, использованная уязвимостью, присутствовала только в этих двух версиях ядра, и нет никаких свидетельств того, что она когда-либо использовалась в дикой природе, но, как он предупредил, «эти возможности явно достижимы для хорошо финансируемого противника» и потенциальная отдача от инвестиции означают, что «кажется безопасным предположить, что сейчас над аналогичными проблемами работает больше людей».

    Как избежать подобных проблем в будущем? «Инженеры по безопасности, работающие над безопасностью виртуализации, должны стремиться к как можно большему сокращению поверхности атаки, – посоветовал Вильгельм. «Перенос сложных функций в компоненты пользовательского пространства, безопасные для памяти, – это большая победа, даже если это не помогает от ошибок, подобных описанной выше.

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

    «Хостеры, облачные провайдеры и другие предприятия, которые полагаются на виртуализацию для изоляции мультитенантности, должны спроектировать свою архитектуру таким образом, чтобы ограничить воздействие злоумышленника с помощью эксплойта выхода виртуальной машины», – продолжил Вильгельм, предложив, чтобы машины действовали как хосты виртуальные машины должны рассматриваться как «хотя бы частично ненадежные», и компаниям необходимо больше инвестировать в средства обнаружения вторжений.

    Это раскрытие произошло в том же месяце, что и обнаружение активно распространяемой вредоносной программы Siloscape, которая использовала контейнеры Windows для проникновения в базовый кластер Kubernetes.

    Ранее сегодня мы освещали отчет исследователя в области безопасности Имре Рэда, который выявил уязвимость, которая позволяет пользователям захватывать виртуальные машины Google Compute Engine (GCE), не подвергая риску хост-систему.

    «Даже с хорошо проверенной кодовой базой, эта ошибка и ее эксплойт напрямую проливают свет на тот факт, что в средах виртуализации могут существовать уязвимые места, которые можно эксплуатировать», – считает эксперт ESET UK по кибербезопасности Джейк Мур в комментарии к Реестр о раскрытии Project Zero.

    «В попытке бороться с такими системами и защитить их, хотя это и не является пуленепробиваемым, было бы полезно отключить все несущественные функции, изолировать хосты виртуальных машин и внедрить надежное программное обеспечение для обнаружения».

    Уязвимость была раскрыта в частном порядке команде KVM в конце марта этого года и исправлена ​​в Linux 5.12 и более поздних версиях, в то время как 5.9 и ниже никогда не были уязвимыми.

    Дополнительная информация доступна в блоге Project Zero, в проверочном коде в системе отслеживания проблем Project Zero и в примечаниях к исправлению в репозитории Linux git. Реестр обратился к AMD за комментарием. ®

    Предыдущая статьяТоп-10 смартфонов для любителей фотоаппаратов
    Следующая статьяКак общаться с символами в Dead By Daylight
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.