Π Π°Π·ΠΊΡΠΈΡΠ° Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2021-33164) Π² UEFI ΡΡΡΠΌΡΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ SMM (System Management Mode), ΠΏΠΎ-ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎ ΠΎΡ Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ ΠΈ Π½ΡΠ»Π΅Π²ΠΎΡΠΎ Π·Π°ΡΠΈΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½Π° ΠΏΠ°ΠΌΠ΅Ρ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°, ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΡΠΎ ΠΈΠΌΠ΅ RingHopper, Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π°ΡΠ°ΠΊΠ°, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Π²ΡΠ΅ΠΌΠ΅, ΡΡΠ΅Π· DMA (Direct Memory Access), Π·Π° ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ Π½Π° Π½ΠΈΠ²ΠΎ SMM. ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΠΎΡΠ²ΡΡΠ΄Π΅Π½ΠΎ Π² ΡΡΡΠΌΡΠ΅ΡΠΈΡΠ΅ Π½Π° Intel, Dell ΠΈ Insyde Software (ΡΠ²ΡΡΠ΄ΠΈ ΡΠ΅, ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π·Π°ΡΡΠ³Π° 8 ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ, Π½ΠΎ Π΄ΡΡΠ³ΠΈΡΠ΅ 5 Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΡΠ°Π·ΠΊΡΠΈΡΠΈ). Π€ΡΡΠΌΡΠ΅ΡΠΈΡΠ΅ Π½Π° AMD, Phoenix ΠΈ Toshiba Π½Π΅ ΡΠ° Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΈΡΠ΅ SMI ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ (System Management Interrupt), Π·Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΡΠ°Π²Π° Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ. ΠΡΠ°ΠΊΠ°ΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏ Π² ΡΠ°Π½Π½ΠΈΡ Π΅ΡΠ°ΠΏ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Linux ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΡΡ ΡΡΡΠΌΡΠ΅ΡΠ° ΡΡΠ΅Π· ΡΡΠ»ΡΠ³Π°ΡΠ° LVFS (Linux Vendor Firmware Service), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° fwupdmgr (fwupdmgr get-updates; fwupdmgr update) ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° fwupd.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠ°Π²Π° Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ Π½Π΅ ΠΏΡΠ΅ΡΠΈ Π½Π° Π½Π΅Π³ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠ°ΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ ΠΎΡ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π½ΠΈΠ²ΠΎ, Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ ΡΠ»Π΅Π΄ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π½Π° ΡΠΎΡΠΈΠ°Π»Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡ. ΠΠΎΡΡΡΠΏΡΡ Π΄ΠΎ SMM (Ring -2) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ, Π½Π΅ΠΏΠΎΠ΄ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΎ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠΈΡΠ΅ ΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² SPI Flash Π½Π° ΡΠΊΡΠΈΡ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΡΡΡΠΊΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΠΎΡΠΊΡΠΈΠ²Π°Ρ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΠΏΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ (UEFI Secure Boot, Intel BootGuard) ΠΈ Π°ΡΠ°ΠΊΠΈ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈ Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° SMI (System Management Interrupt), ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ SMRAM. ΠΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ ΡΡΠ΅Π· DMA. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΈΡ Ρ
Π°ΡΠ°ΠΊΡΠ΅Ρ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ SMRAM ΡΡΠ΅Π· DMA, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ Π΄Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° SMRAM, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ DMA Π² ΠΎΠ±Ρ
ΠΎΠ΄ Π½Π° API Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° SMI. ΠΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Intel-VT ΠΈ Intel VT-d, Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π·Π°ΡΠΈΡΠ° ΠΎΡ DMA-Π°ΡΠ°ΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° IOMMU (Input-Output Memory Management Unit), Π½ΠΎ ΡΠ°Π·ΠΈ Π·Π°ΡΠΈΡΠ° Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΡΠ°ΠΌΠΎ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ DMA-Π°ΡΠ°ΠΊΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΎΡ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈ Π½Π΅ Π·Π°ΡΠΈΡΠ°Π²Π° ΠΎΡ Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅Π· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° SMI.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
