UEFI Bootkit: od laboratorija do realnosti, s poudarkom na Bootkittyju in BlackLotusu

Zadnja posodobitev: 25/09/2025
Avtor: Isaac
  • Bootkitty vdre kot UEFI bootkit PoC za Linux, s kavlji v GRUB-u in jedru.
  • BlackLotus je izkoristil CVE-2022-21894, da bi zaobšel Secure Boot in dosegel vztrajnost.
  • CVE-2024-7344 je dovoljeval nalaganje nepodpisanih datotek UEFI prek reloader.efi; zdaj preklican.
  • Učinkovito blaženje: preklici UEFI, nadzor ESP in potrjevanje z TPM.

Ilustracija zagonskega kompleta UEFI

P UEFI zagonski kompleti V samo nekaj letih so iz laboratorijskega koncepta postali prava nadloga za zagovornike in proizvajalce. Na tem področju je meja med dokazom koncepta in operativno grožnjo zabrisana, primeri, kot so črni lotos ali nedavno odkritje Bootkitty v Linuxu To dovolj dokazujejo.

Ta članek združuje in pojasnjuje, z jasen jezik in tehnične podrobnosti ko dodajo vrednost, najpomembnejše, ki so jih objavili raziskovalci in podjetja v sektorju: od prvega PoC leta 2012 do sodobnih kampanj, vključno z ranljivostmi, kot so CVE-2024-7344 ki vam omogočajo, da zaobidete Secure Boot, tehnike izogibanja, IoC ter ukrepe za odkrivanje in ublažitev, ki dejansko delujejo v resničnem svetu.

Kaj je UEFI bootkit in zakaj je tako problematičen?

UEFI bootkit je vsadek, ki se izvaja pred operacijskim sistemom, z možnostjo nadzora pretoka škorenj, onemogočite preverjanja in naložite komponente z visokimi privilegiji. Z delovanjem na tako nizki ravni se lahko izognete tradicionalni protivirusni program in celo določene "ukrepi za varen zagon" če izkorišča pomanjkljivosti ali permisivne konfiguracije.

V resničnem svetu so že opazili vztrajne vsadke in tehnike UEFI, kot so na primer LoJax, MosaicRegressor o MoonBounce, mejniki, ki kažejo, kako lahko igralec zasedejo vdelano programsko opremo in obvladajo kritične faze škornja, kar otežuje forenzična analiza in sanacija.

Braniti Windows, Microsoft združuje več plasti: Secure Boot (UEFI preveri nalagalnik z zaupanja vrednimi potrdili), Trusted Boot (jedro preveri preostale komponente), ELAM (Protivirusna programska oprema za zgodnji zagon, ki pregleda zagonske gonilnike) in Izmerjeni zagon (Meritve TPM in oddaljeno potrjevanje). To so koristne, vendar ne nezmotljive ovire za ranljivosti samega ekosistema UEFI ali preširoke nastavitve zaupanja. Poleg tega je možno ščit Windows s Credential Guard, BitLockerjem in WDAC za zmanjšanje tveganja dolgoročne obstojnosti.

Od dokazov o delovanju do resničnega življenja: časovnica in ključni akterji

Potovanje se začne leta 2012 s PoC of Andrea Allievi za Windows na UEFI, sledili pa so projekti, kot so EfiGuard, Boot Backdoor ali UEFI-bootkit. Trajalo je leta, preden so bili dokumentirani primeri v praksi, kot je bil ESPecter (ESET, 2021) ali Zagonski komplet FinSpy (Kaspersky, 2021), leta 2023 pa je vdrl na sceno črni lotos, prvi zagonski komplet UEFI, ki je zmožen Obidi varni zagon na popolnoma posodobljenih sistemihV laboratorijskih okoljih je to običajno testiranje zlonamerne programske opreme na virtualnem računalniku za ocenjevanje dokazil o sodelovanju (PoC) in zaznav, ne da bi pri tem ogrozili produktivno infrastrukturo.

Ena stvar je bila do zdaj nespremenjena: cilj je bil izključno računalniki z operacijskim sistemom WindowsTa predpostavka je bila ovržena, ko se je novembra 2024 na VirusTotal pojavila aplikacija UEFI z imenom VirusTotal. bootkit.efiAnaliza je razkrila bootkit, ki so ga avtorji poimenovali Bootkitty, namenjena Linux (brezplačno)Glede na telemetrijo ni potrjene dejanske namestitve; in avtorji sami, povezani s korejskim programom usposabljanja Najboljši od najboljših (BoB), so pojasnili, da gre za dokaz koncepta z namenom ozaveščanja.

