Sadržaj

Sažetak

Tema ovog seminarskog rada je detekcija manipulacije nad vremenskim oznakama u NTFS datotečnom sustavu. Prvo će se opisati pohrana i svojstva samih vremenskih oznaka u NTFS datotečnom sustavu, nakon čega će se opisati pronađene opcije za detekciju manipulacije nad njima. Za kraj će se demonstrirati jednostavan primjer manipulacije i detekcije koji svatko može provesti za vježbu te će se dati zaključak.

Uvod

Lažiranje vremenskih oznaka postala je široko korištena tehnika u računalnoj antiforenzici [1]. Postoje brojni besplatni alati lagani za korištenje pomoću kojih se može stvoriti iskrivljena slika prošlih događaja s ciljem obmane nekoga. Samo određivanje toka događaja pomoću vremenskih oznaka nije jednostavan posao - velik broj mogućih operacija nad datotekama izvršenih od strane korisnika rezultira velikom raznolikošću vremenskih oznaka koje mogu predstavljati problem pri pokušaju rekonstrukcije događaja. Stoga će se u idućim poglavljima pobliže opisati vremenske oznake u NTFS datotečnom sustavu i neke od metoda detekcije manipulacije nad istima.

Vremenske oznake u NTFS datotečnom sustavu

U ovom poglavlju prvo ćemo reći nešto o pohrani vremenskih oznaka u NTFS datotečnom sustavu, nakon čega ćemo opisati same vremenske oznake i njihova svojstva.

Pohrana vremenskih oznaka u NTFS datotečnom sustavu

Svaka datoteka u NTFS jedinici je predstavljena zapisom [2]. Ti zapisi su pohranjeni u Master File Table (MFT). NTFS rezervira prvih 16 zapisa te tablice za posebne informacije. Prvi zapis ove tablice opisuje samu master tablicu, nakon čega slijedi zapis koji pokazuje na MFT mirror datoteku koja se koristi u slučaju da je prvi MFT zapis korumpiran ili oštećen. Pojednostavljena ilustracija MFT strukture nalazi se na slici ispod.

Manje datoteke i direktoriji (veličine manje od 512 bajtova) mogu se u potpunosti pohraniti u MFT. Pojednostavljeni prikaz jedne takve datoteke je na slici ispod.

Postoji mnogo MFT atributa u NTFS datotečnom sustavu, a svaki od njih ima svoju strukturu i sadrži različite podatke. Njihovi identifikatori, imena i veličine su definirani u datoteci za pohranu metapodataka $AttrDef [1]. Kad svi atributi datoteke ne mogu stati u MFT zapis, oni se pohranjuju kao vanjski atributi. Ipak, informacije kao što su ime datoteke i vremenske oznake uvijek se uključuju u MFT zapis. Za analizu vremenskih oznaka najvažniji atributi su $STANDARD_INFORMATION ($SI) i $FILE_NAME ($FN). Atribut $SI sadrži osnovne informacije o datoteci, npr. informacije o vlasniku, zastavice itd. Veličina ovog atributa je fiksna i iznosi 48 bajtova. Atribut $FN sadrži informacije o imenima datoteka kao i referencu na roditeljski direktorij. Veličina ovog atributa varira, a uključuje 66 bajtova plus dužinu imena datoteke.

Opis vremenskih oznaka u NTFS datotečnom sustavu

U NTFS datotečnom sustavu vremenske oznake pohranjuju se kao numerička vrijednost koja predstavlja broj intervala trajanja 100 nanosekundi proteklih od 1. siječnja 1601. u 00:00 (UTC) [3] iz čega se može zaključiti da NTFS vremenske oznake imaju preciznost od 100 nanosekundi (0.1 mikrosekundi). Još jedna značajka je da se pohranjuju u UTC formatu, što znači da na njih ne utječu vremenske zone ili pomicanje sata.

Vremenske oznake u $SI i $FN atributima zajednički nazivamo MACB. One daju vremenski kontekst za sljedeće događaje:

