Table of Contents

Firmverski malver: mehanizmi prikrivanja i otpornosti

Sažetak

Firmverski malver predstavlja kategoriju prijetnji u kojoj se zlonamjerni kod smješta u firmver računala (BIOS/UEFI), omogućujući mu neviđenu trajnost i kontrolu nad sustavom. Takav malver, često implementiran u obliku bootkita ili firmverskog rootkita, može preživjeti uobičajene korake sanacije poput ponovne instalacije operacijskog sustava ili zamjene diska te dijelovati prikriveno izvan dosega tradicionalnih sigurnosnih alata. Ovaj rad daje pregled malvera na razini firmvera, objašnjava ključne pojmove poput rootkita u firmveru i manipulacije UEFI/BIOS-om, te analizira mehanizme koji ovim prijetnjama daju otpornost – uključujući stealth tehnike prikrivanja, enkripciju, otpornost na uklanjanje i manipulaciju firmverom.

Uvod

U današnjem dobu informacijske sigurnosti jedna od najopasnijih i najpostojanijih prijetnji su zlonamjerni programi skriveni u firmveru računala. Takav malver (poput bootkita ili firmverskog rootkita) izvršava se na najnižoj razini sustava – čak ispod operacijskog sustava – što mu omogućuje zaobilaženje uobičajenih sigurnosnih mjera, prikriven rad te preživljavanje uobičajenih pokušaja čišćenja sustava [1][2]. Napredni napadači, uključujući APT skupine, sve češće posežu za ovakvim tehnikama, budući da su više razine (operativni sustav, aplikacije) postale bolje zaštićene i teže za infiltrirati [1]. Kada je firmver kompromitiran, malver stječe kontrolu već od prvih instrukcija prilikom pokretanja računala, što mu omogućuje da manipulira postupkom dizanja sustava i kompromitira OS te time dodatno otežava otkrivanje [3]. Slučajevi iz prakse pokazali su izvedivost ovakvih napada: primjerice, 2011. otkriven je prvi BIOS rootkit nazvan Mebromi, dok su noviji UEFI rootkiti poput LoJaxa (2018.) i CosmicStranda (2022.) potvrdili da ovakve trajne prijetnje postoje i u stvarnom svijetu [4][5][3]. U nastavku rada objašnjavaju se koncepti malvera na razini firmvera te mehanizmi njegove prikrivenosti i trajnosti.

Osnove firmverskog malvera

Kako bismo razumjeli specifičnosti malvera na razini firmvera, potrebno je razmotriti ulogu samog firmvera u računalu te osnovne vrste zloćudnih programa povezane s tom razinom.

BIOS i UEFI

Terminom firmver označava se osnovni programski sloj računala zapisan u memoriji na matičnoj ploči, koji služi za inicijalizaciju sklopovlja i pokretanje operacijskog sustava. Tradicionalni BIOS (Basic Input/Output System) desetljećima je obavljao tu funkciju pri svakom uključivanju računala. Novija računala koriste nasljednika BIOS-a, UEFI (Unified Extensible Firmware Interface), koja uvodi modularniju arhitekturu i napredne značajke poput sigurnog pokreranja (Secure Boot). Secure Boot tehnologija omogućuje provjeru digitalnih potpisa komponenti za dizanje OS-a, s ciljem sprječavanja učitavanja neautoriziranog koda prilikom dizanja sustava. Međutim, ako napadač uspije kompromitirati sam firmver, te sigurnosne provjere mogu se zaobići. Jednako tako, poznati su napadi na uređaje s uključenim Secure Boot-om iskorištavanjem ranjivosti u UEFI modulima, čime malver dobiva kontrolu unatoč zaštitama.

UEFI firmver pohranjen je u zasebnoj flash memoriji (npr. SPI flash čip na matičnoj ploči) te se sastoji od više modula (drivera) koji se izvršavaju tijekom ranih faza pokretanja. Naprednije mogućnosti UEFI-ja, poput mogućnosti mrežnog pokretanja ili skriptiranja, također proširuju potencijalnu površinu napada. Važno je napomenuti da i BIOS i UEFI rade prije pokretanja samog OS-a, u privilegiranom okruženju koje ima potpunu kontrolu nad hardverom. To znači da zlonamjerni kod u firmveru ima vrlo visok stupanj privilegija nad sustavom, što ga čini izuzetno opasnim.

Rootkiti i bootkiti