Binarna datoteka Bootkitty je podpisana z samopodpisano potrdiloTo pomeni, da ne bo deloval z omogočenim varnim zagonom, razen če namestite napadalčeva potrdilaKljub temu njegova logika ponazarja, kako lahko akter v spominu zakrpa komponente nalagalnik (GRUB) in jedro linux zaobiti preverjanja.

Bootkitty podrobno: artefakti, združljivost in kaj spreminja

Bootkit vsebuje neuporabljene funkcije, ki izpisujejo ASCII art z imenom Bootkitty in seznam možnih avtorjev. Pri vsakem zagonu prikazuje tudi besedilne nize in sklice na Blackcat znotraj njegovega izhoda in v povezanem modulu jedra, ki ni povezan z izsiljevalsko programsko opremo ALPHV/BlackCat; deloma zato, ker Bootkitty je napisan v jeziku C, medtem ko se ALPHV razvija v Rustu.

  Kako odstraniti virus Bing Redirect

Njegova združljivost je omejena. Če želite najti funkcije, ki jih je treba uporabiti, uporabite kodirani bajtni vzorci (klasična tehnika bootkita), vendar izbrani vzorci ne pokrivajo dobro več različic jeder ali GRUB-a. Posledica tega je, da je vsadek funkcionalen le v zelo omejenem naboru konfiguracij in poleg tega, popravki fiksnih odmikov po dekompresiji jedra: če se odmiki ne ujemajo z različico, lahko prepiše naključne podatke in povzroči odložite namesto zaveze.

Škornji se začnejo z podloga, podložka, distančnik zagon Bootkittyja, ki najprej preveri stanje SecureBoot in postavi kavlje v dva protokola za preverjanje pristnosti UEFI: EFI_SECURITY2_ARCH_PROTOCOL.Preverjanje pristnosti datotek y EFI_SECURITY_ARCH_PROTOCOL.State overjanja datotekV obeh primerih nastavite izhod na vrnitev EFI_USPEH, s čimer se učinkovito izniči preverjanje integritete slike PE med obdobjem pred operacijskim sistemom.

Bootkitty nato naloži legitimni GRUB iz trdo kodirane poti na ESP (/EFI/ubuntu/grubx64-real.efi), ga popravi v pomnilniku in ključne funkcije kavljev preden se izvrši.

Priklop na GRUB in razpakiranje jedra Linuxa

Implantat spremeni funkcijo začetna_slika modula slika GRUB, ki je odgovoren za zagon že naloženih binarnih datotek PE (kot je Zagoznica jedra EFI, vmlinuz.efi/vmlinuz). Izkoristite dejstvo, da je jedro že v pomnilniku, in v rutino postavite kavelj, ki razpakira dejansko sliko jedra (verjetno zstd_decompress_dctx odvisno od različice), tako da ko enkrat razpakirate, lahko vroča poprava.

Prav tako spreminja funkcijo grub_verifiers_open, ki odloči, ali bo preveril integriteto vsake naložene datoteke (moduli, jedro, konfiguracija itd.). Kavelj se takoj vrne in tako, izogne ​​se kakršnemu koli preverjanju podpisaPrilagoditev v shim_lock_verifier_init To je zmedeno: vsiljuje strožjo zastavico za preverjanje (GRUB_VERIFY_FLAGS_SINGLE_CHUNK), vendar te funkcije drugi kavelj sploh ne pokliče, zaradi česar nepomembno.

Ko je jedro razpakirano, koda Bootkitty uporabi tri modifikacije pomnilnika: prepiše različica/niz pasice iz jedra z besedilom "BoB13"; prisilite to module_sig_check() vrni 0 za nalaganje jedra nepodpisani moduli; in nadomesti prvo okoljsko spremenljivko procesa pr injicirati LD_PRELOAD=/opt/injector.so /init na začetku uporabniškega prostora.

Injiciranje z LD_PRELOAD To je klasična taktika za določanje prioritete deljenega objekta ELF in preglasitev funkcij. Tukaj ima veriga posebnost (vključuje "/init" poleg LD_PRELOAD), podrobnost, ki poudarja značaj Nedokončan dokaz o sodelovanju namesto izpiljene operacije. Domnevno vbrizganih binarnih datotek niso opazili, čeprav je kasnejši zapis tretje osebe nakazal, da se uporabljajo le za naložite dodatno stopnjo.

