ВыявлСн UEFI-Π±ΡƒΡ‚ΠΊΠΈΡ‚ Bootkitty, ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ врСдоносный ΠΊΠΎΠ΄ Π² Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ΅ ядро Linux

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ESET выявили Π½ΠΎΠ²Ρ‹ΠΉ Π±ΡƒΡ‚ΠΊΠΈΡ‚ «Bootkitty», устанавливаСмый послС Π²Π·Π»ΠΎΠΌΠ° систСмы вмСсто Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° GRUB ΠΈ примСняСмый для подстановки Π² ядро Linux врСдоносных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ скрыто ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² Π½Π΅ΠΉ свои дСйствия. УтвСрТдаСтся, Ρ‡Ρ‚ΠΎ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ UEFI-Π±ΡƒΡ‚ΠΊΠΈΡ‚, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠ΅ систСм Linux.

Bootkitty размСщаСтся Π² Ρ„Π°ΠΉΠ»Π΅ grubx64.efi Π² систСмном Ρ€Π°Π·Π΄Π΅Π»Π΅ EFI (EFI system partition, /boot/efi/EFI/ubuntu) вмСсто ΡˆΡ‚Π°Ρ‚Π½ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° GRUB. ПослС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ Π±ΡƒΡ‚ΠΊΠΈΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ GRUB2 ΠΈ вносит Π² Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ Π² памяти ΠΊΠΎΠ΄ GRUB2 измСнСния, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ цСлостности ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² дальнСйшСм, Π° Ρ‚Π°ΠΊΠΆΠ΅ добавляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ послС распаковки ΠΎΠ±Ρ€Π°Π·Π° ядра Linux Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вносит измСнСния Π² Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ядра (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи), Π° Ρ‚Π°ΠΊΠΆΠ΅ измСняСт строку запуска процСсса ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с «/init» Π½Π° «LD_PRELOAD=/opt/injector.so /init)».

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° injector.so ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ SELinux ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ init_module, которая Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля ядра /opt/dropper.ko. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ядра dropper.ko создаёт ΠΈ запускаСт исполняСмый Ρ„Π°ΠΉΠ» /opt/observer, Π·Π°Ρ‚Π΅ΠΌ скрываСт сСбя Π² спискС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра ΠΈ выставляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ getdents ΠΈ tcp4_seq_show, для скрытия Ρ„Π°ΠΉΠ»Π° /opt/observer ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» /opt/observer Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра /opt/rootkit_loader.ko, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ Ρ€ΡƒΡ‚ΠΊΠΈΡ‚Π° /opt/rootkit.

ВыявлСн UEFI-Π±ΡƒΡ‚ΠΊΠΈΡ‚ Bootkitty, ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ врСдоносный ΠΊΠΎΠ΄ Π² Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ΅ ядро Linux

Для установки Π±ΡƒΡ‚ΠΊΠΈΡ‚Π° трСбуСтся ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ доступ ΠΊ систСмС ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ врСдоносного ПО ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌΠΈ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Π·Π»ΠΎΠΌΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ систСмы для закрСплСния своСго дальнСйшСго присутствия ΠΈ скрытия осущСствляСмой врСдоносной активности. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° injector.so ΠΈ врСдоносныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Π· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ RAM-диска ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ. Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ grubx64.efi размСщаСтся Π² Ρ€Π°Π·Π΄Π΅Π» с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ для UEFI.

Π’ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Bootkitty, попавшСм Π² Ρ€ΡƒΠΊΠΈ исслСдоватСлСй, модификация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² памяти ядра ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ смСщСниям Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности этих смСщСний для Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ вСрсии ядра. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Bootkitty смСщСния Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ лишь ΠΊ вСрсиям ядра ΠΈ GRUB, поставляСмым Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… выпусках Ubuntu, Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… систСмах ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ сбою ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. Для Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Bootkitty (grubx64.efi) использовался самоподписанный сСртификат, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяло ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π±ΡƒΡ‚ΠΊΠΈΡ‚ Π½Π° систСмах с Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ UEFI Secure Boot Π±Π΅Π· установки сСртификата Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ Π² список Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… довСрия сСртификатов Π² UEFI. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ особСнности Π½Π°Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈ исслСдоватСлСй Π½Π° ΠΌΡ‹ΡΠ»ΡŒ, Ρ‡Ρ‚ΠΎ Bootkitty лишь ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π±ΡƒΡ‚ΠΊΠΈΡ‚Π°, ΠΏΠΎΠΊΠ° Π½Π΅ примСняСмый для Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ.

Π˜Π·ΡƒΡ‡ΠΈΠ² ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡƒΡŽ ESET ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ исслСдоватСли ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Binarly REsearch Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ срСди связанных с Bootkitty Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² BMP-изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для эксплуатации уязвимости LogoFAIL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ UEFI Secure Boot. Π’ контСкстС Bootkitty эксплуатация уязвимости LogoFAIL ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡŒ для добавлСния Π² список ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π½Ρ‹Ρ… сСртификатов UEFI самоподписанного сСртификата Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€Π΅Π½ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π±ΡƒΡ‚ΠΊΠΈΡ‚Π° grubx64.efi, Ρ‡Ρ‚ΠΎ позволяло Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±ΡƒΡ‚ΠΊΠΈΡ‚ Π½Π° систСмах c Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ UEFI Secure Boot Π±Π΅Π· добавлСния сСртификата Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Атака осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ESP (EFI System Partition) ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BMP для Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ Π² качСствС Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ° производитСля. Из-Π·Π° использования Π² UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°Ρ… уязвимых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ изобраТСния ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° с привилСгиями ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ UEFI. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ LogoFAIL Π±Ρ‹Π»Π° выявлСна Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ ΠΈ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π»Π° UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… Acer, HP, Fujitsu ΠΈ Lenovo. Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° устранСна, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ находящиСся Π² ΠΎΠ±ΠΈΡ…ΠΎΠ΄Π΅ устройства ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с уязвимыми вСрсиями ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ.

ВыявлСн UEFI-Π±ΡƒΡ‚ΠΊΠΈΡ‚ Bootkitty, ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ врСдоносный ΠΊΠΎΠ΄ Π² Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ΅ ядро Linux


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