Pojam rootkit odnosi se na zlonamjerni softver koji nastoji zadržati trajni administratorski (“root”) pristup sustavu i pritom ostati skriven. Klasični rootkiti najčešće djeluju unutar operacijskog sustava – primjerice, u obliku kernel-modula koji prikrivaju procese, datoteke i mrežne priključke – kako bi sakrili tragove napada i zlonamjerne aktivnosti. S druge strane, bootkit označava malver koji kompromitira proces pokretanja (boot) računala. Bootkiti se mogu smjestiti u komponente kao što su MBR zapis diska, sam bootloader ili čak firmver (BIOS/UEFI), s ciljem da se njihova zloćudna rutina izvrši prije pokretanja operacijskog sustava. Time bootkit stječe kontrolu nad sustavom vrlo rano i može utjecati na učitavanje OS-a prije nego što se pokrenu sigurnosni mehanizmi [1].

Granica između pojmova bootkit i rootkit ponekad je nejasna, osobito kod firmverskog malvera koji posjeduje obilježja obaju. Primjer je napredni UEFI rootkit, koji se ubacuje u sam firmver (kao bootkit), ali nakon pokretanja sustava može djelovati i kao klasični rootkit unutar OS-a (npr. patchiranjem jezgre OS-a radi prikrivanja). Zajednička karakteristika i rootkita i bootkita je naglasak na prikrivenost i dugotrajnu prisutnost u sustavu.

Tehnike prikrivanja i otpornosti

Firmware malver posebnu prijetnju predstavlja zbog svojih mehanizama stealth prikrivanja i trajne prisutnosti. U nastavku su opisane ključne tehnike kojima takav malver postiže svoju prikrivenost i otpornost na uklanjanje.

Prikrivanje

Malver koji se učita ispod razine operacijskog sustava može ostati nevidljiv tradicionalnim sigurnosnim alatima. Jedan od razloga je taj što se može izvršavati u privilegiranim modovima koji nisu dostupni OS-u. Primjer takvog nacina privilegiranja je System Management Mode (SMM) na x86 arhitekturi – posebni način rada procesora (često nazivan “ring -2”) u kojem se izvršava kod firmwarea za upravljanje sustavom. Kod u SMM-u nevidljiv je i nedostupan ostatku sustava (OS ne može čitati ni pisati SMM memoriju) [2], pa firmverski rootkit smješten u SMM-u može potpuno izbjeći nadzor antivirusnih programa koji rade na razini OS-a.

Osim oslanjanja na privilegirane razine izvršavanja, rootkiti koriste i klasične metode prikrivanja unutar samog operacijskog sustava. To postižu ubacivanjem zlonamjernog koda koji izmjeni ili hooka legitimne funkcije. Na taj način rootkit može presresti pozive kojima bi se njegov kod otkrio i umjesto toga prikazivati lažne informacije sustavu. Na primjer, malver Mebromi nakon infekcije BIOS-a instalira kernel driver u Windows sustavu (my.sys) koji preusmjerava funkcije za čitanje i pisanje diska te tako skriva izmijenjeni MBR i druge tragove infekcije od antivirusnih alata [4]. Općenito, firmverski rootkit može modificirati strukture OS-a (npr. listu procesa, datotečni sustav, registre) kako bi sakrio svoje prisustvo i aktivnosti.

Enkripcija

Enkripcija je još jedan mehanizam kojim malver otežava svoje otkrivanje i analizu. Korištenjem kriptografskih tehnika, zlonamjerni kod ili njegove komponente mogu biti pohranjeni u šifriranom obliku te se dešifrirati tek u trenutku izvođenja. Time se onemogućuje jednostavno otkrivanje malvera pretraživanjem potpisa ili poznatih stringova u firmwareu ili na disku. U praksi su zabilježeni slučajevi gdje su svi bitni dijelovi malvera bili kriptirani unutar firmware image-a ili posebne particije, time us postali nerazumljivi bez posjedovanja ključa.

Konkretni primjer pruža Mebromi: infekcija započinje malim dropperom koji je sam šifriran i sadržii nekoliko kriptiranih binarnih komponenti (datoteke hook.rom, flash.dll, cbrom.exe, bios.sys, my.sys) [4]. Tek nakon što se dropper izvrši i dekriptira ove komponente u memoriji, nastavlja se daljnja faza napada (flashanje BIOS-a i infekcija MBR-a). Slično tome, napredniji rootkiti mogu čuvati svoj konfiguracijski podatkovni ili komunikacijski kanal u šifriranom obliku, kako druga strana ne bi lako mogli utvrditi njihovo ponašanje ili ciljeve.