Kazalniki, simptomi in preprosto zdravilo

Če je prisoten Bootkitty, je mogoče videti vidne namige. Ukaz uname -v bo prikazal različico jedra s spremenjenim besedilom in v dmesg Pasica je lahko videti tudi spremenjena. Poleg tega je mogoče zaznati, da je postopek PID 1 (init) je bil izdan z LD_PRELOAD pregledovanje /proc/1/okolje, anomalen signal v legitimnih sistemih.

V laboratorijskih testih se pojavi jedro umazan po zagonu z Bootkittyjem, drugo empirično preverjanje na računalnikih z omogočenim varnim zagonom pa je poskus nalaganja nepodpisani modulČe je dovoljena vroča obremenitev, to pomeni, da preverjanje_podpisa_modula je bil popravljen.

Če je bil zagonski komplet nameščen z zamenjavo binarne datoteke GRUB s posrednikom (opaženo vedenje), je preprost način za obnovitev premakniti Legitimni GRUB iz /EFI/ubuntu/grubx64-real.efi na svojo prvotno pot /EFI/ubuntu/grubx64.efi tako da podloga, podložka, distančnik zaženite ga in zagonska veriga se nadaljuje brez vsadki.

BCDropper in BCObserver: Povezani deli ali zgolj naključje?

Poleg Bootkittyja je bil najden tudi nepodpisan modul jedra z vzdevkom Bootkitty. BCDropper, ki si deli namige z bootkitom: nizi Črna mačka/črna mačka v metapodatkih in poteh za odpravljanje napak ter funkcijo skrivanje datotek katerih predpone vključujejo "injektor" (v skladu s spremenljivko LD_PRELOAD kaže na /opt/injector.so).

BCDropper pusti v /opt/opazovalec vgrajeni ELF (imenovan BCSobserver) in ga zažene skozi / bin / bashTa dokaj preprosta komponenta čaka gdm3 je aktiven in nato naloži modul jedra iz /opt/rootkit_loader.ko uporabo končni_modul, pri čemer se prepričajte, da to storite šele po popolnem zagonu sistema.

  Kako uporabljati Windows 11 na Macu serije M: Parallels, VMware, Windows 365 in Whiskey

Čeprav obstajajo znaki povezave, ni mogoče zagotoviti, da oba elementa prihajata od istega avtorja ali da sta zasnovana za skupno delovanje. Še huje je, da različica jedra, omenjena v njegovih metapodatkih (6.8.0-48-generično) sploh ni naveden med tistimi, ki jih podpira zagonski komplet.

Povezani IoC-ji

Z obravnavanimi najdbami so povezani naslednji artefakti. Njihova vrednost je predvsem referenčni in laboratorij:

SHA-1 Arhiv Zaznavanje opis
35ADF3AED60440DA7B80F3C452047079E54364C1 bootkit.efi EFI/Agent.A Bootkitty, zagonski komplet UEFI, usmerjen v Linux.
BDDF2A7B3152942D3A829E63C03C7427F038B86D kapalka.ko Linux/Rootkit.Agent.FM BCDropper, modul jedra.
E8AF4ED17F293665136E17612D856FA62F96702D Opazovalec Linux/Rootkit.Agent.FM BCObserver, uporabniška izvedljiva datoteka.

BlackLotus in CVE-2022-21894: Mejnik, ki je odprl vrata

BlackLotus je na trgu od leta 2022 s ceno okoli 5.000 USD (plus dodatki na nadgradnjo) in vključuje tehnike za izogibanje zaščiti pred virtualnimi stroji/odpravljanjem napak, geofencing za izogibanje določenim državam (Armenija, Belorusija, Kazahstan, Moldavija, Romunija, Rusija in Ukrajina) in, kar je najpomembneje, izkoriščanje CVE-2022-21894 (Spuščanje palice) za obiti varni zagon in doseči robustno obstojnost na popolnoma zakrpanih računalnikih s sistemom Windows 10/11.

