Bootkitty: първият UEFI bootkit за Linux

bootkitty-uefi-linux-backdoor

Преди няколко дни ESET обяви новината за първото доказателство за концепцията UEFI bootkit за Linux, наречен като «Bootkitty«, този буткит е част от проект, създаден от студенти по киберсигурност от корейската програма за обучение Best of the Best (BoB).

Bootkitty, като такъв, Това е усъвършенствана заплаха, която се инсталира като заместител на буутлоудъра GRUB на Linux системи, използване на UEFI среда за поддържане на тайния контрол над системата. Този зловреден софтуер, който е първият UEFI bootkit, предназначен за Linux, зарежда злонамерени компоненти в ядрото, за да осигури устойчивост.

Bootkitty операция

  1. Замяна на GRUB:
    Първата стъпка на bootkit е да замени стандартния зареждащ механизъм, grubx64.efi, в системния дял на EFI, което му позволява да инициира злонамерения полезен товар по време на зареждане на системата.
  2. GRUB Промяна в паметта:
    След като буткитът е активиран, той зарежда легитимния GRUB2 буутлоудър в паметта, но въвежда модификации, за да деактивира проверката на целостта в по-късните компоненти. Той също така добавя драйвер, който манипулира процеса на зареждане на ядрото.
  3. Модификации на ядрото:
    • Буткитът променя функциите на ядрото, заредени в паметта, като деактивира валидирането на цифровия подпис в модулите на ядрото.
    • След това редът за инициализация на ядрото се променя, замествайки /init чрез злонамерена команда, която използва LD_PRELOAD за зареждане на злонамерената библиотека injector.so.
  • Злонамерени компоненти:
    • Инжектор.so:
      Това е библиотека, която отговаря за прихващането на системни повиквания, като SELinux и init_module, което позволява зареждането на злонамерени модули на ядрото.
    • Капкомер.ко:
      Модул на ядрото, който създава и изпълнява двоичния файл /opt/observer. Той също така се крие в списъка с модули на ядрото и манипулира системните функции, за да предотврати откриването на присъствието си или определени файлове и мрежов трафик.
    • Наблюдател и руткит зареждане:
      Изпълнимият файл /opt/observer зарежда друг злонамерен модул (rootkit_loader.ko), което от своя страна активира пълен руткит на компрометираната система.

Като такъв Bootkitty е функционален bootkit, чиято цел е:

» Повишаване на осведомеността в общността за сигурност относно потенциалните рискове и насърчаване на проактивни мерки за предотвратяване на подобни заплахи. „За съжаление, няколко проби от bootkit бяха пуснати преди планираното представяне на конференцията.“

Метод на атака

Атаката се извършва от вмъкване на проектирано BMP изображение по-специално в ESP (EFI System Partition) дял. Това изображение представен като лого на производителя за UEFI фърмуер. Поради уязвимости в библиотеките, използвани от фърмуера за обработка на изображения, като например препълване на буфер, злонамереното изображение задейства изпълнение на код в контекста на фърмуера на UEFI. Въпреки че уязвимостта на LogoFAIL беше открита преди година и беше коригирана в последните актуализации на фърмуера на UEFI, много устройства все още работят с остарели и уязвими версии, оставяйки ги изложени на този тип експлоатация.  bootkitty - ASCII изкуство, вградено в bootkit

Bootkitty Има важни ограничения при прилагането му, тъй като модификациите, направени във функциите на паметта на ядрото, се основават на отмествания по подразбиране, без да се проверява тяхната валидност спрямо конкретната заредена версия на ядрото.

La Ефективността на буткита е ограничена само до версиите на ядрото и GRUB, включени в определени дистрибуции на Ubuntu., причинявайки грешки при зареждане на други системи. Освен това буткитът използва самоподписан сертификат за валидиране на създадения си буутлоудър (grubx64.efi), което го прави неефективен на системи с активиран UEFI Secure Boot, освен ако сертификатът на атакуващия не е включен ръчно в списъка с надеждни сертификати на атакуващия.

Изследователи от Binarly Research отбелязаха, че BMP изображения, свързани с уязвимостта LogoFAIL, вратичка в UEFI, която позволява произволно изпълнение на код на ниво фърмуер и заобикаляне на ограниченията на UEFI Secure Boot, са открити сред компонентите на Bootkitty. В този случай LogoFAIL беше използван за автоматично вмъкване на самоподписания сертификат на атакуващия в списъка с надеждни сертификати, което позволява на буткита да работи дори на системи с активен Secure Boot.

най-накрая, ако сте заинтересовани да научите повече за това, можете да проверите подробностите в следваща връзка.