Π Π°Π·ΠΊΡΠΈΡΠ° Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° (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