Vremenske oznake unutar atributa $SI započinju na poziciji 0x00, dok u atributu $FN započinju na poziciji 0x08. Svaka od njih ima veličinu od 8 bajtova, što rezultira s ukupno 32 bajta po atributu rezervirana za vremenske oznake. Vremenske vrijednosti za izmjenu (M), pristup (A) i stvaranje (B) datoteke lako su dostupne kroz opciju “Properties” na Windows operacijskim sustavima. Važno je navesti da se prikazane vrijednosti dohvaćaju se iz atributa $SI. Vrijeme promjene metapodataka datoteke (C) obično je skriveno i ne prikazuje se korisniku.

Vremenske oznake sadržane u $FN ne sadrže iste vrijednosti kao one u $SI i obično nisu vidljive korisniku. Ako tek stvorimo datoteku, sve vremenske oznake u $SI i $FN bit će postavljene na iste vrijednosti. Razlika između vremenskih oznaka u tim atributima javlja se tek kasnije pri korištenju datoteke. Točnije, vremenske oznake u $SI mogu se pokrenuti bilo kojom operacijom nad datotekom, dok se vremenske oznake u $FN ne mogu izravno ažurirati. Njih operacijski sustav prebriše s odgovarajućim vrijednostima iz $SI svaki put kada postoje promjene u atributu $FN (stvaranje, kopiranje, premještanje ili mijenjanje imena datoteka). Zbog tog razloga je znatno teže promijeniti vremenske oznake atributa $FN nego atributa $SI.

Primjera radi, detaljnu vremensku oznaku neke datoteke možemo prikazati korištenjem terminal naredbe stat nad nekom datotekom. Rezultat izvođenja jedne takve naredbe prikazan je na slici ispod.

Iz slike se može vidjeti da svaka gore navedena vremenska oznaka zaista ima preciznost od 0.1 mikrosekunde, što će nam dobro doći u kasnijim poglavljima ovog seminara.

Detekcija manipulacije nad vremenskim oznakama u NTFS datotečnom sustavu

Klasifikacija alata za manipulaciju nad vremenskim oznakama

Alate za manipulaciju nad vremenskim oznakama klasificiramo prema njihovim metodama i pristupu na [1]:

Detekcija manipulacije nad vremenskim oznakama analizom vremenskih oznaka

Detekcija krivotvorenja vremenske oznake uvelike se oslanja na sposobnost korištenog alata da manipulira brojevima koji dolaze nakon pune sekunde [1]. Potrebno je naglasiti da nikada nije dovoljno samo promatrati prozor “Properties” otvoren nad nekom datotekom - podaci o vremenskim oznakama moraju se izvaditi izravno iz MFT-a. Budući da mnogo alata smanjuju/uklanjaju decimalna mjesta i samim time smanjuju preciznost vremenske oznake, njihova se manipulacija može lako otkriti. Ipak, potrebno je naglasiti da postoji vjerojatnost lažnog pozitiva u iznosu od 0,00001% kad se govori o alatima koji zaokružuju vrijednosti na punu sekundu. Ako se vrijednosti zaokružuju na punu milisekundu, vjerojatnost lažnog pozitiva se povećava na 0,01%. U obzir je potrebno uzeti i podrijetlo datoteka. Ako datoteka dolazi s nekog starijeg datotečnog sustava koji ima manju preciznost vremenskih oznaka (npr. FAT), vjerojatnost lažno pozitivnog se automatski povećava. Ranjivost ovakve vrste detekcije su alati poput alata SetMace koji je u mogućnosti promijeniti sve vremenske oznake u $SI i $FN s punom preciznošću te tako može replicirati bilo koju valjanu NTFS operaciju. Ipak, alat dolazi s brojnim preduvjetima što ograničava njegovu uporabu u produktivnim okruženjima.

Detekcija manipulacije nad vremenskim oznakama analizom log datoteka

Budući da postoje alati koji mogu mijenjati sve vremenske oznake u $MFT s NTFS preciznošću potrebno je pronaći nove načine provjere krivotvorenja vremenskih oznaka. U korist nam ide činjenica da se vremenske oznake prije i poslije bilo kakve promjene pohranjuju u $LogFile koji nam može dati podršku analizi. Cho [4] je prvi koristio analizu $LogFile atributa kao dopunsku tehniku detekcije krivotvorenih vremenskih oznaka. U svom eksperimentu primijetio je da $LogFile na sadrži zapise iz $FN atributa što znači da te vremenske oznake nikad nisu bile ažurirane čime se krše osnovna pravila vremenskih oznaka te se detektira manipulacija. U svom radu je detaljno naveo potrebne definicije i pravila koja vremenske oznake moraju poštivati te se za više informacija preporučuje pročitati njegov rad [4].

