Выпуск 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).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru