Ovo je stara izmjena dokumenta!
UEFI (Unified Extensible Firmware Interface) kritična je poveznica između hardvera i operacijskog sustava koja, zbog smještaja na SPI flash memoriji matične ploče, omogućuje napadačima trajnu prisutnost (perzistenciju) neovisnu o reinstalaciji OS-a ili zamjeni diska. Firmware forenzika bavi se pouzdanim prikupljanjem sadržaja flash čipa i analizom UEFI postavki (NVRAM) kako bi se otkrile neovlaštene izmjene, npr. umetnuti zlonamjerni moduli ili pokušaji da se tijekom paljenja računala pokrene nepouzdan (nepotpisan) kod. Ova wiki stranica definira postupke hardverskog i softverskog snimanja (izrade slike) firmware-a te ključne artefakte nužne za detekciju kompromitacije na najnižoj razini računalnog sustava.
Za razliku od klasičnog BIOS-a koji je bio monolitni komad koda, UEFI (Unified Extensible Firmware Interface) je složeniji softverski sustav koji djeluje kao “mini operacijski sustav” prije pokretanja glavnog OS-a. Razumijevanje njegove strukture nužno je za lociranje malicioznog koda.
Sav firmware (BIOS/UEFI) pohranjen je na SPI Flash čipu koji se nalazi na matičnoj ploči. Forenzička važnost leži u tome što je čip fizički odvojen od tvrdog diska (HDD/SSD) pa brisanje ili zamjena diska ne uklanja podatke (ni malware) s ovog čipa. Sadržaj čipa nije nasumičan, nego je organiziran prema strogim pravilima (npr. Intel Flash Descriptor).
Logička struktura Intel SPI Flash memorije. (0) Flash Descriptor definira početak i kraj svih ostalih regija. (1) BIOS (ili UEFI) Region sadrži glavni UEFI kod i NVRAM varijable, dok (2) Intel CSME (Converged Security and Management Engine) sadrži firmware za zasebni sigurnosni procesor. Ostale regije poput (3) GbE (mrežne postavke) i (4) EC (Embedded Controller) su specifične za platformu.
NVRAM je dio flash memorije rezerviran za pohranu postavki koje moraju moći preživjeti gašenje računala. On sadrži boot redoslijed (BootOrder), postavke jezika, i najvažnije, Secure Boot ključeve (PK, KEK, db, dbx). Forenzička važnost leži u tome što napadači ovdje mogu promijeniti način bootanja ili ubaciti svoje ključeve kako bi njihov malware bio “ovlašten” za pokretanje, zato ovdje često forenzičar traži anomalije.
Podaci unutar NVRAM-a spremaju se u obliku varijabli te svaka varijabla ima svoje ime i jedinstveni identifikator (GUID). Primjer sumnjive varijable: Ako bi bila pronađena varijabla nepoznatog imena koja sadrži veliku količinu binarnih podataka (koda), to može biti maliciozni payload.
Napadači ciljaju firmware jer omogućuje trajnu prisutnost (perzistenciju) ispod razine operacijskog sustava, što znači da malware preživljava reinstalaciju OS-a, zamjenu diska ili skeniranje antivirus softverom. UEFI arhitektura nudi nekoliko “ulaznih točaka” koje napadači iskorištavaju kako bi ugradili zlonamjerni kod.
DXE (Driver Execution Environment) je dio UEFI pokretanja u kojem se učitavaju driveri za hardver i pripremaju usluge koje će OS koristiti. Napadači mogu umetnuti zlonamjerni DXE driver ili modificirati postojeći legitiman driver, s čime osiguraju da se njihov kod izvršava pri svakom pokretanju računala prije nego što operacijski sustav preuzme kontrolu. Ovaj pristup je učinkovit jer se DXE driveri izvršavaju s najvećim privilegijama, a primjer takvog napada je CosmicStrand, koji je koristio modificirani DXE driver kako bi “ubacivao” malware u memoriju OS-a tijekom svakog pokretanja.
Bootkit je vrsta rootkita koja modificira bootloader, program kojeg učitava operacijski sustav. U UEFI kontekstu, napadači mogu zamijeniti legitimni EFI bootloader (npr. za Windows je to bootx64.efi) sa zlonamjernom verzijom ili ga omotati dodatnim kodom koji se izvršava prije legitimnog dijela. BlackLotus je poznati primjer UEFI bootkita koji je iskorištavao ranjivost u Secure Boot mehanizmu kako bi zaobišao provjeru potpisa i učitao nepotpisani maliciozni kod. Bootkit ostavlja tragove u EFI System Partition (ESP) particiji na disku, ali može biti integriran i direktno u BIOS regiju SPI flash čipa, čime bi bio otporniji na detekciju.
Secure Boot je sigurnosni mehanizam koji osigurava da se tijekom pokretanja pokreću samo potpisane i odobrene komponente. Ovaj sustav oslanja se na kriptografskim ključevima pohranjenima u NVRAM varijablama: PK (Platform Key, “vlasnik” platforme), KEK (Key Exchange Key, posredni ključevi) i db/dbx (database/revocation database, tj. popis dozvoljenih i zabranjenih potpisa). Napadač koji dobije mogućnost pisanja u NVRAM može dodati vlastite ključeve u db ili ukloniti opoziv zlonamjernog potpisa iz dbx, čime omogućuje pokretanje nepouzdanog koda bez alarmiranja sustava. Ovakvi napadi su rijetki jer zahtijevaju povišene privilegije ili fizički pristup, ali kada se dogode, vrlo su teški za uočavanje jer ne mijenjaju sam izvršni UEFI kod, nego samo konfiguraciju povjerenja.
Option ROM je firmware koji dolazi na dodatnim karticama (grafička, mrežna, RAID). Budući da se ovaj kod učitava vrlo rano tijekom bootanja (kako bi inicijalizirao karticu), napadači mogu pokušati zamijeniti taj kod sa svojim zlonamjernim. Iako je teži za izvedbu jer često zahtijeva fizički pristup ili specifične alate za flashanje tog firmwarea, ovaj vektor je opasan jer sigurnosni alati koji skeniraju glavnu matičnu ploču često preskaču provjeru firmwarea na dodatnim karticama.
Akvizicija firmwarea je proces stvaranja kopije (dump/image) sadržaja SPI flash čipa, a postoje dvije glavne metode, ovisno o dostupnosti opreme i sigurnosnim preprekama na sustavu.
Ova metoda koristi alate pokrenute unutar operacijskog sustava (Windows/Linux) ili iz EFI shell-a za čitanje sadržaja flash memorije. Najpoznatiji alati su Intel Flash Programming Tool (FPT) iz Intel CSME paketa i open-source alat Flashrom. Primjer naredbe za dump je: fptw64.exe -D full_dump.bin
Ova metoda uključuje fizičko spajanje na SPI flash čip dok je računalo isključeno, čime se zaobilaze sve softverske zaštite i ograničenja OS-a. Postupak je sljedeći: Koristi se SPI programator (kao što je popularni i jeftini CH341A ili profesionalni DediProg) koji se spaja na USB port forenzičke radne stanice. Na čip na matičnoj ploči spaja se pomoću SOIC8/SOIC16 testne kvačice (POMONA clip), bez potrebe za odlemljivanjem čipa.
Primjer hardverske akvizicije: CH341A USB programator (vidljiv lijevo u slici) spojen je na laptop, dok je testni clip (u ovom slučaju SOIC8 clip) izravno spojen na SPI flash čip promatranog računala. Ovakvo spajanje omogućuje čitanje i pisanje po čipu bez potrebe za odlemljivanjem ili uključivanjem napajanja matične ploče promatranog računala.
Nakon što je napravljena akvizicija (dump), forenzičar raspolaže binarnom datotekom koju je potrebno analizirati kako bi pronašao tragove kompromitacije. Ovaj proces zahtijeva pretvaranje sirovih podataka u strukturirani oblik i zahtijeva potragu za odstupanjima od tvorničkih postavki/vrijednosti.
Prvi korak je pretvaranje binarnog oblika u čitljivi oblik, a standardni alat za ovu namjenu je UEFITool (open-source rješenje autora Nikolaja Schleja). Alat prikazuje stablo firmwarea, koje omogućuje forenzičaru pregled GUID-ova (jedinstvenih identifikatora modula), imena drivera i sekcija. U ovom koraku forenzičar aktivno traži module koji nemaju ime (Unnamed), module s neobičnim GUID-ovima ili DXE drivere koji su naknadno dodani u odnosu na originalne tvorničku postavke. UEFITool također omogućuje ekstrakciju sumnjivih modula (opcija Extract Body) za daljnju analizu reverznim inženjerstvom u alatima poput IDA Pro ili Ghidra.
Zbog toga što se perzistencija često skriva u konfiguraciji, a ne isključivo u izvršnom kodu, analiza NVRAM regije je od velike važnosti. Forenzičari ovdje traže anomalije poput neuobičajeno velikih varijabli nepoznatog imena koje mogu skrivati shellcode ili cijele izvršne datoteke (PE datoteke). Fokus analize je obično na:
Chipsec je moćan framework za procjenu sigurnosti platforme koji može analizirati živi sustav ili statički dump. Njegova glavna moć je automatizirana provjera hardverskih zaštita, npr. pokretanje skripte chipsec_main.py može otkriti je li uključena BIOS Write Protection zaštita (koja sprječava pisanje po flash memoriji) ili su ranjivi SMM (System Management Mode) mehanizmi. Ako Chipsec prijavi “FAILED” na ovim ključnim zaštitama, to je snažan indikator da je sustav podložan napadima ili već kompromitiran.
Vjerojatno najpouzdanija metoda detekcije je usporedba (tzv. diffing) s poznatim “dobrim” uzorkom. Postupak uključuje preuzimanje službenog BIOS/UEFI ažuriranja sa stranice proizvođača (npr. Dell, HP, …) za točnu verziju matične ploče te usporedbu hash vrijednosti (npr. SHA256) svakog modula iz prikupljenog dumpa s onima iz tvorničke slike. Svako odstupanje u hashu izvršnog koda DXE drivera, koji bi trebao biti statičan, odmah ukazuje na neovlaštenu modifikaciju i potencijalni maliciozni kod.
[1] Brenda Buckman, What is UEFI and Why It Matters in Cybersecurity
[2] Alex Matrosov, Eugene Rodionov, UEFI Firmware Rootkits: Myths and Reality
[3]
Jim Mortensen & Dick Wilkins, PhD,
Phoenix Technologies, Ltd., UEFI Firmware
Security Concerns and Best Practices
[4] Paul Asadoorian, Firmware Security Realizations - Part 3 - SPI Write Protections
[5] Erik Bjorge and Maggie Jauregui (Intel), Attacking and Defending the Platform
[6] Xeno Kovah, John Butterworth, Corey Kallenberg, Sam Cornwell, Analyzing UEFI BIOS from Attacker & Defender Viewpoints
[7] Stefan Kiltz, Robert Altschaffel, Jana Dittmann, Hidden in Plain Sight - Persistent Alternative Mass Storage Data Streams as a Means for Data Hiding With the Help of UEFI NVRAM and Implications for IT Forensics
[8] Great (Kaspersky Lab), CosmicStrand: the discovery of a sophisticated UEFI firmware rootkit
[9] ESET, https://www.eset.com/us/about/newsroom/research/eset-research-analyzes-blacklotus-a-uefi-bootkit-that-can-bypass-uefi-secure-boot-on-fully-patched-systems/
[10] Johannes Stuttgen, Stefan Voemel and Michael Denzel, Acquisition and Analysis of Compromised Firmware Using Memory Forensics
[11] Izvor slike CH341A USB programatora
[12] Hadar Cochavi Gorelik, Orel Fadlon, Denis Klimov, Oleg Brodt, Asaf Shabtai, Yuval Elovici, Peacock: UEFI Firmware Runtime Observability Layer for Detection and Response
[13] Behnam A. Shamshirsaz, Seyyed Amir Asghari & Mehdi Aminian, A spyware detection method for firmware based cyber attacks
[14] Chipsec Github repository
[15] Eclypsium, Yet Another UEFI Bootkit Discovered: Meet CosmicStrand