Критическая брешь GRUB2 затрагивает миллиарды Linux- и Windows-систем

Критическая брешь GRUB2 затрагивает миллиарды Linux- и Windows-систем

Критическая брешь GRUB2 затрагивает миллиарды Linux- и Windows-систем

Команда исследователей в области кибербезопасности раскрыла подробности опасной уязвимости, затрагивающей миллиарды устройств по всему миру: серверы, рабочие станции, ноутбуки, десктопы, а также IoT-системы, на которых запущены практически любые дистрибутивы Linux и версии Windows.

Эксперты дали уязвимости имя «BootHole», отслеживается она под идентификатором CVE-2020-10713. Неприятный нюанс этой бреши — она находится в загрузчике (bootloader) GRUB2.

Другими словами, если злоумышленник успешно задействует BootHole в атаке, он сможет обойти функцию безопасной загрузки (Secure Boot) и получить высокие права в атакованной системе.

Напомним, что безопасная загрузка является защитным слоем интерфейса Unified Extensible Firmware Interface (UEFI), который использует bootloader для загрузки критических компонентов и параллельно контролирует выполнение исключительно подписанного кода.

BootHole выявили специалисты компании Eclypsium, на деле уязвимость представляет собой банальное переполнение буфера, затрагивающее все версии GRUB2. Брешь возникла из-за способа парсинга содержимого файла конфигурации, который, как правило, не подписан.

 

Сам файл grub.cfg располагается в системном разделе EFI. GRUB2 на сегодняшний день является стандартным загрузчиком для большинства Linux-систем, однако он поддерживает и другие ОС, ядра и гипервизоры вроде XEN.

«Переполнение буфера позволяет атакующему выполнить произвольный код внутри среды UEFI. С помощью такой атаки злоумышленник может запустить вредоносную программу, пропатчить напрямую ядро ОС или совершить любые другие злонамеренные действия», — объясняют (PDF) специалисты.

Например, атакуя системы Windows, преступник сможет задействовать BootHole для замены загрузчика по умолчанию и установки руткита. К сожалению, даже установка патчей GRUB2 не решит проблему до конца, поскольку атакующий всё ещё сможет заменить загрузчик на уязвимую версию.

Контроллер памяти AMD научили обходить аппаратную изоляцию

Исследователь Кристофер Домас опубликовал PoC-проект skitter-creek-bath-salts, демонстрирующий обход аппаратной защиты памяти на процессорах AMD Family 16h. Техника манипулирует настройками контроллера DRAM и позволяет обращаться к областям, которые должны быть недоступны даже операционной системе, ядру и коду с привилегиями ring 0.

Обычно программные и аппаратные механизмы контролируют доступ по физическим адресам.

Но последнюю точку в маршруте ставит контроллер памяти: он переводит адрес в конкретные координаты DRAM — канал, ранг, банк, строку и столбец.

Домас показал, что изменение одного регистра может перенастроить это преобразование уже после срабатывания вышестоящих средств защиты. В результате появляется альтернативный адрес, ведущий к тем же ячейкам DRAM. Охраняемый вход остаётся заперт, но контроллер внезапно рисует вторую дверь прямо в стене.

 

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

Для поиска адресов-двойников проект использует линейную алгебру и SMT-решатель Z3. Инструменты восстанавливают связь между обычным и изменённым отображением памяти, после чего вычисляют алиас для защищённой области.

Исследователь продемонстрировал потенциальный доступ к памяти AMD Platform Security Processor, включая данные fTPM, защищённой области System Management Mode, состояниям процессора C6 и хранилищу микрокода. Последний сценарий допускает не только извлечение копии патча, но и её возможное изменение перед восстановлением состояния ядра.

PoC проверяли только на AMD Family 16h. Данных об аналогичной уязвимости в новых AMD, Intel, ARM или RISC-V нет.

RSS: Новости на портале Anti-Malware.ru