Sadržaj

Forenzika Windows Prefetch datoteka

Sažetak

Prefetch datoteke su osmišljene kako bi se ubrzalo pokretanje operacijskog sustava i korisničkih aplikacija. Prefetch proces može biti omogućen ili onemogućen od strane korisnika pri čemu se svaki puta sadržaj prefetch datoteka izbriše. Osim njihove primarne svrhe, prefetch datoteke, kao jedan od brojnih Windows artefakata, se mogu koristiti u forenzičkoj analizi jer se njima može dokazati instalacija i pokretanje pojedine aplikacije na sustavu. Prefetch datoteke pružaju točno vrijeme pokretanja aplikacije u obliku vremenske oznake te koliko je puta ta aplikacija bila pokrenuta. Također mogu otkriti s koje je diskovne particije pokrenuta te ostale učitane module te aplikacije. One mogu još dodatno otkriti neke sakrivene direktorije, privremene, neautorizirane ili bilo kakve neobičajene korisničke račune operacijskog sustava, vanjske uređaje za pohranu i slično.

Keywords: prefetch, prefetch datoteka, prefetch proces, vremenske oznake, forenzička analiza, izvršna datoteka

Uvod

Prefetch je proces operacijskog sustava Windows koji je imao brojne različite nazive od vremena svog nastanka. Na Windows XP operacijskom sustavu je bio poznat kao Prefetch, koji je s pojavom Windows Viste proširen i nazvan Superfetch, te u operacijskom sustavu Windows 10 preimenovan u Sysmain. Bez obzira na razna imena, svrha svake generacije Prefetch procesa je ostala ista – povećati performanse Windows OS-a unaprijednim učitavanjem (engl. pre-load) često korištenih aplikacija u RAM memoriju prije nego što su one korisniku zaista potrebne. Datoteke Prefetch procesa se, osim u svoje primarne svrhe, koriste u digitalnoj forenzičkoj analizi kako bi se odredile koje su sve aplikacije instalirane i jesu li bile nedavno pokrenute na pojedinom operacijskom sustavu – u njihovim podacima su precizno određena vremena otvaranja aplikacija, informacije o tome koliko su puta bile otvorene, s kojih su particija pokrenute, koje su dodatne module učitavale i slično. Prefetch datoteke stoga mogu pomoći forenzičarima odgovoriti na pitanja “tko”, “što”, “zašto”, “kada” i “gdje” koja su prisutna pri svakoj vrsti istrage, pa tako i onoj digitalnoj.

Svrha Prefetch procesa i datoteka

Cilj Prefetch procesa je analizirati i zabilježiti ponašanje aplikacije pri pokretanju njene izvršne datoteke kako bi buduća pokretanja bila efikasnija. Zabilježeno ponašanje izvršne datoteke se sprema u datoteku koja se naziva prefetch datoteka. Kada korisnik prvi put pokrene aplikaciju s određene datotečne putanje, operacijski sustav Windows stvori prefetch datoteku za tu aplikaciju unutar „%SystemRoot%\Prefetch” („C:\Windows\Prefetch”) direktorija. Prefetch datoteke imaju slijedeću konvenciju imenovanja:

     {exename}-{hash}.pf

gdje je exename ime izvršne datoteke, hash sažetak putanje s koje je izvršna datoteka pokrenuta te je duljine osam heksadecimalnih znakova i .pf je datotečna ekstenzija. Važno je za napomenuti da znak povlake u imenu razdvaja exename od hash-a te da ime prefetch datoteke smije sadržavati samo velika slova. Nadalje, ako je aplikacija pokrenuta s tri različite lokacije na disku, OS će stvoriti tri različite prefetch datoteke koje odgovaraju pojedinim lokacijama s kojih su te aplikacije pokrenute (detaljnije objašnjenje algoritama imenovanja prefetch datoteka je dostupno na [3]). Također, najveći dozvoljeni broj prefetch datoteka je 128 na operacijskim sustavima od Windows XP do Windows 7, te 1024 na operacijskim sustavima od Windows 8 do Windows 10 [2].

Prefetch proces se izvodi kada operacijski sustav, odnosno Windows Cache Manager nadgleda koje podatkovne komponente se izvlače iz tvrdog diska u RAM memoriju, a samo nadgledanje se odvija u tri slučaja [1]. Najprije počinje sa svakim pokretanjem operacijskog sustava i traje dvije minute tijekom procesa pokretanja sustava (Boot procesa). Također, nadgledanje se odvija nakon dovršetka pokretanja svih Win32 servisa i traje 60 sekundi. Posljedni slučaj nadgledanja je pri svakom pokretanju aplikacije te traje prvih 10 sekundi njenog izvršavanja. Usporedno s nadgledanjem, Windows Cache Manager zajedno s Task Scheduler-om upisuje podatke u .pf datoteke. Te datoteke zatim ubrzaju sustav na način da služe kao alokator podataka s tvrdog diska u RAM memoriju prije nego što korisnik napravi zahtjev za njima. Zbog tog svojstva, prefetch datoteke su vrlo korisne pri forenzičkoj analizi pojedine aplikacije kao i analizi pokrenutih zloćudnih programa (poput npr. virusa, crva i sl.).

