Перейти к основному содержанию

Уязвимость LogoFAIL в UEFI

Information Seciurity

Команда Binarly REsearch обнаружила множественные уязвимости в коде UEFI устройств с архитектурой x86 и ARM самых разных вендоров. Группу уязвимостей назвали LogoFAIL, потому что они кроются в компоненте, отвечающей за загрузку изображений логотипа вендора, которое отображается при старте устройства.

Эксперты обнаружили разные возможности для внедрения вредоносной картинки в системный раздел EFI (ESP) или в неподписанные секции обновления прошивки. Специально сгенерированное изображения после загрузки позволяет осуществить эксплуатацию уязвимости и обойти безопасную загрузку, в том числе аппаратную. Например, Intel Boot Guard, AMD Hardware-Validated Boot или ARM TrustZone-based Secure Boot.

Атака LogoFAIL скрытная, она не нарушает целостность UEFI, не требует модификации прошивки, не требует изменения загрузчика ОС. Её сложно обнаружить. Не принципиально какой используется процессор или вендор устройства.

Результаты исследования Binarly представит 6 декабря на конференции Black Hat Europe в Лондоне.

Подробности ниже.

https://binarly.io/posts/The_Far_Reaching_Consequences_of_LogoFAIL/

Перевод статьи

Команда Binarly REsearch исследует уязвимые компоненты синтаксического анализа изображений во всей экосистеме встроенного ПО UEFI и обнаруживает, что затронуты все основные производители устройств на базе x86 и ARM.

История циклична, исследование уязвимостей не является исключением. Ранее в этом году наша исследовательская группа рассмотрела некоторые уязвимости, обнаруженные платформой прозрачности Binarly, и обнаружила, что за последние годы значительно увеличилось количество парсеров изображений. Сегодня встроенное ПО системы UEFI содержит парсеры BMP, GIF, JPEG, PCX и TGA, что значительно увеличивает поверхность атаки по сравнению с предыдущими исследованиями, которые были проведены в этой области.

Самая известная атака была представлена на Black Hat США в 2009 году Рафалом Войтчуком и Александром Терешкиным с эксплуатацией ошибки парсера BMP в ссылочном коде UEFI.

security
Слайд из оригинальной презентации Войчука/Терешкина "Атака на Intel BIOS"

С тех пор мы не видели никакой публичной документации о поверхностях атак, связанных с анализаторами графических изображений, встроенными в встроенное ПО системы UEFI, пока у одного из членов нашей исследовательской группы не возник момент "ага", когда он подумал о проблемах безопасности цепочки поставок из нашей предыдущей работы "Использование OpenSSL в прошивке UEFI выявляет слабость в SBOM".

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

Мы углубились в эту червоточину и были шокированы многочисленными важными открытиями, которые могут быть использованы злоумышленниками для доставки вредоносной полезной нагрузки и обхода безопасной загрузки Intel Boot Guard и других технологий безопасности. Что ещё более важно, они могут открыть злоумышленникам двери для обхода современных решений защиты конечных точек, и их следует считать гораздо более мощными, чем недавний буткит BlackLotus.

Полная техническая информация об уязвимостях LogoFAIL находится под запретом до 6 декабря. Исследователи Binarly представят доклад "LogoFAIL: Security Implications of Image Parsing during System Boot" на конференции Black Hat Europe.

logo

Что такое LogoFAIL?

LogoFAIL — это недавно обнаруженный набор уязвимостей безопасности, затрагивающих различные библиотеки синтаксического анализа изображений, используемых в системной прошивке различными производителями в процессе загрузки устройства. Эти уязвимости в большинстве случаев присутствуют внутри IBV (Independent BIOS vendor), затрагивая не на одного поставщика, а на всю экосистему этого эталонного кода и поставщиков устройств, в которых он используется (см. «Безопасность цепочки поставок встроенного ПО нарушена: можем ли мы это исправить?»).

Одним из наиболее важных открытий является то, что LogoFAIL не является специфичным для микросхем и может затрагивать устройства на базе x86 и ARM. LogoFAIL является специфичным для UEFI и IBV из-за специфики уязвимых анализаторов изображений, которые были использованы. Это показывает гораздо более широкое воздействие, что будет представлены 6 декабря.

Влияние на всю экосистему UEFI показано на рисунке ниже.

logo

 

Первоначально мы обнаружили LogoFAIL на устройствах Lenovo с референсными кодами Insyde, AMI и Phoenix и сообщили об этих уязвимостях в рекомендации BRLY-2023-006.

Мы были в значительной степени сосредоточены на сообщении об уязвимостях, в основном обнаруженных продуктом Binarly Transparency Platform, но работа над LogoFAIL была другой и изначально начиналась как небольшой исследовательский проект просто для развлечения. После демонстрации огромного количества интересных поверхностей атак из компонентов прошивки, разбирающих образы, проект перерос в масштабное раскрытие всей отрасли. Первоначальные уязвимости были найдены путем фаззинга потенциально уязвимых компонентов после того, как мы провели предварительный статический анализ соответствующих потоков кода в IDA с помощью плагина efiXplorer для контекста UEFI.

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

