Wydanie Coreboota 4.17

Opublikowano wydanie projektu CoreBoot 4.17, w ramach którego rozwijana jest darmowa alternatywa dla autorskiego oprogramowania i BIOS-u. Kod projektu jest rozpowszechniany na licencji GPLv2. W tworzeniu nowej wersji wzięło udział 150 programistów, którzy przygotowali ponad 1300 zmian.

Główne zmiany:

  • Luka (CVE-2022-29264), która pojawiła się w wersjach CoreBoot od 4.13 do 4.16, została naprawiona i umożliwia wykonanie kodu na systemach z AP (procesorem aplikacji) na poziomie SMM (tryb zarządzania systemem), który ma wyższy priorytet ( Ring -2) niż tryb hypervisora ​​i zerowy pierścień ochrony oraz nieograniczony dostęp do całej pamięci. Problem jest spowodowany nieprawidłowym wywołaniem procedury obsługi SMI w module smm_module_loader.
  • Dodano obsługę 12 płyt głównych, z czego 5 jest używanych na urządzeniach z systemem operacyjnym Chrome lub na serwerach Google. Wśród opłat innych niż Google:
    • Clevo L140MU / L141MU / L142MU
    • Dell Precision T1650
    • Stacja robocza HP Z220 CMT
    • Star Labs LabTop Mk III (i7-8550u), LabTop Mk IV (i3-10110U, i7-10710U), Lite Mk III (N5000) i Lite Mk IV (N5030).
  • Zakończono obsługę płyt głównych Google Deltan i Deltaur.
  • Dodano nowy ładunek coreDOOM, umożliwiający uruchomienie gry DOOM z Coreboot. Projekt wykorzystuje kod doomgeneric, przeniesiony do libpayload. Do wyjścia używany jest liniowy bufor ramki Coreboot, a pliki WAD z zasobami gry są ładowane z CBFS.
  • Zaktualizowano komponenty ładunku SeaBIOS 1.16.0 i iPXE 2022.1.
  • Dodano tryb SeaGRUB (GRUB2 przez SeaBIOS), który umożliwia GRUB2 korzystanie z wywołań zwrotnych udostępnianych przez SeaBIOS, na przykład w celu uzyskania dostępu do sprzętu, który nie jest dostępny z ładunku GRUB2.
  • Dodano ochronę przed atakiem SinkHole, która pozwala na wykonanie kodu na poziomie SMM (System Management Mode).
  • Zaimplementowano wbudowaną możliwość generowania statycznych tabel stron pamięci z plików zestawu, bez konieczności wywoływania narzędzi innych firm.
  • Zezwalaj na zapisywanie informacji debugowania w konsoli CBMEMC z procedur obsługi SMI podczas korzystania z DEBUG_SMI.
  • Zmieniono system procedur inicjalizacji CBMEM; zamiast procedur obsługi *_CBMEM_INIT_HOOK powiązanych z etapami zaproponowano dwie procedury obsługi: CBMEM_CREATION_HOOK (używane na początkowym etapie tworzenia cbmem) i CBMEM_READY_HOOK (używane na wszystkich etapach, w których cbmem został już Utworzony).
  • Dodano obsługę PSB (Platform Secure Boot), aktywowanej przez procesor PSP (Platform Security Processor), w celu sprawdzenia integralności BIOS-u za pomocą podpisu cyfrowego.
  • Dodano własną implementację modułu obsługi debugowania danych przesyłanych z FSP (FSP Debug Handler).
  • Dodano specyficzne dla dostawcy funkcje TIS (Specyfikacja interfejsu TPM) do odczytu i zapisu bezpośrednio z rejestrów TPM (Trusted Platform Module) - tis_vendor_read() i tis_vendor_write().
  • Dodano obsługę przechwytywania dereferencji wskaźników zerowych poprzez rejestry debugowania.
  • Zaimplementowano wykrywanie urządzeń i2c, ułatwiając pracę z płytami wyposażonymi w touchpady lub ekrany dotykowe różnych producentów.
  • Dodano możliwość zapisywania danych czasowych w formacie odpowiednim do generowania wykresów FlameGraph, które wyraźnie pokazują, ile czasu spędza się na poszczególnych etapach startu.
  • Do narzędzia cbmem dodano opcję dodawania „znacznika czasu” czasu z przestrzeni użytkownika do tabeli cbmem, co umożliwia odzwierciedlenie zdarzeń w etapach wykonanych po CoreBoot w cbmem.

Dodatkowo możemy odnotować publikację przez OSFF (Open-Source Firmware Foundation) listu otwartego do Intela, w którym zaproponowano uczynienie pakietów obsługi oprogramowania sprzętowego (FSP, Firmware Support Package) bardziej modułowymi i rozpoczęcie publikowania dokumentacji związanej z inicjowaniem Intel SoC . Brak kodu FSP znacznie komplikuje tworzenie otwartego oprogramowania sprzętowego i uniemożliwia rozwój projektów Coreboot, U-Boot i LinuxBoot na sprzęcie Intel. Wcześniej podobna inicjatywa zakończyła się sukcesem i firma Intel otworzyła kod blokowego oprogramowania sprzętowego PSE (Programmable Services Engine), o które prosiła społeczność.

Źródło: opennet.ru

Dodaj komentarz