Image

Кибербез без цензуры

Подписка = +10 к цинизму →

Заглянуть «под капот» материнки без фонарика. CERT выпустила парсер для тех, кому мало просто обновить BIOS

leer en español

Заглянуть «под капот» материнки без фонарика. CERT выпустила парсер для тех, кому мало просто обновить BIOS

Специалисты восстановили форматы BIOS по «отпечаткам пальцев» и открытым данным.

image

Разбирать BIOS и UEFI обновления обычно приходится почти вслепую. Внутри таких файлов вперемешку лежат прошивки, драйверы, контейнеры, образы и исполняемые модули, а нормальных инструментов, которые дают понятную картину содержимого, немного. Команда CERT из Carnegie Mellon SEI решила упростить эту задачу и выпустила CERT UEFI Parser, Python-инструмент для инспекции ROM-образов прошивок, установщиков и других файлов, связанных с UEFI.

CERT UEFI Parser написан для Python 3 и построен на фреймворке Construct, который используется для описания бинарных структур. Разработчики подчёркивают, что их парсер получился гибче эталонной реализации EDK2 и его проще расширять, если нужно поддержать проприетарные или экспериментальные форматы. Цель проекта — научиться понимать все типы данных, которые обычно встречаются внутри UEFI ROM, включая PE-файлы и структуры образов.

В основе инструмента не только данные из спецификаций UEFI, но и результаты независимых исследований прошивок. В качестве примера упоминаются работы Игоря Скочинского по Intel ME. При этом авторы отдельно отмечают, что проект не связан с NDA и другими ограничениями, а все проприетарные форматы были восстановлены по открытым источникам и собственному анализу.

Для работы парсеру нужен пакет cert-uefi-support, в котором собраны низкоуровневые утилиты для распаковки и работы с бинарными данными. Оба пакета доступны в PyPI и устанавливаются в виртуальное окружение. Графический интерфейс опционален и подключается через PySide6, который не ставится по умолчанию из-за большого размера зависимостей.

Запускать CERT UEFI Parser можно в четырёх режимах. Это GUI, текстовый вывод в терминал с ANSI-раскраской, полный JSON и «облегчённый» JSON с полями, которые удобны для генерации SBOM. В качестве тестовых образцов авторы предлагают брать BIOS или UEFI обновления с сайта производителя устройства. Полная поддержка всех моделей не гарантируется, но многие распространённые форматы от вендоров уже успешно разбираются, а изучение таких апдейтов помогает быстро понять возможности инструмента.