ESET Research heeft de eerste UEFI-bootkit ontdekt, ontworpen voor Linux-systemen en door zijn makers Bootkitty genoemd. ESET denkt dat het waarschijnlijk een eerste proof of concept is, en op basis van zijn telemetrie is deze nog niet ‘in the wild’ geïmplementeerd. Dit is het eerste bewijs dat UEFI-bootkits niet langer tot Windows-systemen beperkt blijven.
· In november 2024 werd een nog onbekende applicatie, bootkit.efi genaamd, geüpload naar VirusTotal. Na onderzoek ontdekte ESET Research dat het een UEFI-applicatie was.
· Verdere analyse bevestigde dat het een UEFI-bootkit is, door zijn ontwikkelaars Bootkitty genoemd. Het is de eerste UEFI-bootkit gericht op Linux en op verschillende Ubuntu-versies. De bootkit bevat veel artefacten, wat suggereert dat het meer op een proof of concept lijkt dan op het werk van een bedreigingsactor.
· ESET Research ontdekte ook een mogelijk gerelateerde kernelmodule, die ze BCDropper noemden. Het implementeert een Executable and Linking Format (ELF) Linux-programma dat verantwoordelijk is voor het laden van een andere kernelmodule.
BRATISLAVA — November 27, 2024 — ESET Research heeft de eerste UEFI-bootkit ontdekt, ontworpen voor Linux-systemen en door zijn makers Bootkitty genoemd. ESET denkt dat het waarschijnlijk een eerste proof of concept is, en op basis van zijn telemetrie is deze nog niet ‘in the wild’ geïmplementeerd. Dit is het eerste bewijs dat UEFI-bootkits niet langer tot Windows-systemen beperkt blijven. Het hoofddoel van de bootkit is om de functie handtekeningverificatie van de kernel uit te schakelen en twee nog onbekende ELF-binaries vooraf, via het Linux “init”-proces te laden (het eerste proces dat door de Linux-kernel wordt uitgevoerd tijdens het opstarten van het systeem).
De nog onbekende UEFI-applicatie, “bootkit.efi” genaamd, is geüpload naar VirusTotal. Bootkitty is ondertekend door een zelfondertekend certificaat en kan daarom niet uitgevoerd worden op systemen waar UEFI Secure Boot standaard ingeschakeld is. Bootkitty is ontworpen om de Linux-kernel naadloos op te starten, ongeacht of UEFI Secure Boot is ingeschakeld of niet, omdat het in het geheugen de nodige functies patcht die verantwoordelijk zijn voor integriteitsverificatie.
De bootkit is een geavanceerde rootkit die de bootloader kan vervangen en de kernel kan patchen voor deze wordt uitgevoerd. Bootkitty maakt het voor de aanvaller mogelijk om volledige controle over het getroffen toestel te krijgen, omdat dit het opstartproces van het toestel overneemt en malware uitvoert nog voor het besturingssysteem gestart is.
Tijdens de analyse ontdekte ESET een mogelijk gerelateerde niet-ondertekende kernel module, die ESET BCDropper noemde, met tekenen die erop wezen dat deze door dezelfde auteur(s) als Bootkitty zou kunnen ontwikkeld zijn. Het installeert een ELF-binair bestand, verantwoordelijk voor het laden van nog een andere kernel module die voor de analyse nog onbekend was.
“Bootkitty bevat veel artefacten. Het suggereert dat dit meer op een proof of concept lijkt dan op het werk van een bedreigingsactor. Hoewel de huidige versie van VirusTotal nu nog geen echte bedreiging vormt voor de meeste Linux-systemen, daar het slechts een paar Ubuntu-versies kan treffen, benadrukt het de noodzaak om voorbereid te zijn op mogelijke toekomstige bedreigingen”, zegt Martin Smolár, de ESET-onderzoeker die Bootkitty analyseerde. “Om Linux-systemen te beschermen tegen dergelijke bedreigingen, moet men ervoor zorgen dat UEFI Secure Boot ingeschakeld is, systeemfirmware, beveiligingssoftware en besturingssysteem up-to-date zijn, en dat de UEFI-intrekkingslijst ook up-to-date is”, verduidelijkt hij.
Na het opstarten van een systeem met Bootkitty in de ESET-testomgeving, zagen onderzoekers dat de kernel als besmet was gemarkeerd (een bevel kan gebruikt worden om de besmette waarde te controleren), wat niet het geval was wanneer de bootkit afwezig was. Een andere wijze om te bepalen of de bootkit aanwezig is op het systeem waarop UEFI Secure Boot is ingeschakeld, is door een niet-ondertekende dummy-kernel module proberen te laden tijdens runtime. Is deze aanwezig, dan wordt de module geladen; is dit niet het geval, dan weigert de kernel deze te laden. Een eenvoudige manier om van de bootkit af te komen is, wanneer de bootkit geïnstalleerd is als “/EFI/ubuntu/grubx64.efi”, om het legitieme bestand “/EFI/ubuntu/grubx64-real.efi” terug te zetten op de oorspronkelijke locatie, namelijk “/EFI/ubuntu/grubx64.efi”.
De jongste jaren is het gebruik van UEFI-bootkits heel wat geëvolueerd. Het begon met de eerste UEFI-bootkit proof of concept (PoC) beschreven door Andrea Allievi in 2012, die als demonstratie diende voor het installeren van bootkits op moderne UEFI-gebaseerde Windows-systemen, en gevolgd werd door vele andere PoC’s (EfiGuard, Boot Backdoor, UEFI-bootkit). Het duurde enkele jaren voor de eerste twee echte UEFI-bootkits ‘in the wild’ ontdekt werden (een ervan was ESPecter, in 2021 ontdekt door ESET) en het duurde nog twee jaar voor de beruchte BlackLotus verscheen; de eerste UEFI-bootkit die UEFI Secure Boot op up-to-date systemen kon omzeilen (in 2023 door ESET ontdekt). De rode draad tussen deze bekende bootkits was hun exclusieve doelwit, namelijk Windows-systemen.
Voor een meer gedetailleerde en technische analyse van Bootkitty, lees de nieuwste blog van ESET Research “Bootkitty: Analyzing the first UEFI bootkit for Linux,” op www.welivesecurity.com/ . Volg ook ESET Research on Twitter (today known as X) voor de nieuwste info over ESET Research.
Meer lezen