Випуск 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 використовувати calaback-дзвінки, що надаються SeaBIOS, наприклад, для звернення до обладнання, до якого з payload GRUB2 немає доступу.
  • Додано захист від атаки SinkHole, що дозволяє виконати код на рівні SMM (System Management Mode).
  • Реалізовано вбудовану можливість генерації статичних таблиць сторінок пам'яті з асемблерних файлів, без необхідності виклику сторонніх утиліт.
  • Дозволено запис налагоджувальної інформації в консоль CBMEMC з обробників SMI під час використання DEBUG_SMI.
  • Змінено систему обробників ініціалізації CBMEM, замість прив'язаних до стадій обробників *_CBMEM_INIT_HOOK запропоновано два обробники CBMEM_CREATION_HOOK (використовується на початковій стадії, що створює cbmem) і CBMEM_READY_HOOK (використовується на будь-яких.
  • Додано підтримку 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).

Джерело: opennet.ru

Додати коментар або відгук