Cercetătorii de la compania ESET au identificat un nou bootkit, „Bootkitty”, care este instalat după ce sistemul este compromis și este utilizat pentru a înlocui încărcătorul GRUB, permițând astfel atacatorului să integreze componente dăunătoare în nucleul Linux, ceea ce îi permite să controleze sistemul în mod secret și să îndeplinească activitățile dorite. Se susține că acesta este primul bootkit UEFI destinat afectării sistemelor Linux.
Bootkitty este plasat în fișierul grubx64.efi din partiția EFI (EFI system partition, /boot/efi/EFI/ubuntu) în locul încărcătorului GRUB standard. După activarea prin firmware UEFI, bootkit-ul încarcă în memorie adevăratul încărcător GRUB2 și aduce modificări în codul GRUB2 plasat în memorie, dezactivând verificarea integrității componentelor încărcate ulterior și adăugând un handler care este apelat după dezarchivarea imaginii nucleului Linux în memorie. Handler-ul specific face modificări în funcțiile nucleului încărcate în memorie (dezactivează verificarea modulelor prin semnătură digitală) și, de asemenea, schimbă linia de comandă a procesului de inițializare din „/init” în „LD_PRELOAD=/opt/injector.so /init”.
Biblioteca injector.so interceptă anumite operațiuni SELinux și funcția init_module, care este apoi utilizată pentru a încărca modulul nucleului /opt/dropper.ko. Modulul nucleului dropper.ko creează și lansează fișierul executabil /opt/observer, apoi se ascunde în lista modulelor nucleului și stabilește handleri pentru apeluri de sistem, cum ar fi getdents și tcp4_seq_show, pentru a ascunde fișierul /opt/observer și anumite trafic de rețea. Fișierul executabil /opt/observer încarcă modulul nucleului /opt/rootkit_loader.ko, care este loader-ul rick-kit-ului /opt/rootkit.

Pentru a instala bootkit-ul, este necesar accesul privilegiat la sistem și, de obicei, astfel de tipuri de malware sunt utilizate de atacatori după ce sistemul a fost compromis cu succes sau încălcat pentru a-și consolida prezența viitoare și a ascunde activitățile malefice desfășurate. Biblioteca injector.so și modulele nucleului dăunătoare sunt plasate în imaginea RAM disk inițial sau în sistemul de fișiere de către atacator. Loader-ul grubx64.efi este plasat în partiția de fișiere pentru UEFI.
În varianta Bootkitty, ajunsă în mâinile cercetătorilor, modificarea funcțiilor în memoria nucleului se realiza pe baza unor deplasări predefinite, fără a verifica corectitudinea acestor deplasări pentru versiunea încărcată a nucleului. Deplasările utilizate în Bootkitty erau aplicabile doar versiunilor nucleului și GRUB livrate în anumite versiuni de Ubuntu, iar în celelalte sisteme duceau la eșecuri la încărcare. Pentru verificarea încărcătorului Bootkitty (grubx64.efi) a fost utilizat un certificat auto-semnat, ceea ce nu permitea aplicarea bootkit-ului pe sisteme cu modul UEFI Secure Boot activat, fără a adăuga certificatul atacatorului în lista de certificări de încredere din UEFI. Aceste caracteristici au determinat cercetătorii să creadă că Bootkitty este doar un prototip de bootkit, în prezent neutilizat pentru atacuri reale.
Studiind informațiile publicate de ESET, cercetătorii companiei Binarly Research au observat printre artefactele legate de Bootkitty imagini BMP, utilizate pentru a explora vulnerabilitatea LogoFAIL, care permite executarea codului la nivel de firmware UEFI și ocolirea mecanismului UEFI Secure Boot. În contextul Bootkitty, exploatarea vulnerabilității LogoFAIL a fost utilizată pentru a adăuga în lista de certificări aprobate UEFI un certificat auto-semnat al atacatorului, care avalidat încărcătorul bootkit grubx64.efi, ceea ce a permis lansarea bootkit-ului pe sisteme cu UEFI Secure Boot activ, fără a adăuga certificatul manual.
Atacul se desfășoară prin plasarea într-o partajare ESP (EFI System Partition) a unei imagini special concepute în format BMP pentru a fi afișată de firmware UEFI ca logo al producătorului. Datorită utilizării în firmware UEFI a bibliotecilor vulnerabile pentru lucrul cu imaginile, procesarea imaginii special concepute poate conduce la suprascrierea buffer-ului și la executarea codului cu privilegii de firmware UEFI. Vulnerabilitatea LogoFAIL a fost identificată acum un an și afecta firmware-urile UEFI, printre altele cele utilizate pe laptopuri Acer, HP, Fujitsu și Lenovo. În versiunile mai noi ale firmware-urilor UEFI, problema a fost rezolvată, dar multe dispozitive utilizate continuă să opereze cu versiuni vulnerabile de firmware.

Sursa: opennet.ro
