Технология Secure Boot, призванная защитить компьютеры от буткитов и вредоносных прошивок, оказалась уязвимой из-за ошибок в управлении цифровыми подписями. Эксперты компании ESET обнаружили, что Microsoft более десятилетия не отзывала ключи подписи для критически важных загрузочных компонентов, что позволяет злоумышленникам обходить защиту UEFI на компьютерах под управлением Windows и Linux.

Проблема с «прослойками» Shim

В основе уязвимости лежат компоненты, известные как shim («прослойки»). Они необходимы для работы механизма Secure Boot на системах Linux, так как Microsoft подписывает только свои загрузчики, а дистрибутивы Linux требуют посредника для запуска. Эксперты обнаружили 11 скомпрометированных экземпляров shim, которые до сих пор считаются доверенными системой, несмотря на наличие в них уязвимостей.

Злоумышленники могут использовать эти старые, но всё ещё «легальные» файлы для внедрения вредоносного ПО на ранней стадии загрузки. Такой компонент запускается до самой операционной системы и продолжает работать даже после переустановки Windows или Linux или замены системного диска. Для атаки не требуется поиск новой уязвимости — достаточно копия старого бинарного файла shim, который Microsoft так и не удалила из базы доверенных подписей.

Почему защита не сработала

Механизм отзыва сертификатов в UEFI реализован через две базы данных: db (список разрешённых) и dbx (список отозванных). Однако из-за ограничения размера базы dbx (всего 32 кбайт), Microsoft не стала хранить полные хеши запрещённых файлов, а решила указывать только номера версий компонентов. Это привело к появлению механизма SBAT (Secure Boot Advanced Targeting), который позволяет shim проверять версии загружаемых компонентов и блокировать устаревшие.

Проблема в том, что многие из 11 обнаруженных уязвимых shim были созданы до внедрения SBAT или содержат другие известные дыры в безопасности. Microsoft годами не добавляла их в базу отозванных, и материнские платы продолжали считать их безопасными.

Масштаб угрозы и пострадавшие

Угроза распространяется на широкий спектр устройств. Некоторые из уязвимых экземпляров использовались крупными игроками рынка, включая разработчиков дистрибутивов Red Hat, OpenSuse и Oracle Linux. Также в списке потенциально пострадавших оказались разработчики диагностического ПО PC-Doctor и даже организаторы выпускных экзаменов в Финляндии.

Решение проблемы уже внедрено в последних обновлениях. Для Windows 11 патч вышел только в июне текущего года. Ситуация с Linux сложнее из-за фрагментации экосистемы: пользователям рекомендуется обращаться к поставщикам своих дистрибутивов за обновлениями. Проверить статус отозванных shim можно с помощью специального скрипта «uefi-dbx-audit».