Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
|
racfor_wiki:seminari2025:fb53204 [2026/01/29 20:29] Franko Budimir |
racfor_wiki:seminari2025:fb53204 [2026/02/01 14:59] (trenutno) Franko Budimir |
||
|---|---|---|---|
| Redak 2: | Redak 2: | ||
| =====Sažetak===== | =====Sažetak===== | ||
| + | Ova wiki stranica obrađuje UEFI (Unified Extensible Firmware Interface) i platformski firmware kao kritični sloj računalne sigurnosti koji, zbog smještaja izvan tvrdog diska (na SPI flash memoriji), omogućuje napadačima **trajnu prisutnost** neovisnu o reinstalaciji operacijskog sustava. Stranica definira arhitekturu UEFI firmware-a s naglaskom na forenzički relevantne komponente poput NVRAM varijabli i DXE drivera. Opisani vektori napada koji ciljaju Secure Boot lanac povjerenja i metode ugradnje malicioznog koda (implantata) poput LoJaxa i BlackLotusa. Središnji dio fokusira se na metodama forenzičke akvizicije, uspoređujući ograničenja softverskog pristupa i pouzdanost hardverske akvizicije putem SPI programatora. Konačno, predstavljene su tehnike analize prikupljenih dokaza korištenjem alata kao što su UEFITool i Chipsec te pregled zaštitnih mehanizama potrebnih za očuvanje integriteta platforme. | ||
| =====Uvod===== | =====Uvod===== | ||
| Redak 12: | Redak 13: | ||
| - | ====Fizički smještaj: SPI Flash memorija==== | + | ===Fizički smještaj: SPI Flash memorija=== |
| - | Sav firmware (BIOS/UEFI) pohranjen je na SPI Flash čipu koji se nalazi na matičnoj ploči. | + | Sav firmware (BIOS/UEFI) pohranjen je na SPI Flash čipu koji se nalazi na matičnoj ploči. Forenzička važnost |
| - | * Forenzička važnost: Zbog toga što je čip fizički odvojen od tvrdog diska (HDD/SSD), brisanje ili zamjena diska ne uklanja podatke (ni malware) s ovog čipa. | + | |
| - | * Struktura: | + | |
| [[https:// | [[https:// | ||
| Redak 22: | Redak 21: | ||
| 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. | 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 (Non-Volatile RAM)==== | + | ===NVRAM (Non-Volatile RAM)=== |
| - | NVRAM je dio flash memorije rezerviran za pohranu postavki koje moraju moći preživjeti gašenje računala. | + | NVRAM je dio flash memorije rezerviran za pohranu postavki koje moraju moći preživjeti gašenje računala. |
| - | * Što sadrži: Boot redoslijed (BootOrder), | + | |
| - | * Forenzička važnost: Napadači ovdje mogu promijeniti način bootanja ili ubaciti svoje ključeve kako bi njihov malware bio " | + | |
| - | ====UEFI Varijable==== | + | ===UEFI Varijable=== |
| - | Podaci unutar NVRAM-a spremaju se u obliku varijabli te svaka varijabla ima svoje ime i jedinstveni identifikator (GUID). | + | 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. |
| - | * 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. | + | |
| Redak 38: | Redak 34: | ||
| 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 " | 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 " | ||
| - | ====Umetanje u DXE drivere==== | + | [[https:// |
| - | 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, | + | |
| + | Usporedba očekivanog i kompromitiranog lanca pokretanja (boot flow). Lijeva strana prikazuje siguran sustav gdje se učitavaju samo pouzdani UEFI driveri, dok desna strana prikazuje scenarij u kojem pogrešna konfiguracija sigurnosnih postavki (npr. isključen Secure Boot ili ranjiv BIOS Write Protection) omogućuje napadaču umetanje Firmware rootkita i učitavanje zlonamjernih drivera prije samog operacijskog sustava. | ||
| + | ===Umetanje u DXE drivere=== | ||
| + | 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, | ||
| - | ====Modifikacija Boot Loadera (Bootkit)==== | + | |
| + | |||
| + | ===Modifikacija Boot Loadera (Bootkit)=== | ||
| 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. | 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. | ||
| - | ====Napadi na Secure Boot varijable==== | + | ===Napadi na Secure Boot varijable=== |
| 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: | 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: | ||
| - | ====Option ROM implantati==== | + | ===Option ROM implantati=== |
| 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. | 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. | ||
| Redak 59: | Redak 59: | ||
| Akvizicija firmwarea je proces stvaranja kopije (dump/ | Akvizicija firmwarea je proces stvaranja kopije (dump/ | ||
| - | ====Softverska (Live) akvizicija==== | + | ===Softverska (Live) akvizicija=== |
| - | Ova metoda koristi alate pokrenute unutar operacijskog sustava (Windows/ | + | Ova metoda koristi alate pokrenute unutar operacijskog sustava (Windows/ |
| - | * Alati: | + | |
| - | * Prednosti: Brzo je i ne zahtijeva otvaranje kućišta računala niti dodatnu opremu. | + | |
| - | * Nedostaci i rizici: Često je nepouzdana za forenziku, ako je sustav već zaražen rootkitom, malware može presresti pozive za čitanje i vratiti lažne i čiste podatke. Također, moderne platforme često zaključavaju pristup određenim regijama (npr. ME regija ili Flash Descriptor) radi sigurnosti, pa softverski dump može biti nepotpun. | + | |
| - | ====Hardverska (Dead) akvizicija==== | + | ===Hardverska (Dead) akvizicija=== |
| - | Ova metoda uključuje fizičko spajanje na SPI flash čip dok je računalo isključeno, | + | Ova metoda uključuje fizičko spajanje na SPI flash čip dok je računalo isključeno, |
| - | * Postupak: 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/ | + | |
| - | * Prednosti: Daje potpunu, bit-po-bit kopiju cijelog čipa (full dump) koju malware ne može lažirati jer procesor ciljanog računala ne radi. To je zlatni standard u firmware forenzici. | + | * **Nedostaci i rizici**: Zahtijeva fizički pristup, otvaranje uređaja (što može narušiti jamstvo ili dokazni lanac) i zahtijeva oprez pri spajanju napona (1.8V vs 3.3V) kako se ne bi spržio čip. |
| - | * Izazovi: Zahtijeva fizički pristup, otvaranje uređaja (što može narušiti jamstvo ili dokazni lanac) i zahtijeva oprez pri spajanju napona (1.8V vs 3.3V) kako se ne bi spržio čip. | + | |
| {{ racfor_wiki: | {{ racfor_wiki: | ||
| Redak 78: | Redak 76: | ||
| + | |||
| + | |||
| + | |||
| + | =====Analiza i otkrivanje anomalija===== | ||
| + | |||
| + | 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/ | ||
| + | |||
| + | ===Parsiranje firmware slike=== | ||
| + | |||
| + | 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. | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Prikaz strukture UEFI firmwarea u alatu UEFITool. Vide se pojedinačni moduli (driveri) s njihovim GUID-ovima i imenima. | ||
| + | |||
| + | ===Analiza NVRAM varijabli=== | ||
| + | |||
| + | Zbog toga što se perzistencija često skriva u konfiguraciji, | ||
| + | Fokus analize je obično na: | ||
| + | * Varijabli BootOrder (kako bi se provjerilo kamo se računalo usmjerava pri njegovom uključivanju). | ||
| + | * Ključnim varijablama Secure Boot-a (db, dbx), gdje bi napadač mogao ubaciti vlastite ili generalno maliciozne certifikate. | ||
| + | |||
| + | ===Validacija potpisa i provjera integriteta=== | ||
| + | |||
| + | **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 " | ||
| + | |||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Prikaz rezultata Chipsec analize (Linux terminal). Crvenom bojom su istaknuti testovi koji nisu prošli (FAILED), konkretno bios_wp (BIOS Write Protection) i spi_desc (zaštita Flash Descriptora). Ovi rezultati ukazuju na ranjivost sustava koja napadaču omogućuje trajno zapisivanje zlonamjernog koda u SPI flash memoriju. | ||
| + | |||
| + | |||
| + | ===Usporedba s poznatim uzorkom (Whitelisting)=== | ||
| + | |||
| + | Vjerojatno najpouzdanija metoda detekcije je usporedba (tzv. **diffing**) s poznatim " | ||
| + | |||
| + | |||
| + | |||
| + | =====Zaštitni mehanizmi===== | ||
| + | Obrana od firmware napada oslanja se na niz mehanizama koji djeluju u različitim fazama životnog ciklusa računala, od proizvodnje do njegovog svakodnevnog pokretanja, te je njihov cilj je osigurati lanac povjerenja i spriječiti neovlaštene izmjene koda. | ||
| + | |||
| + | |||
| + | ===Secure Boot=== | ||
| + | |||
| + | Secure Boot je industrijski standard (dio UEFI specifikacije) koji osigurava da se pri pokretanju računala izvršavaju samo digitalno potpisani binarni zapisi. Prije učitavanja svakog drivera ili operacijskog sustava, UEFI firmware provjerava njegov digitalni potpis. Ako potpis nije valjan ili ključ nije u bazi povjerenja (db), izvršavanje se ne dopušta. Ovo je prva linija obrane protiv bootkita, ali štiti samo od trenutka kada se UEFI pokrene, a ne štiti sam UEFI kod od modifikacije. | ||
| + | |||
| + | ===Intel Boot Guard=== | ||
| + | Intel Boot Guard pruža hardversku zaštitu integriteta samog firmwarea (Root of Trust). Za razliku od Secure Boot-a koji je softverski definiran, Intel Boot Guard koristi mikrokod unutar procesora koji, odmah pri dolasku napona, provjerava digitalni potpis početnog bloka (IBB, Initial Boot Block) flash memorije. Ako potpis ne odgovara onome postavljenom u procesor tijekom proizvodnje (fusing), računalo se odbija upaliti (brick računala), čime se spriječava izvršavanje modificiranog BIOS-a čak i ako je napadač fizički prepisao flash čip. | ||
| + | |||
| + | ===BIOS Write Protection=== | ||
| + | BIOS Write Protection (BIOS Lock/BLE) je mehanizam koji spriječava softversko pisanje po SPI flash čipu iz operacijskog sustava. Kada je ova zaštita aktivna, svaki pokušaj drivera ili malicioznog programa da pošalje naredbu za pisanje (Write Enable) na flash čip generira sistemski prekid (SMI - System Management Interrupt). Taj prekid " | ||
| + | |||
| + | |||
| + | =====Primjeri stvarnih UEFI napada===== | ||
| + | Analiza stvarnih napada u " | ||
| + | |||
| + | ===LoJax=== | ||
| + | |||
| + | LoJax (otkriven 2018.) prvi je UEFI rootkit otkriven u aktivnoj kampanji (povezan s grupom Sednit/ | ||
| + | |||
| + | ===CosmicStrand=== | ||
| + | CosmicStrand (otkriven 2022.) predstavlja napredniju generaciju implantata (povezan s kineskim APT grupama). Za razliku od LoJaxa, ovaj malware pronađen je u firmware slikama matičnih ploča (Gigabyte, ASUS) kod kojih je inicijalni vektor napada vjerojatno bio automatiziran ili supply-chain oblika. CosmicStrand se skriva u modificiranom CSMCORE DXE driveru i koristi sofisticirane metode presretanja (hooking) procesa bootanja kako bi modificirao učitavanje Windows kernela prije nego se bilo koji sigurnosni softver pokrene. | ||
| + | |||
| + | ===BlackLotus=== | ||
| + | BlackLotus (otkriven 2023.) prvi je javno dostupni (prodavao se na hakerskim forumima) UEFI bootkit sposoban zaobići Secure Boot na potpuno ažuriranim Windows 11 sustavima. Koristio je tehniku "Baton Drop" iskorištavajući ranjivost (CVE-2022-21894) u starom, ali potpisanom Windows bootloaderu koji nije bio opozvan u dbx bazi. Time je omogućio napadačima isključivanje sigurnosnih mehanizama OS-a (npr. BitLocker-a) i učitavanje nepotpisanog koda, pokazujući slabost lanca povjerenja. | ||
| + | |||
| + | |||
| + | |||
| + | =====Zaključak===== | ||
| + | UEFI firmware forenzika postala je nezanemariv dio moderne digitalne forenzike zbog sve češćih i sofisticiranijih napada koji ciljaju najniže razine računalnog sustava. Budući da firmware omogućuje perzistenciju koja preživljava reinstalaciju operacijskog sustava i zamjenu diska, detekcija ovakvih prijetnji predstavlja značajan izazov za sigurnosne stručnjake. Zaštitni mehanizmi poput Secure Boota i Intel Boot Guarda podižu razinu sigurnosti, no primjeri stvarnih napada poput BlackLotusa i LoJaxa dokazuju da niti jedan sustav nije potpuno siguran od ranjivosti u konfiguraciji ili dizajnu lanca povjerenja. Stoga je poznavanje arhitekture firmwarea, tehnika hardverske akvizicije i alata za analizu anomalija postalo nužno znanje za potpunu istragu sigurnosnih incidenata, potvrđujući da stvarna sigurnost platforme počinje zapravo prije samog pokretanja operacijskog sustava. | ||
| Redak 96: | Redak 164: | ||
| [10] [[https:// | [10] [[https:// | ||
| [11] [[https:// | [11] [[https:// | ||
| + | [12] [[https:// | ||
| + | [13] [[https:// | ||
| + | [14] [[https:// | ||
| + | [15] [[https:// | ||
| + | [16] [[https:// | ||
| + | [17] [[https:// | ||
| + | [18] [[https:// | ||
| + | [19] [[https:// | ||
| + | [20] [[https:// | ||
| + | [21] [[https:// | ||