Otpornost na uklanjanje

Jedna od najvažnijih karakteristika firmverskog malvera je trajna prisutnost unatoč pokušajima uklanjanja. Budući da se nalazi izvan područja klasičnih datotečnih sustava, takav malver neće biti uklonjen formatiranjem diska ili ponovnom instalacijom operacijskog sustava. Primjer UEFI rootkita LoJax pokazuje koliko je ova postojanost ozbiljna: zloćudni modul smješten u SPI flash memoriji matične ploče preživljava čak i reinstalaciju OS-a ili zamjenu tvrdog diska [5].

Firmverski malver aktivira se pri svakom pokretanju računala i prije predaje kontrole operacijskom sustavu. To mu omogućuje da kontinuirano održava svoju prisutnost. Čak i ako bi se nekim alatom uklonili dijelovi malvera iz OS-a, kod u firmveru može ih ponovno inficirati pri idućem dizanju sustava. Tako je npr. BIOS rootkit Mebromi implementiran da tijekom POST faze provjeri integritet MBR sektora te ukoliko ustanovi da maliciozni MBR nedostaje, ponovno upiše svoj zlonamjerni bootkod na disk[4]. Na taj način napadač osigurava da uklanjanje jedne komponente (MBR rootkita) ne sanira trajno infekciju – firmver stalno drži “sidro” malvera u sustavu.

Samo uklanjanje firmverskog malvera često je vrlo složeno. Za potpuno čišćenje sustava obično je nužno ručno ponovno ispisati (flashati) ispravan firmware na matičnu ploču, čime se zamjenjuje kompromitirani BIOS/UEFI. Takav postupak nije trivijalan i prosječni ga korisnici rijetko provode, pa malver može dugo ostati prisutan [5]. Napadači mogu i dodatno otežati uklanjanje zaključavanjem regija SPI flasha ili ometanjem alata za nadogradnju firmwarea. U slučaju LoJaxa, potrebna je posebna skripta za uklanjanje koja ciljano briše maliciozne UEFI module iz flash memorije[5].

Manipulacija firmvera

Da bi uopće ostvario opisanu trajnost, malver mora pronaći put do firmvera – odnosno, izvršiti njegovu kompromitaciju ili manipulaciju. Postoji nekoliko vektora napada na firmware. Najčešći scenarij je da napadač ima administratorski (privilegirani) pristup ciljnom sustavu (bilo putem prethodne infekcije malwareom ili fizičkog pristupa) te zatim iskoristi ranjivosti ili alate za upis vlastitog koda u firmware.

U praksi su zabilježene metode ubacivanja zloćudnih modula u UEFI firmware iskorištavanjem postojećih alata ili propusta. APT grupa Sednit (poznata i kao Fancy Bear) razvila je alat koji može izvući sadržaj SPI flash memorije, zakrpati ga umetnuvši maliciozni UEFI modul, i vratiti natrag na ploču, pod pretpostavkom da su zaštite za pisanje firmwarea bile ranjive ili pogrešno postavljene [5]. Sličnu tehniku koristio je malver LoJax – identificiran je driver u userspaceu koji poziva UEFI servis za upis flash memorije kako bi dodao zlonamjernu komponentu u UEFI [5]. Time su napadači uspjeli programski “flashati” zloćudni firmware na žrtvin sustav.

Drugi primjer manipulacije firmwareom dolazi iz ranije spomenutog Mebromi trojanca. On je nakon učitavanja svog kernel drivera koristio legitimni alat proizvođača BIOS-a (Phoenix cbrom.exe) kako bi u postojeću BIOS sliku umetnuo dodatni modul (hook.rom) s rootkit funkcionalnošću[4]. Takva injekcija koda u firmware omogućila je Mebromiju da trajno nastani zloćudni kod unutar BIOS-a, koji se zatim automatski izvršava pri svakom pokretanju računala.

Nedavno otkriveni UEFI rootkit CosmicStrand pokazao je da napadači mogu precizno modificirati postojeće firmware module. U analiziranim slučajevima, CosmicStrand je pronađen unutar firmwara na matičnim pločama – napadač je modificirao jedan legitimni UEFI driver (CSMCORE) ubacivši zloćudni kod i preusmjerivši tok izvođenja na taj kod tijekom boot procesa [3].Ovo ukazuje da su napadači razvili i automatizirane patchere firmwarea, kojima mogu umetnuti maliciozne podatke u specifične dijelove UEFI-ja.