Tok, ki ga opisuje varnostna skupnost, vključuje prvo fazo z deaktivacija zaščit operacijskega sistema, izkoriščanje stare ranljivosti v Secure Bootu in registracija ključa lastnika naprave ki ga nadzira napadalec. Po nadaljnjih ponovnih zagonih vsadek namesti gonilnik jedra in tip komponente uporabniškega načina downloader upravljati komunikacijo poveljevanja in nadzora ter dodatne stroške.

Za proaktivno obrambo je skupnost objavila operativna pravila. SOC Prime na primer ponuja zaznave Sigma, ki iščejo sumljivo ustvarjanje datotek vdelane programske opreme v System32 s strani nesistemskih procesov ali Deaktivacija HVCI prek beleženja. Te vrste signalov, preslikanih na MITRE ATT&CK (npr. T0857, T1562, T1112), pomagajo pri lov na anomalne aktivnosti ki je običajno priložen bootkitom; obstajajo tudi praktični vodniki za Zaznavanje zlonamernih procesov s programom Process Explorer v okoljih Windows.

CVE-2024-7344: Nalaganje nezaupanja vrednih binarnih datotek UEFI prek »reloader.efi«

Posebej občutljiva ranljivost je bila odkrita leta 2024, CVE-2024-7344, kar vpliva na več obnovitvenih paketov, podpisanih s potrdilom Microsoft Corporation UEFI CA 2011Korenina problema je uporaba nalagalnik PE po meri v aplikaciji UEFI reloader.efi, namesto varnih API-jev Naloži sliko/Začni slikoBinarna datoteka dešifrira in izvede vsebino iz datoteke. cloak.dat brez preverjanja podpisov v skladu s politiko Secure Boot.

Vektor ni omejen na računalnike z nameščeno programsko opremo, saj bi lahko napadalec s povišanimi privilegiji namestil ranljiva binarna datoteka v ESP (particiji EFI) katerega koli sistema, ki zaupa Microsoftovemu zunanjemu overitelju potrdil UEFI in povzroči izvedbo UEFI ni podpisan med zagonom. Prizadeti izdelki so vključevali pakete podjetij Howyar, Greenware, Radix, SANFONG, Wasay, CES in Signal Computer. popravljeno in preklicano 14. januarja 2025.

Za preverjanje zaščite en PowerShell z višjimi privilegiji in Linux (LVFS/dbxtool):

# ¿El sistema confía en la UEFI CA 2011 de Microsoft? (posible exposición)
::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Microsoft Corporation UEFI CA 2011'

# Revocación instalada (64 bits)
::ToString((Get-SecureBootUEFI dbx).bytes) -replace '-' -match 'cdb7c90d3ab8833d5324f5d8516d41fa990b9ca721fe643fffaef9057d9f9e48'

# Revocación instalada (32 bits)
::ToString((Get-SecureBootUEFI dbx).bytes) -replace '-' -match 'e9e4b5a51f6a5575b9f5bfab1852b0cb2795c66ff4b28135097cba671a5491b9'

# Linux (dbxtool)
dbxtool --list | grep 'cdb7c90d3ab8833d5324f5d8516d41fa990b9ca721fe643fffaef9057d9f9e48'
dbxtool --list | grep 'e9e4b5a51f6a5575b9f5bfab1852b0cb2795c66ff4b28135097cba671a5491b9'

Ta primer ponovno odpira razpravo o veriga zaupanjaMicrosoft vzdržuje dva certifikata, ki sta široko prisotna v potrošniških in poslovnih računalnikih UEFI (Windows Production CA 2011 y UEFI CA 2011 za tretje osebe). Načrt je selitev na potrdila 2023, po incidentih, kot sta BlackLotus in širjenje ranljivih zagonskih nalagalnikov, podpisanih pred leti. Na računalnikih Zavarovano jedro, UEFI CA tretje osebe običajno pride privzeto onemogočeno.

Praktična zaščita in prilagoditev varnega zagona

Poleg uporabe Preklici UEFI in posodabljajte vdelano programsko opremo/operacijski sistem (Windows Update in LVFS), obstajajo ukrepi, ki zmanjšujejo površino napada: nadzor dostop do ESP z varnostnimi pravili, prilagodite Secure Boot omejiti zaupanje na tisto, kar je nujno (upoštevanje smernic, kot so smernice NSA) in namestiti potrdilo s TPM za oddaljeno preverjanje stanja zagona glede na referenčne vrednosti.

  Praktični primeri uporabe za statistiko kalkulatorja Windows