logo

Позже мы обнаружили больше уязвимостей в коде Insyde и сообщили о них в бюллетене BRLY-2022-018. После того, как мы поняли, что влияние распространяется далеко за пределы устройств Lenovo, мы сообщили о проблемах безопасности, связанных с LogoFAIL, в систему CERT/CC VINCE. Исходя из предыдущего опыта, такая координация очень полезна для реагирования на проблемы с поставщиками в масштабах всей отрасли.

BRLY ID CERT/CC ID CVSS score CWE
BRLY-2023-006 VU#811862 High CWE-122: переполнение буфера кучи
BRLY-2023-018 VU#811862 Medium CWE-125: чтение за пределами памяти

Как работают уязвимости LogoFAIL?

Уязвимости позволяют злоумышленникам хранить вредоносные изображения логотипов либо на системном разделе EFI (ESP), либо в неподписанных разделах обновления прошивки. Когда эти образы анализируются во время загрузки, уязвимость может быть активирована, и управляемая злоумышленником полезная нагрузка может быть выполнена, чтобы перехватить поток выполнения и обойти функции безопасности, такие как безопасная загрузка, включая аппаратные механизмы проверенной загрузки (такие как Intel Boot Guard, AMD Hardware-Validated Boot или ARM TrustZone Secure Boot).

Этот вектор атаки может дать злоумышленнику преимущество в обходе большинства решений для защиты конечных точек и доставке скрытого буткита прошивки, который будет сохраняться в разделе ESP или капсуле прошивки с измененным изображением логотипа. Технически, с точки зрения высокого уровня, атаку можно упростить до трех этапов.

logo

Каковы последствия LogoFAIL?

Эти уязвимости могут поставить под угрозу безопасность всей системы, делая неэффективными меры безопасности «ниже ОС», такие как безопасная загрузка, включая Intel Boot Guard. Такой уровень компрометации означает, что злоумышленники могут получить глубокий контроль над затронутыми системами.

Ранее мы уже неоднократно сталкивались с тем, что злоумышленники злоупотребляли разделами ESP для модификации загрузчиков, связанных с операционной системой, для доставки буткитов UEFI (включая BlackLotus). Случай LogoFAIL позволяет по-другому взглянуть на поверхность атаки на разделы ESP с использованием изменения изображения логотипа.

Вектор атаки Vulnerability ID Эксплуатация Уязвимы CVSS score CWE
LogoFAIL VU#811862 N/A Intel Boot Guard
Secure Boot Bypass
High
Medium
CWE-122: переполнение
буфера кучи
CWE-125: чтение за пределами памяти
Baton Drop CVE-2022-21894
CVE-2023-24932
BlackLotus Secure Boot Bypass 6.7 Medium CWE-358: неправильно реализованная проверка безопасности для стандартного формата
3rd-party Bootloaders VU#309662 N/A Secure Boot Bypass 6.7 Medium CWE-358: неправильно реализованная проверка безопасности для стандартного формата
BootHole VU#174059 N/A Secure Boot Bypass 8.2 High CWE-120: Копирование буфера без проверки размера входных данных

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

logo

Любой скомпрометированный подписанный компонент UEFI может нарушить целостность безопасной загрузки и обойти её, не будучи обнаруженным целостностью платформы или мерами, связанными с безопасной загрузкой. Существующие измерения безопасности устройств позволяют эффективно обнаруживать другие угрозы из сравнительной таблицы.

Во время презентации на Black Hat Europe 6 декабря команда Binarly REsearch продемонстрирует новые методы эксплуатации кучи для активации уязвимости LogoFAIL, которая приводит к выполнению произвольного кода.

logo

На какие устройства влияет LogoFAIL?

Сотни потребительских и корпоративных устройств от различных поставщиков, включая Intel, Acer и Lenovo, потенциально уязвимы. Точный список затронутых устройств все еще определяется, но важно отметить, что все три основных IBV AMI, Insyde и Phoenix - затронуты из-за многочисленных проблем безопасности, связанных с анализаторами изображений, которые они поставляют как часть своей прошивки.

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

Типы и объем уязвимостей безопасности, обнаруженных Binarly, показывают чистую зрелость безопасности продукта и качество кода в целом в эталонном коде IBV. Большинство из этих компаний выросли в начале 90-х годов. Они никогда не меняют своего мышления, действуя скорее на опережение, чем на реагирование, и устраняя только известные проблемы, не устраняя все поверхности атак и не внедряя эффективные меры по их устранению.

Binarly Transparency Platform уникально обнаруживает уязвимые компоненты LogoFAIL в системной прошивке, и все наши клиенты информируются о влиянии на их кодовые базы или корпоративную инфраструктуру.

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

Хотите узнать больше о Binarly Transparency Platform или других решениях? Не стесняйтесь обращаться к нам по адресу fwhunt@binarly.io.

Теги

 

Похожие материалы