Primjer manipulacije nad vremenskim oznakama u NTFS datotečnom sustavu

U ovom poglavlju provest ćemo jednostavan primjer [5] manipulacije nad vremenskim oznakama jednim popularnim alatom s interneta, nakon čega ćemo vidjeti zašto bi se moglo zaključiti da su vremenske oznake krivotvorene.

Provedba manipulacije

Na internetu je relativno jednostavno pronaći mnoštvo alata pomoću kojih se mogu promijeniti vremenske oznake datoteka. Jedan od popularnijih je SKTimeStamp koji ćemo koristiti za potrebe ovog primjera. Kreirali smo testnu .txt datoteku nad kojom ćemo izvršiti eksperiment.

Ako zamislimo da smo “običan” korisnik i da idemo provjeriti vremenske oznake neke datoteke, vjerojatno ćemo pronaći datoteku, stisnuti desni klik i odabrati opciju “Properties” nakon čega bi trebali dobiti ovakav prozor na prikaz.

Instalacijom alata SKTimeStamp prikazuje nam se novi tab TimeStamps u kojemu možemo mijenjati vremenske oznake datoteke. U ovom slučaju pomaknuli smo “Modified” vremensku oznaku na skoro sat vremena kasnije.

Otvorimo li ponovno prozor “Properties”, vremenske oznake će izgledati točno onako kako smo ih maloprije postavili i ništa neće biti sumnjivo.

Detekcija manipulacije

Budući da se mi ne ponašamo kao običan korisnik, u ovom koraku za provjeru vremenskih oznaka datoteke koristit ćemo naredbu stat koju smo koristili prije nekoliko poglavlja.

Iz ispisa je vidljivo da je vremenska oznaka “Modified” koju smo maloprije promijenili okruglo zaokružena na sekundu koju smo odabrali pri promjeni. To znači da je točnost od 0.1 mikrosekunde koju inače koristi NTFS datotečni sustav zanemarena i da se koristi točnost od jedne sekunde. Kako je objašnjeno u ranijim poglavljima, ovo nam govori da je riječ u krivotvorenim vremenskim oznakama (uz vjerojatnost lažnog pozitiva od 0,00001%). Uz to, na ispisu se može primijetiti da je i vrijeme kreiranja datoteke zaokruženo na točnost sekunde iako tu vremensku oznaku uopće nismo mijenjali.

Za usporedbu, ovdje su vremenske oznake datoteke prije manipulacije nad vremenskim oznakama (iako te podatke u stvarnim uvjetima vjerojatno ne bi posjedovali).

Zaključak

Analiza vremenskih oznaka bitna je tehnika pri kreiranju vremenskog slijeda događaja iz digitalnih dokumenata. Na ruku ne ide to da je puno lakše manipulirati vremenskim oznakama nego detektirati tu istu manipulaciju. Postoje razni alati koji pružaju mogućnosti krivotvorenja ali ne rade svi na savršen način. Većina osnovnih alata ne zapisuje krivotvorene vremenske oznake u NTFS točnosti od 100 nanosekundi pa se detekcija da lako provjeriti osnovnim naredbama. Ipak, za naprednije alate koji se drže NTFS točnosti potrebno je promijeniti pristup te analizirati $LogFile i slične zapise kako bi se pokušalo otkriti nepravilnosti u definicijama i pravilima među vremenskim oznakama. Područje ove analize postaje sve kompleksnije razvojem novih ideja krivotvorenja, ali time rastu i nova rješenja - pogotovo kroz zadnjih 10 godina.

Literatura

[1] Galhuber, Michael, and Robert Luh. "Time for truth: Forensic analysis of ntfs timestamps." The 16th International Conference on Availability, Reliability and Security. 2021.

[2] NTFS Master File Table (MFT)

[3] Microsoft File Times

[4] Cho, Gyu-Sang. "A computer forensic method for detecting timestamp forgery in NTFS." Computers & Security 34 (2013): 36-46.

[5] Date Forgery Analysis and Timestamp Resolution

Prezentacija