Выпуск Coreboot 4.17
Опубликован релиз проекта CoreBoot 4.17, в рамках которого разрабатывается свободная альтернатива проприетарным прошивкам и BIOS. Код проекта распространяется под лицензией GPLv2. В создании новой версии приняло участие 150 разработчиков, которые подготовили более 1300 изменений.
Основные изменения:
Устранена уязвимость (CVE-2022–29264), проявляющаяся в выпусках CoreBoot с 4.13 по 4.16 и позволяющая на системах с AP (Application Processor) выполнить код на уровне SMM (System Management Mode), более приоритетном (Ring -2), чем режим гипервизора и нулевое кольцо защиты, и имеющим неограниченный доступ ко всей памяти. Проблема вызвана некорректным вызовом обработчика SMI в модуле smm_module_loader.
- Добавлена поддержка 12 материнских плат, 5 из которых используется на устройствах с Chrome OS или на серверах Google. Среди не связанных с Googlе плат:
- Clevo L140MU / L141MU / L142MU
- Dell Precision T1650
- HP Z220 CMT Workstation
- Star Labs LabTop Mk III (i7–8550u), LabTop Mk IV (i3–10110U, i7–10710U), Lite Mk III (N5000) и Lite Mk IV (N5030).
Прекращена поддержка материнских плат Google Deltan и Deltaur.
Добавлен новый payload coreDOOM, позволяющий запустить игру DOOM из Coreboot. В проекте использован код doomgeneric, портированный на libpayload. Для вывода используется линейный фреймбуфер Coreboot, а WAD-файлы с игровыми ресурсами загружаются из CBFS.
- Обновлены payload-компоненты SeaBIOS 1.16.0 и iPXE 2022.1.
Добавлен режим SeaGRUB (GRUB2 поверх SeaBIOS), позволяющий в GRUB2 использовать предоставляемые SeaBIOS callback-вызовы, например, для обращения к оборудованию, к которому из payload GRUB2 нет доступа.
Добавлена защита от атаки SinkHole, позволяющей выполнить код на уровне SMM (System Management Mode).
Реализована встроенная возможность генерации статических таблиц страниц памяти из ассемблерных файлов, без необходимости вызова сторонних утилит.
Разрешена запись отладочной информации в консоль CBMEMC из обработчиков SMI при использовании DEBUG_SMI.
Изменена система обработчиков инициализации CBMEM, вместо привязанных к стадиям обработчиков *_CBMEM_INIT_HOOK предложено два обработчика CBMEM_CREATION_HOOK (используется на начальной стадии, создающей cbmem) и CBMEM_READY_HOOK (используется на любых стадиях, на которых уже создан cbmem).
Добавлена поддержка PSB (Platform Secure Boot), активируемая процессором PSP (Platform Security Processor) для верификации целостности BIOS по цифровой подписи.
Добавлена собственная реализация обработчика отладочных данных, передаваемых из FSP (FSP Debug Handler).
Добавлены специфичные для производителей TIS-функции (TPM Interface Specification) для чтения и записи напрямую из регистров TPM (Trusted Platform Module) — tis_vendor_read () и tis_vendor_write ().
Добавлена поддержка перехвата разыменований нулевых указателей через отладочные регистры.
Реализовано определение устройств i2c, упрощающее работу с платами, оснащёнными тачпадами или сенсорными экранами разных производителей.
Добавлена возможность сохранения данных о времени в формате, подходящем для генерации графиков FlameGraph, наглядно демонстрирующих какое время тратится на разных стадиях запуска.
В утилиту cbmem добавлена опция для добавления в таблицу cbmem «timestamp» времени из пространства пользователя, что даёт возможность отражать в cbmem события на стадиях, выполняемых после CoreBoot.
Дополнительно можно отметить публикацию фондом OSFF (Open-Source Firmware Foundation) открытого письма к компании Intel, в котором предлагается сделать более модульными наборы поддержки прошивок (FSP, Firmware Support Package) и начать публиковать документацию, связанную с инициализацией SoC Intel. Отсутствие кода FSP существенно затрудняет создание открытых прошивок и мешает продвижению проектов Coreboot, U-Boot и LinuxBoot на оборудовании Intel. Ранее похожая инициатива увенчалась успехом и компания Intel открыла код запрошенных сообществом прошивок блока PSE (Programmable Services Engine).
Источник: http://www.opennet.ru/opennews/art.shtml? num=57303
© OpenNet