Osim programskog upisa, treba spomenuti i druge načine kompromitacije firmwarea. Napadač s fizičkim pristupom računalu može direktno zapisati zloćudnu kod u BIOS-a pomoću hardverskog SPI programatora ili iskorištavanjem sučelja poput Thunderbolt/PCIe (DMA napadi). Također, u kontekstu supply chain napada, moguće je da se već na kupljenom uređaju nađe ugroženi firmware (npr. ugrađen od strane neovlaštenog dobavljača), što se sumnjalo u slučaju CosmicStranda[3] ili recimo Izraleske tajne službe i pejdžera.

Zaključak

Firmverski malveri, iako relativno rijetki u usporedbi s uobičajenim malwareom, predstavljaju iznimno ozbiljnu prijetnju zbog svoje sposobnosti da prežive gotovo sve standardne postupke čišćenja sustava i da ostanu neotkriveni dulje vrijeme. Opisanih nekoliko primjera (Mebromija, LoJaxa i CosmicStranda) pokazuje da takav napad više nije samo teoretski moguć, već realnost koju su iskusile i vladine organizacije. Za digitalne forenzičare i stručnjake za sigurnost, izazov je otkriti kompromitaciju firmvera – što često zahtijeva specijalizirane alate i provjere integriteta firmwarea (npr. usporedbom hash vrijednosti firmware slike s tvorničkom).

Kombinacija stealth tehnika, enkripcije i duboke integracije u sustav čini firmverske rootkite posebno podmuklim. Standardni antivirusni programi i skeneri integriteta obično ne pokrivaju firmware, pa napadi na ovoj razini mogu proći nezapaženo. Stoga se u razvoju sigurnosnih rješenja pažnje posvećuje i nižim razinama sustava: uvode se mehanizmi poput TPM (Trusted Platform Module) i Secure Boot (kada je ispravno konfiguriran) kako bi se otežalo neautorizirano modificiranje firmwarea. Ipak, kao što istraživanja pokazuju [1], napadači pronalaze načine zaobilaženja i tih zaštita, koristeći nedostatke u implementaciji ili logičke propuste.

Zaključno, razumijevanje firmverskog malvera od ključne je važnosti za cjelovitu sigurnost računalnih sustava. Potrebno je podizati svijest da nadogradnja BIOS/UEFI sustava i provjera njegove cjelovitosti moraju postati dio sigurnosnih praksi iako do sada možda nije ni bilo toliko potrebe za njihovim naglašavanjem. Samo kombinacijom višeslojnih obrambenih mjera – od hardwarea do aplikacije i dakako ljutskog faktora – može se suprotstaviti napadima koji se spuštaju sve niže u hierarhiji sustava.

Popis literature

[1] J. Lee, J. Kwon, H. A. Seo, M. Lee, H. Seo, J. Jung, H. Koo, “BOOTKITTY: A Stealthy Bootkit-Rootkit Against Modern Operating Systems,” 19. USENIX Workshop on Offensive Technologies (WOOT), 2025. (dostupno: https://www.usenix.org/system/files/woot25-lee.pdf) [2] J. Rauchberger, R. Luh, S. Schrittwieser, “LONGKIT – A Universal Framework for BIOS/UEFI Rootkits in System Management Mode,” Proc. 3rd Int. Conf. on Info. Systems Security and Privacy (ICISSP 2017), str. 346-353. (dostupno: https://www.scitepress.org/papers/2017/61656/61656.pdf) [3] Kaspersky Lab (GReAT), “CosmicStrand: the discovery of a sophisticated UEFI firmware rootkit,” Securelist Threat Report, 25. srpnja 2022. (dostupno: https://securelist.com/cosmicstrand-uefi-firmware-rootkit/106973/) [4] M. Giuliani, “Mebromi: the first BIOS rootkit in the wild,” Webroot Threat Blog, 13. rujna 2011. (dostupno: https://www.webroot.com/blog/2011/09/13/mebromi-the-first-bios-rootkit-in-the-wild/) [5] ESET, “LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group,” WeLiveSecurity (blog), 27. rujna 2018. (dostupno: https://www.welivesecurity.com/2018/09/27/lojax-first-uefi-rootkit-found-wild-courtesy-sednit-group/)