Forscher von ESET haben einen neuen Bootkit "Bootkitty" identifiziert, der nach einem System-Hack anstelle des GRUB-Bootloaders installiert wird und dazu verwendet wird, schädliche Komponenten in den Linux-Kernel einzuschleusen, die es dem Angreifer ermöglichen, das System heimlich zu kontrollieren und darin Aktionen auszuführen. Es wird behauptet, dass dies das erste UEFI-Bootkit ist, das auf die Infektion von Linux-Systemen abzielt.
Bootkitty wird in der Datei grubx64.efi im EFI-Systempartition (EFI system partition, /boot/efi/EFI/ubuntu) anstelle des standardmäßigen GRUB-Bootloaders platziert. Nach Aktivierung durch die UEFI-Firmware lädt das Bootkit den echten GRUB2-Bootloader in den Speicher und nimmt im im Speicher abgelegten GRUB2-Code Änderungen vor, die die Integritätsprüfung der anschließend geladenen Komponenten deaktivieren, sowie einen Handler hinzufügen, der nach der Entpackung des Linux-Kernel-Images in den Speicher aufgerufen wird. Der genannte Handler ändert die im Speicher geladenen Kernel-Funktionen (schaltet die Überprüfung der Module anhand von digitalen Signaturen ab) und ändert auch den Startbefehl des Initialisierungsprozesses von "/init" auf "LD_PRELOAD=/opt/injector.so /init".
Die Bibliothek injector.so fängt einige SELinux-Operationen sowie die Funktion init_module ab, die dann verwendet wird, um das Kernel-Modul /opt/dropper.ko zu laden. Das Kernel-Modul dropper.ko erstellt und startet die ausführbare Datei /opt/observer, versteckt sich anschließend in der Liste der Kernel-Module und setzt Systemaufruf-Handler wie getdents und tcp4_seq_show ein, um die Datei /opt/observer und bestimmten Netzwerktraffic zu verbergen. Die ausführbare Datei /opt/observer lädt das Kernel-Modul /opt/rootkit_loader.ko, das der Loader des Rootkits /opt/rootkit ist.

Für die Installation des Bootkits ist privilegierter Zugang zum System erforderlich, und solche Arten von Malware werden in der Regel von Angreifern nach einem erfolgreichen Einbruch oder einer Kompromittierung des Systems verwendet, um ihre weitere Präsenz zu verankern und schädliche Aktivitäten zu verbergen. Die Bibliothek injector.so und die schädlichen Kernel-Module werden von den Angreifern in das Image des initialen RAM-Disk oder in das Dateisystem platziert. Der Bootloader grubx64.efi wird in der Partition mit den Dateien für UEFI abgelegt.
In der Version von Bootkitty, die in die Hände von Forschern gelangte, wurden die Funktionalitäten im Speicher des Kernels anhand vordefinierter Offsets modifiziert, ohne die Richtigkeit dieser Offsets für die geladene Kernelversion zu prüfen. Die in Bootkitty verwendeten Offsets waren nur für Kernel- und GRUB-Versionen anwendbar, die in bestimmten Ubuntu-Versionen bereitgestellt wurden, während sie in anderen Systemen zu einem Bootfehler führten. Zur Verifizierung des Bootloaders Bootkitty (grubx64.efi) wurde ein selbstsigniertes Zertifikat verwendet, was es unmöglich machte, den Bootkit in Systemen mit aktiviertem UEFI Secure Boot zu verwenden, ohne das Zertifikat des Angreifers in die Liste vertrauenswürdiger Zertifikate im UEFI aufzunehmen. Solche Merkmale haben die Forscher zu der Schlussfolgerung gebracht, dass Bootkitty nur ein Prototyp eines Bootkits ist, der bislang nicht für reale Angriffe eingesetzt wird.
Nach der Analyse der veröffentlichten Informationen von ESET bemerkten Forscher der Firma Binarly REsearch unter den mit Bootkitty verbundenen Artefakten BMP-Bilder, die zur Ausnutzung der LogoFAIL-Schwachstelle verwendet werden. Diese Schwachstelle ermöglicht die Ausführung von Code auf UEFI-Firmware-Ebene und umgeht den UEFI Secure Boot-Mechanismus. Im Kontext von Bootkitty wurde die LogoFAIL-Schwachstelle genutzt, um ein selbstsigniertes Zertifikat des Angreifers in die Liste der genehmigten UEFI-Zertifikate aufzunehmen, mit dem der Bootloader grubx64.efi signiert wurde. Dies ermöglichte es, den Bootkit auf Systemen mit aktivem UEFI Secure Boot ohne manuelle Zertifikatsanpassung zu starten.
Ein Angriff erfolgt durch das Platzieren eines speziell gestalteten BMP-Bildes im ESP (EFI System Partition), damit es von der UEFI-Firmware als Herstellerlogo ausgegeben wird. Aufgrund der Verwendung von verwundbaren Bibliotheken in UEFI-Firmware zur Bearbeitung von Bildern kann die Verarbeitung des speziell gestalteten Bildes zu einem Pufferüberlauf und zur Ausführung von Code mit den Rechten der UEFI-Firmware führen. Die Schwachstelle LogoFAIL wurde vor einem Jahr entdeckt und betraf UEFI-Firmware, die unter anderem auf Laptops von Acer, HP, Fujitsu und Lenovo verwendet wird. In neuen Versionen der UEFI-Firmware wurde das Problem behoben, aber viele im Umlauf befindlichen Geräte arbeiten weiterhin mit anfälligen Firmware-Versionen.

Quelle: opennet.ru