Prefetch konfiguracija u Windows Registry-u

Kao što je vidljivo na donjoj slici, putanja do konfiguracijskih parametara za Prefetch proces je:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Kako bi se konfigurirao Prefetch proces, potrebno je izmijeniti vrijednost EnablePrefetcher ključa na jednu od slijedećih vrijednosti:

Prefetching za pokretanje aplikacija i Boot procesa je po zadanim pretpostavkama omogućen za svaki Windows OS osim Windows Server 2003, za koji je omogućen samo Boot proces [4].

Pošto se prefetch proces može onemogućiti od strane korisnika, korištenje prefetch datoteka pri analizi nije uvijek moguće jer svakim ponovnim omogućavanjem ili onemogućavanjem prefetching procesa, sadržaj svih prefetch datoteka se izbriše.

Struktura Prefetch datoteka

Prefetch datoteke se sastoje od slijedećih elemenata [5][6]:

Nabrojani elementi su zapravo tablice koje u svakom retku sadrže podatke na određenom adresnom odmaku od adrese početnog retka. Ovisno o verziji prefetch datoteka, odnosno verziji Windows OS-a, svaki od nabrojenih elemenata će imati sličnu ili različitu strukturu podataka i s time različite odmake koji se nalaze u njima. Trenutne verzije prefetch datoteka su:

Među nabrojenim strukturama podataka koji sadrže brojne informacije koje se mogu koristiti pri forenzičkoj analizi, najčešće informacije koje se koriste pri forenzičkoj analizi su:

Primjene Prefetch datoteka u forenzičkoj analizi

Primjene navedenih informacija u analizi su brojne. Pomoću informacija navedenih u prethodnom poglavlju, može se npr. odrediti točna putanja do zloćudnog programa i vrijeme njegovog zadnjeg pokretanja, te u kombinaciji s drugim vrstama analiza, forenzičari mogu identificirati neke druge komponente tog zloćudnog programa. Također, analizom dnevnika iz različitih izvora i korištenjem vremenske oznake stvaranja prefetch datoteke, moguće je napraviti njihovu korelaciju te utvrditi inicijalni smjer napada.

Još jedan primjer primjene može biti u činjenici da navedena putanja direktorija prefetch datoteke sadrži i račun korisnika sustava – analizom je moguće utvrditi da je stvoren privremeni račun korisnika sa svrhom izvršenja neke kriminalne radnje tako što se točno odrede koje su aplikacije bile pokrenute u nekom vremenskom trenutku. Dodatnim pregledom putanje u prefetch datoteci se može vidjeti je li aplikacija ili datoteka pokrenuta s nekog vanjskog uređaja za pohranu. To je vidljivo zbog različitih načina pristupa samim uređajima, pa se radi toga i zapisi pristupa razlikuju. Također se u pregledu putanje može vidjeti nalazi li se ta izvršna datoteka u nekom sakrivenom direktoriju.

Zadnji primjer primjene koji će biti naveden je analiza vremenskih oznaka u MFT (Master File Table). MFT u NFTS datotečnom sustavu sadrži podatke o svakoj datoteci, kao npr. veličinu datoteke, dozvole, sadržaj i vremenske i podatkovne oznake. Ako napadač želi sakriti izmjenu neke datoteke, treba osim vremenske oznake iz MFT-a, u obzir uzeti i vremenske oznake u prefetch datotekama. Naime, ako napadač promijeni neku aplikaciju i izmijeni joj vremensku oznaku, unosi u prefetch datoteci će ostati isti i prikazivat će ispravne vremenske oznake. Na taj način forenzičari mogu lako zaobići napadačeve pokušaje lažiranja vremenskih oznaka izmjena datoteka.

Zaključak

Kao jedan od brojnih forenzičkih Windows artefakata, prefetch datoteke nude dobar izvor dokaza o postojanju i izvođenju raznih izvršnih datoteka na sustavu. One pomažu pri analizi time što mogu dati uvid u određene radnje korisnika na sustavu u određenom vremenu. Međutim, forenzičar mora biti svjestan činjenice da se Prefetch proces može isključiti od strane korisnika kroz Windows Registry što korištenje prefetch datoteka u forenzičkoj analizi čini nemogućim jer se zaustavljanjem procesa onemogućava njihovo stvaranje te se sadržaj postojećih prefetch datoteka izbriše. Stoga je najbolji pristup pri forenzičkoj analizi uzeti u obzir ostale Windows artefakte kako bi se stvorila vjerodostojnija rekonstrukcija događaja kojeg je napadač prouzročio.

Literatura

[1] Ivan Dimov (November 23, 2013). "Windows Systems and Artifacts in Digital Forensics: Part III: Prefetch Files". Infosec.

[2] "Prefetch Forensics" (January 24, 2018). oR10n Labs.

[3] "Prefetch Hash Calculator + a hash lookup table xp/vista/w7/w2k3/w2k8" (June 13, 2012). Hexacorn.

[4] "Prefetcher". Wikipedia.

[5] "Windows Prefetch File Format". Forensics Wiki.

[6] Joachim Metz. "Windows Prefetch File (PF) format". GitHub.