====== Manipuliranje vremenskim oznakama (timestamps) na NTFS/Windows sustavu ====== ===== Sažetak ===== Vremenske oznake na operacijskom sustavu Windows sadrže vrijedne informacije o datotekama. Napadač koji mijenja datoteke, a želi sakriti svoj trag, vjerojatno će promijeniti i njihove vremenske oznake. Vremenske oznake datotečnog sustava NTFS pohranjene su u MFT-u (Master File Table) u obliku STANDARD_INFORMATION atributa (SIA) i FILE_NAME atributa (FNA). Ovi unosi imaju različita svojstva te se mijenjaju na različite načine. Vremenskim oznakama je relativno jednostavno manipulirati, ali manipulirati njima bez ostavljanja tragova zahtijeva vještinu i poznavanje metoda detekcije. Od metoda detekcije opisat ćemo provjeru odnosa MFT ID-jeva i vremenskih oznaka, usporedbu vrijednosti vremenskih oznaka SIA i FNA, format vremenske oznake - završavanje nulama, USNjrnl te LogFile. Niti jedna od ovih metoda nije potpuno učinkovita, ali njihovom kombinacijom moguće je ući u trag napadaču koji nije bio dovoljno oprezan. Ključne riječi: timestamp; timestomping; manipuliranje vremenskim oznakama ===== Uvod ===== Operacijski sustav Microsoft Windows za svaku datoteku korisniku nudi prikaz triju osnovnih vremenskih oznaka: * Created (vrijeme stvaranja datoteke) * Modified (vrijeme posljednje izmjene datoteke) * Accessed (vrijeme posljednjeg pristupa datoteci, čak i ako ona tada nije bila promijenjena). Vremenskim oznakama moguće je manipulirati, to jest ručno ih promijeniti i time sakriti prave informacije o datoteci. Za ovo postoje brojni načini i lako dostupni programi. Računalnom forenzičaru od koristi je moći prepoznati jesu li vremenske oznake određenih datoteka bile promijenjene. Ne postoji potpuno učinkovit i konzistentan način detektiranja manipulacije oznakama, ali postoje metode koje mogu dati dobre rezultate, ovisno o svojstvima i kvaliteti napada. ===== Pohrana vremenskih oznaka na NTFS datotečnom sustavu ===== NTFS je zadani datotečni sustav operacijskog sustava Windows. Sadrži MFT (Master File Table), relacijsku bazu podataka koja se sastoji od redova datoteka zapisa i stupaca atributa datoteka. Ona sadrži barem jedan unos za svaku datoteku na NTFS jedinici, uključujući i samog MFT. Svaka datoteka na NTFS jedinici predstavljena je zapisom u MFT-u. [1] Dva atributa unutar MFT-a čuvaju informacije o vremenskim oznakama, STANDARD_INFORMATION atribut (SIA) i FILE_NAME atribut (FNA). Svaki od tih atributa ima pohranjen set vremenskih oznaka, no za razliku od vremenskih oznaka prikazanih korisniku, ovdje se radi o četiri oznake koje zajedno zovemo MACE (Tablica 1). ^ Vremenska oznaka ^ Informacija ^ | Last **M**odified | Kada se datoteka mijenjala. | | Last **A**ccessed | Kada je datoteci zadnji put pristupano. | | File **C**reation | Kada je datoteka stvorena, kopirana ili promijenila direktorij. | | MFT **E**ntry Changed | Kada se unos datoteke u MFT-u mijenjao. | Vremenske oznake u FNA atributu datoteke mijenjaju se samo kad se i neke druge informacije sadržane u njemu također promijene, poput imena datoteke ili njezine lokacije na disku. NTFS sve vremenske oznake pohranjuje kao 64-bitnu vrijednost koja predstavlja broj nanosekundi koje su protekle od 1.1.1601. UTC. [2] ===== Mijenjanje vremenskih oznaka ===== Vrijednosti SIA vremenskih oznaka moguće je mijenjati brojnim lako dostupnim programima, pa čak i korištenjem Windows PowerShell-a. Napadač koji ne želi ostaviti trag mora promijeniti i vrijednosti FNA vremenskih oznaka. To može postići sljedećim postupkom: - Promijeni SIA vremenske oznake - Premjesti datoteku u drugi direktorij (ovime se FNA vremenske oznake automatski mijenjaju tako da su u skladu sa SIA vremenskim oznakama) - Promijeni SIA vremenske oznake - Vrati datoteku u izvorni direktorij (ovime se ponovno mijenjaju FNA vremenske oznake) - Promijeni SIA vremenske oznake. Korištenjem ove metode, napadač može manipulirati SIA i FNA vremenskim oznakama datoteke s velikom preciznošću, što otežava detekciju. [1] ===== Neke metode detekcije manipulacije ===== ==== Provjera odnosa MFT ID-jeva i vremenskih oznaka ==== MFT ID-evi rastu linearno sa FNA-C vremenskom oznakom stvaranja datoteke. Drugim riječima, MFT ID-evi datoteke stvorene u prošlosti manji su od MFT ID-eva stvorenih sada. Anomaliju bi predstavljala situacija u kojoj datoteka ima vrijeme stvaranja u daljoj prošlosti, a MFT ID vrijednost je vrlo velika i bliža MFT ID vrijednostima datoteka stvorenih puno kasnije. ==== Usporedba vrijednosti vremenskih oznaka SIA i FNA ==== Očekivano je da vremenske oznake FNA-C stvaranja datoteke budu starije od vremenskih oznaka SIA-C stvaranja datoteke. Anomaliju bi predstavljala situacija u kojoj je vremenska oznaka SIA-C starija od vremenske oznake FNA-C. ==== Format vremenske oznake - završavanje nulama ==== Ako je napadač nepažljiv ili koristi neadekvatan alat za promjenu vremenskih oznaka, moguće je da rezolucija vremenske oznake ostane na razini sekundi, a da sve preciznije od toga, zaključno s nanosekundama, bude postavljeno na nulu. ==== USNjrnl ==== USNjrnl je dnevnik u NTFS datotečnom sustavu koji bilježi bilo kakve promjene nad datotekama. Unosi u USNjrnl-u koji ukazuju na promjenu vremenske oznake imat će kod: BASIC_INFO_CHANGE+CLOSE Ova metoda, kao niti jedna druga, nije potpuno učinkovita, budući da napadač ovaj dnevnik može obrisati ili njime manipulirati, iako time onda može ostaviti nove tragove, primjerice u obliku Windows Event-ova. ==== LogFile ==== Windows-ov zaštićeni dnevnik promjena LogFile treći je unos u MFT-u te bi u slučaju manipulacije vremenskim oznakama sadržavao informacije poput onih o promjenama oznaka, programima koji su za to korišteni ili izvornim stanjima datoteka. Slabost LogFile-a je što je cirkularan i malenog kapaciteta, što znači da ga napadač može preplaviti ili naprosto čekati da se sam prebriše, a s njim i svi dokazi o mijenjanju vremenskih oznaka. [3] ===== Zaključak ===== Napadaču je relativno jednostavno promijeniti vremenske oznake datoteka na operacijskom sustavu Windows (datotečni sustav NTFS), ali ako to želi učiniti bez da ostavi ikakav trag, potrebno je dobro poznavanje NTFS-a, kao i brojnih metoda koje su trenutno poznate za detekciju manipulacije vremenskim oznakama. Niti jedna od tih metoda nije potpuno učinkovita i konzistentna, ali u kombinaciji mogu ući u trag nekim napadačima. ===== Literatura ===== [1] [[https://www.fer.unizg.hr/_download/repository/RacFor-Filesystem-Slides-v10-pp.pdf|Računalna forenzika, FER, predavanja 2021.]] [2] [[https://www.researchgate.net/publication/341746025_Artifacts_for_Detecting_Timestamp_Manipulation_in_NTFS_on_Windows_and_Their_Reliability|Palmbach, David & Breitinger, Frank. (2020). Artifacts for Detecting Timestamp Manipulation in NTFS on Windows and Their Reliability. Forensic Science International: Digital Investigation. 32. 300920. 10.1016/j.fsidi.2020.300920.]] [3] [[https://alexsta-cybersecurity.com/how-to-detect-timestomping-on-a-windows-system|Alexandru Stamate. How to detect timestomping (on a Windows system)]]