Zidentyfikowano UEFI bootkit Bootkitty, który wstrzykuje złośliwy kod do ładowanego jądra Linux

Badacze z firmy ESET zidentyfikowali nowy bootkit „Bootkitty”, który jest instalowany po złamaniu systemu zamiast bootloadera GRUB i jest używany do wstrzykiwania złośliwych komponentów do jądra Linux, co umożliwia atakującemu ukryte kontrolowanie systemu i wykonywanie w nim działań. Twierdzi się, że jest to pierwszy bootkit UEFI, który ma na celu atakowanie systemów Linux.

Bootkitty jest umieszczany w pliku grubx64.efi w systemowej partycji EFI (EFI system partition, /boot/efi/EFI/ubuntu) zamiast standardowego bootloadera GRUB. Po aktywacji przez firmware UEFI bootkit ładuje do pamięci prawdziwy bootloader GRUB2 i wprowadza zmiany w kodzie GRUB2 załadowanym do pamięci, które wyłączają weryfikację integralności komponentów ładowanych w kolejnych etapach oraz dodaje wywoływacz, który jest powoływany po rozpakowaniu obrazu jądra Linux do pamięci. Wspomniany wywoływacz wprowadza zmiany w załadowanych do pamięci funkcjach jądra (wyłącza weryfikację modułów przez podpis cyfrowy) oraz zmienia linijkę uruchamiania procesu inicjalizacji z „/init” na „LD_PRELOAD=/opt/injector.so /init”.

Biblioteka injector.so przechwytuje niektóre operacje SELinux oraz funkcję init_module, która jest następnie używana do załadowania modułu jądra /opt/dropper.ko. Moduł jądra dropper.ko tworzy i uruchamia plik wykonywalny /opt/observer, a następnie ukrywa się na liście modułów jądra oraz ustawia wywołania systemowe, takie jak getdents i tcp4_seq_show, w celu ukrycia pliku /opt/observer i określonego ruchu sieciowego. Plik wykonywalny /opt/observer ładuje moduł jądra /opt/rootkit_loader.ko, który jest bootloaderem rootkita /opt/rootkit.

Zidentyfikowano UEFI bootkit Bootkitty, który wstrzykuje złośliwy kod do ładowanego jądra Linux

Aby zainstalować bootkit, wymagany jest dostęp uprzywilejowany do systemu, a tego rodzaju złośliwe oprogramowanie jest zazwyczaj wykorzystywane przez atakujących po udanym złamaniu lub kompromitacji systemu, aby utrwalić swoje dalsze obecności i ukryć swoją złośliwą aktywność. Biblioteka injector.so oraz złośliwe moduły jądra są umieszczane w obrazie początkowego dysku RAM lub systemie plików przez atakującego. Bootloader grubx64.efi jest umieszczany w partycji z plikami dla UEFI.

W wersji Bootkitty, która trafiła w ręce badaczy, modyfikacja funkcji w pamięci jądra była przeprowadzana na podstawie wcześniej ustalonych przesunięć, bez weryfikacji ich poprawności dla załadowanej wersji jądra. Używane w Bootkitty przesunięcia były zastosowane jedynie do wersji jądra i GRUB, dostarczanych w określonych wydaniach Ubuntu, a w innych systemach prowadziły do awarii podczas rozruchu. Do weryfikacji bootloadera Bootkitty (grubx64.efi) użyto samopodpisanego certyfikatu, co uniemożliwiało zastosowanie bootkita w systemach z włączonym trybem UEFI Secure Boot bez dodania certyfikatu atakującego do listy zaufanych certyfikatów w UEFI. Takie cechy skłoniły badaczy do myśli, że Bootkitty jest jedynie prototypem bootkita, dotychczas nieużywanym do rzeczywistych ataków.

Analizując opublikowane informacje ESET, badacze z firmy Binarly Research zauważyli wśród artefaktów związanych z Bootkitty obrazy BMP, używane do wykorzystania podatności LogoFAIL, która pozwala na wykonanie kodu na poziomie UEFI-firmware i obejście mechanizmu UEFI Secure Boot. W kontekście Bootkitty wykorzystanie podatności LogoFAIL zostało zastosowane do dodania do listy zatwierdzonych certyfikatów UEFI samopodpisanego certyfikatu atakującego, który zabezpiecza bootloader bootkita grubx64.efi, co pozwalało uruchomić bootkit na systemach z aktywnym UEFI Secure Boot bez ręcznego dodawania certyfikatu.

Atak przeprowadzany jest poprzez umieszczenie w sekcji ESP (EFI System Partition) specjalnie przygotowanego obrazu w formacie BMP, który jest wyświetlany przez UEFI-firmware jako logo producenta. Z powodu wykorzystania w UEFI-firmware podatnych bibliotek do obsługi obrazów, przetwarzanie specjalnie przygotowanego obrazu może prowadzić do przepełnienia bufora i wykonania kodu z przywilejami firmware UEFI. Podatność LogoFAIL została ujawniona rok temu i dotyczyła UEFI-firmware, używanych między innymi w laptopach Acer, HP, Fujitsu i Lenovo. W nowych wersjach UEFI-firmware problem został rozwiązany, ale wiele używanych urządzeń nadal działa na podatnych wersjach firmware.

Zidentyfikowano UEFI bootkit Bootkitty, który wstrzykuje złośliwy kod do ładowanego jądra Linux


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster