Istraživači iz tvrtke ESET otkrili su novi bootkit "Bootkitty", koji se instalira nakon hakiranja sustava umjesto GRUB bootloadera i koristi se za umetanje zlonamjernih komponenti u Linux kernel, što napadaču omogućava da tajno kontrolira sustav i izvršava svoje radnje. Navodi se da je ovo prvi UEFI bootkit koji cilja na Linux sustave.
Bootkitty se smješta u datoteku grubx64.efi u EFI sistemskoj particiji (EFI system partition, /boot/efi/EFI/ubuntu) umjesto standardnog GRUB bootloadera. Nakon aktivacije od strane UEFI firmvera, bootkit učitava pravi GRUB2 bootloader u memoriju i unosi izmjene u kod GRUB2 koji se nalazi u memoriji, onemogućujući provjeru integriteta komponenti koje se kasnije učitavaju, te dodaje handler koji se poziva nakon raspakiravanja Linux kernela u memoriju. Spomenuti handler unosi izmjene u učitane funkcije kernela (onemogućava provjeru modula putem digitalnog potpisa), te također mijenja string koji pokreće proces inicijalizacije iz "\/init" u "LD_PRELOAD=\/opt\/injector.so \/init".
Biblioteka injector.so presreće neke operacije SELinux-a i funkciju init_module, koja se zatim koristi za učitavanje kernel modula \/opt\/dropper.ko. Kernel modul dropper.ko stvara i pokreće izvršnu datoteku \/opt\/observer, zatim se skriva u popisu kernel modula i postavlja handler-e sistemskih poziva, kao što su getdents i tcp4_seq_show, za skrivanje datoteke \/opt\/observer i određenog mrežnog prometa. Izvršna datoteka \/opt\/observer učitava kernel modul \/opt\/rootkit_loader.ko, koji je učitavač rootkita \/opt\/rootkit.

Za instalaciju bootkita potreban je privilegiran pristup sustavu, a takve vrste zlonamjernog softvera obično koriste napadači nakon uspješnog hakiranja ili kompromitacije sustava kako bi osigurali svoje daljnje prisustvo i prikrili svoju zlonamjernu aktivnost. Biblioteka injector.so i zlonamjerni kernel moduli pohranjuju se u sliku inicijalnog RAM diska ili datotečne sustave napadača. Učitavač grubx64.efi smješten je u particiju s datotekama za UEFI.
U verziji Bootkitty, koja je dospjela u ruke istraživača, promjena funkcija u memoriji jezgre vršila se po unaprijed definiranim pomacima bez provjere ispravnosti tih pomaka za učitanu verziju jezgre. pomaci korišteni u Bootkitty primjenjivali su se samo na verzije jezgre i GRUB isporučene u određenim izdanjima Ubuntua, dok su u ostalim sustavima dovodili do kvara pri pokretanju. Za verifikaciju bootloadera Bootkitty (grubx64.efi) korišten je samopotpisani certifikat, što nije omogućilo korištenje bootkita na sustavima s uključenim UEFI Secure Boot načinom bez instalacije napadačkog certifikata na popis povjerenih certifikata u UEFI. Ove specifičnosti naveli su istraživače na zaključak da je Bootkitty samo prototip bootkita, koji se još ne koristi za stvarne napade.
Istražujući objavljene informacije ESET-a, istraživači iz kompanije Binarly REsearch primijetili su među artefaktima povezanim s Bootkitty BMP-slike, koje se koriste za iskorištavanje ranjivosti LogoFAIL, koja omogućuje izvršavanje koda na razini UEFI firmvera i zaobilaženje mehanizma UEFI Secure Boot. U kontekstu Bootkitty, iskorištavanje ranjivosti LogoFAIL korišteno je za dodavanje samopotpisanog certifikata napadača, koji ovjerava bootloader bootkita grubx64.efi, na popis odobrenih certifikata u UEFI, što je omogućilo pokretanje bootkita na sustavima s aktivnim UEFI Secure Bootom bez ručnog dodavanja certifikata.
Napad se provodi postavljanjem specijalno oblikovane slike u BMP formatu u ESP (EFI System Partition), kako bi se ona prikazala od strane UEFI firmvera kao logo proizvođača. Zbog korištenja ranjivih biblioteka u UEFI firmveru za rad s slikama, obrada specijalno oblikovane slike može dovesti do preljeva bafera i izvršavanja koda s privilegijama UEFI firmvera. Ranjivost LogoFAIL otkrivena je prije godinu dana i utjecala je na UEFI firmvere, među ostalima korištene na laptopima Acer, HP, Fujitsu i Lenovo. U novim verzijama UEFI firmvera problem je ispravljen, ali mnoga uobičajena uređaji i dalje rade s ranjivim verzijama firmvera.

Izvor: opennet.ru
