Техническое исследование обхода UEFI Secure Boot, вызванного небезопасным пользовательским загрузчиком PE, включающее анализ первопричины, процесс эксплуатации уязвимости и учебный proof-of-concept.
Этот репозиторий содержит исследовательские материалы, связанные с CVE-2024-7344 — уязвимостью обхода Secure Boot, затрагивающей системы UEFI. Здесь собраны технический анализ уязвимости, документация по сценарию атаки и воссозданные приложения, предназначенные для воспроизведения уязвимого поведения в контролируемых средах. Репозиторий также включает документацию и исследовательские ресурсы, призванные помочь специалистам по безопасности в изучении, исследовании и экспериментах с методами, связанными с данной уязвимостью.
CVE-2024-7344 была первоначально обнаружена и ответственно раскрыта исследовательской командой ESET при координационной поддержке CERT/CC. Официальные и общественные ссылки:
Этот репозиторий включает упрощённое образовательное доказательство концепции, воспроизводящее тот же класс уязвимости, что и CVE-2024-7344. Кроме того, часть оригинальной реальной реализации была проанализирована и задокументирована в рамках специализированного исследовательского проекта по безопасности UEFI.
Исследователям, заинтересованным в понимании исторического происхождения этой уязвимости, оригинального формата ALRM, кастомного загрузчика RxPE и эволюции затронутых продуктов после отзыва сертификатов Microsoft, следует обратиться к сопутствующему репозиторию "UEFI-Security-Research-Howyar-SysReturn-NetCopy".
Оригинальное 32-разрядное уязвимое UEFI-приложение, затронутое CVE-2024-7344, включено в этот репозиторий.
Известно, что 64-разрядный бинарный файл доступен внутри архива, размещённого на VirusTotal. Доступ к этому образцу требует учётной записи VirusTotal Enterprise, и на момент написания у нас не было доступа для его загрузки. Для справки, образец можно найти по следующему URL для исследователей, имеющих соответствующий доступ:
CVE-2024-7344 — это уязвимость обхода UEFI Secure Boot, вызванная UEFI-приложением стороннего производителя, подписанным Microsoft, которое некорректно загружает и выполняет неподписанные UEFI-бинарные файлы в процессе загрузки. Уязвимость позволяет злоумышленникам выполнять недоверенный код до загрузки операционной системы, фактически нарушая цепочку доверия UEFI Secure Boot даже при включённом Secure Boot.
В отличие от других уязвимостей обхода Secure Boot, основанных на повреждении памяти или манипуляциях с NVRAM, CVE-2024-7344 является результатом логической ошибки и дефекта проектирования. Затронутое UEFI-приложение реализует собственный кастомный PE-загрузчик вместо использования стандартных служб UEFI (LoadImage и StartImage), тем самым обходя всю криптографическую проверку, обычно обеспечиваемую Secure Boot.
Поскольку уязвимое приложение подписано сертификатом Microsoft для сторонних UEFI-компонентов и по умолчанию доверено на большинстве систем, эксплуатация происходит на этапе с высокими привилегиями и на ранней стадии выполнения платформы.
Secure Boot — это ключевая функция безопасности UEFI, предназначенная для обеспечения цепочки доверия платформы от прошивки до операционной системы. Её основная цель — предотвращение выполнения несанкционированных или вредоносных загрузочных компонентов, таких как буткиты, в процессе загрузки.
На высоком уровне Secure Boot работает путём криптографической проверки UEFI-исполняемых файлов перед их запуском. Эта проверка выполняется с использованием двух баз данных, поддерживаемых прошивкой:
UEFI-приложению разрешено выполняться, если выполняется одно из условий:
По умолчанию большинство систем поставляются со следующими сертификатами, доверенными в db:
Уязвимое приложение, затронутое CVE-2024-7344, подписано сертификатом Microsoft Corporation UEFI CA 2011. Поскольку этот сертификат широко доверен у разных производителей и платформ, любая уязвимость в таком подписанном приложении имеет глобальное влияние и может быть эксплуатирована на большинстве UEFI-систем.
Уязвимость была обнаружена исследовательской командой ESET при анализе UEFI-компонентов, поставляемых с несколькими продуктами для восстановления системы в реальном времени. Первоначальная разведка выявила наличие UEFI-приложения, подписанного Microsoft, с именем reloader.efi, развёрнутого вместе с файлом данных cloak.dat на системном разделе EFI (ESP).
Проверка приложения показала, что оно предназначено для загрузки и выполнения дополнительной UEFI-нагрузки с диска при запуске системы. Хотя такое поведение само по себе не является небезопасным, дальнейшая обратная разработка показала, что приложение не использует стандартные службы загрузки образов UEFI и не обеспечивает проверку Secure Boot для загружаемой нагрузки. Дальнейшее расследование подтвердило, что один и тот же уязвимый загрузчик использовался в нескольких продуктах разных производителей.
Первопричина CVE-2024-7344 заключается в использовании кастомного PE-загрузчика, реализованного внутри подписанного UEFI-приложения. В частности:
Обходя LoadImage и StartImage, приложение полностью избегает проверки Secure Boot. В результате любой неподписанный UEFI-бинарный файл может быть выполнен независимо от состояния Secure Boot. Это представляет собой фундаментальное нарушение допущений Secure Boot и классифицируется как ошибка уровня проектирования, а не ошибка реализации.
Эксплуатация CVE-2024-7344 не требует повреждения памяти, гонок или сложных примитивов эксплуатации. Вместо этого она опирается на злоупотребление предполагаемой функциональностью уязвимого приложения.
Типичный сценарий эксплуатации включает:
Во время загрузки:
Это обеспечивает надёжное развёртывание UEFI-буткитов, таких как BlackLotus или HybridPetya, на системах с включённым Secure Boot.
Уязвимый загрузчик распространялся в составе нескольких легитимных продуктов для восстановления и резервного копирования, включая:
Microsoft устранила CVE-2024-7344 путём отзыва затронутых UEFI-бинарных файлов через обновления dbx Secure Boot, выпущенные 14 января 2025 года, поэтому системы, применившие последние отзывы UEFI, защищены от эксплуатации этой уязвимости.
Работаете над чем-то похожим? Исследуете безопасность UEFI, ядра, эксплуатацию или другую интересную тему в области безопасности? Если вам нужна помощь в разработке эксплойта, изучении техники или просто хотите обменяться идеями, не стесняйтесь обращаться. Я всегда открыт для обсуждения исследований, готов помочь, где могу, и сотрудничать над интересными проектами. Свяжитесь со мной в LinkedIn.