ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ GRUB2, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ UEFI Secure Boot

Π’ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ GRUB2 выявлСно 8 уязвимостСй. НаиболСС опасная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° (CVE-2020-10713), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присвоСно ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя BootHole, Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ UEFI Secure Boot ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ установки Π½Π΅Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ врСдоносного ПО. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ уязвимости являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для Π΅Ρ‘ устранСния Π½Π΅ достаточно ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ GRUB2, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ со старой уязвимой вСрсиСй, Π·Π°Π²Π΅Ρ€Π΅Π½Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Linux, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Windows.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² систСмС списка ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов (dbx, UEFI Revocation List), Π½ΠΎ Π² этом случаС Π±ΡƒΠ΄Π΅Ρ‚ потСряна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования старых установочных носитСлСй c Linux. НСкоторыС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ оборудования ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π² свои ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ список ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов, Π½Π° Ρ‚Π°ΠΊΠΈΡ… систСмах Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI Secure Boot ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹Π΅ сборки дистрибутивов Linux.

Для устранСния уязвимости Π² дистрибутивах Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ инсталляторы, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с ядром, fwupd-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈ shim-прослойку, сгСнСрировав для Π½ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ подписи. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ установочныС ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈ ΠΈΠ½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ носитСли, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ список ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов (dbx) Π² ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ UEFI. Π”ΠΎ обновлСния dbx Π² UEFI систСма остаётся уязвимой нСзависимо ΠΎΡ‚ установки ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π² ОБ.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эксплуатирован для выполнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² процСссС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ проявляСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ содСрТимого Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ grub.cfg, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ размСщаСтся Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ESP (EFI System Partition) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π°Π²Π° администратора, Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ цСлостности подписанных исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² shim ΠΈ GRUB2. Из-Π·Π° ошибки Π² ΠΊΠΎΠ΄Π΅ парсСра ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок Ρ€Π°Π·Π±ΠΎΡ€Π° YY_FATAL_ERROR лишь Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π» Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ уязвимости сниТаСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ наличия ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ систСмС, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вострСбованной для внСдрСния скрытых rootkit-ΠΎΠ² ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ физичСского доступа ΠΊ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ (ΠΏΡ€ΠΈ возмоТности Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ со своСго носитСля).

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Linux-дистрибутивов для Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСбольшая прослойка shim, завСрСнная Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью Microsoft. Данная прослойка Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ GRUB2 собствСнным сСртификатом, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ дистрибутивов Π½Π΅ Π·Π°Π²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ядра ΠΈ GRUB Π² Microsoft. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ позволяСт Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого grub.cfg Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выполнСния своСго ΠΊΠΎΠ΄Π° Π½Π° этапС послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ shim, Π½ΠΎ Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, вклинившись Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ довСрия ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Secure Boot ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° дальнСйшим процСссом Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π² Ρ‚ΠΎΠΌ числС для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Lockdown.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ GRUB2, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ UEFI Secure Boot

Π”Ρ€ΡƒΠ³ΠΈΠ΅ уязвимости Π² GRUB2:

  • CVE-2020-14308 — ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈΠ·-Π·Π° отсутствия ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° выдСляСмой области памяти Π² grub_malloc;
  • CVE-2020-14309 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² grub_squash_read_symlink, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ записи Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°;
  • CVE-2020-14310 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²read_section_from_string, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ записи Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°;
  • CVE-2020-14311 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² grub_ext2_read_link, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ записи Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°;
  • CVE-2020-15705 — позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ нСподписанныС ядра ΠΏΡ€ΠΈ прямой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Secure Boot Π±Π΅Π· прослойки shim;
  • CVE-2020-15706 — ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти (use-after-free) ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎ врСмя выполнСния;
  • CVE-2020-15707 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° initrd.

ОбновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с исправлСниями Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ для Debian, Ubuntu, RHEL ΠΈ SUSE. Для GRUB2 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ.

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