V sistemu Windows je kombinacija Varen zagon + Zaupanja vreden zagon + ELAM + Izmerjen zagon Ponuja večplastne ovire: validacijo nalagalnika, zagonske krmilnike, pregledane pred ostalimi, in zapis, ki ga podpiše TPM kar požarnemu zidu omogoča ločevanje »čistih« računalnikov od tistih z odstopanji. V upravljanih okoljih to zmanjšuje čas de odkrivanje in zadrževanje.

V Linuxu je poleg preklica in nadzora ESP vredno spremljati tudi signale, kot so LD_PRELOAD v postopku pr, država umazan jedra in korelirajo dogodke nalaganja modulov (npr. končni_modul) z nenavadnimi potmi (/opt/*.ko) za odkrivanje poskusov vztrajnost zgodaj.

Orodja, pokritost in MITRE ATT&CK

Po podatkih podjetja ESET je to edini ponudnik med 20 najboljšimi končnimi napravami po prihodkih, ki integrira Skener vdelane programske opreme UEFI v svojih rešitvah za zaščito opreme. Čeprav drugi proizvajalci ponujajo tehnologije, povezane z UEFI, njihov namen ne sovpada vedno z neposredni pregled vdelane programske opremeKer napadi UEFI, čeprav občasni, omogočajo popoln nadzor in vztrajnost skoraj absolutno, vlaganje v to plast lahko naredi veliko razliko.

Kar zadeva MITRE ATT&CK, se opaženo vedenje ujema z več tehnikami: Zagon pred OS: Bootkit (T1542.003), Skupni moduli/LD_PRELOAD (T1129), razvoj Malware (T1587.001) in uporabo potrdila (T1587.002)poleg Korenski komplet (T1014), Oslabitev obrambe (T1562) y Skrij artefakte (T1564) v primeru modulov jedra, ki se skrivajo sami.

  • T1542.003Zagonski komplet na ESP-ju za obstojnost pred operacijskim sistemom.
  • T1129Predhodno naloži z LD_PRELOAD v procesu inicializacije.
  • T1014Jedrni moduli s funkcionalnostjo rootkitov.
  • T1562 / T1564: Onemogočite preverjanja in se skrijte pred sistemom.

Linux ni neranljiv: primer Bootkitty in nova imena na radarju

Leta je priljubljena pripoved nasprotovala povečani izpostavljenosti sistema Windows domnevnemu "neprebojnost" macOS-a ali LinuxaResničnost je bolj niansirana: njihov model in delež jih dela različne tarče, vendar niso imune. Pojav Bootkitty v Linuxu kaže, da znanje za ustvarjanje zagonskih kompletov obstaja tudi za ta ekosistem, čeprav v tem konkretnem primeru govorimo o Akademski PoC z omejeno podporo.

Omenjali so se celo različici izsiljevalske programske opreme, HibridPetya, ki bi integriral zmogljivosti zagonskega kompleta UEFI. Vzorci, naloženi v VirusTotal Podatki iz Poljske iz leta 2025 kažejo na nedavni razvoj dogodkov, čeprav jih je treba obravnavati previdno. previdnost dokler ni neodvisne analize in trdne atribucije.

Pomembno je ponotranjiti razumevanje, da mora obramba zajemati celotno verigo zagona, zmanjšati privzeto zaupanje v podpisi tretjih oseb ki se ne uporabljajo, spremljajte particijo EFI in jo konsolidirajte uporabna telemetrija (okuženo jedro, dogodki modulov, spremembe v preverjevalnikih GRUB ali občutljive spremenljivke UEFI) za pravočasno zaznavanje.

Trenutna slika tveganja UEFI združuje Potrditev sodelovanja (PoC) za izobraževalne namene, bootkiti, ki se tržijo kot storitev, in ranljivosti v podpisanih komponentah, ki, če niso pravočasno preklicane, odpirajo vrata nezaupanja vredno izvajanje pred operacijskim sistemomVzdrževanje posodobljene vdelane programske opreme in seznamov preklicanih programske opreme, zmanjševanje kroga zaupanja in spremljanje ESP so ukrepi, ki skupaj branilce postavljajo v veliko močnejši položaj pred to družino groženj.

Kako zavarovati Windows s Credential Guard, Bitlocker, AppLocker, Device Guard in Windows Defender Application Control
Povezani članek:
Kako zavarovati Windows s Credential Guard, BitLocker, AppLocker, Device Guard in WDAC