Vremenske oznake datoteka spadaju među najvažnije metapodatke Linux datotečnih sustava, s primjenom u administraciji, forenzičkoj analizi i drugim granama računalne sigurnosti. Ovaj seminarski rad istražuje ext datotečne sustave, s fokusom na ext4, te analizira značenje, ponašanje i ranjivosti vremenskih atributa. Prikazane su metode njihove manipulacije s različitih razina. Rad opisuje korisničke alate i opcije montiranja, niskorazinske tehnike manipuliranja vremenskih oznaka i timestomping kao anti-forenzičku aktivnost. Praktični primjeri ilustriraju ograničenja pouzdanosti vremenskih oznaka i potrebu njihove korelacije s dodatnim forenzičkim artefaktima.
Keywords: ext; ext datotečni sustavi; vremenske oznake datoteka; file timestamps; timestomping; Linux; MITRE ATT&CK, anti-forenzičke tehnike
Datotečni sustav predstavlja temeljni preduvjet za smislenu organizaciju podataka na trajnim medijima te omogućuje strukturiran pristup pohranjenim informacijama. U Linux okruženju, ext obitelj datotečnih sustava već desetljećima predstavlja standardni izbor, primarno zbog svoje stabilnosti, učinkovitosti i dugogodišnjem održavanju. Ovi sustavi ne pohranjuju samo sadržaj datoteka već i opsežne metapodatke o svakoj datoteci, među kojima vremenske oznake imaju iznimno važnu ulogu.
Zapisivanjem trenutaka stvaranja, modificiranja i pristupanja datotekama, vremenske oznake omogućuju praćenje aktivnosti na sustavu. Forenzički analitičari oslanjaju se na ove informacije pri rekonstrukciji slijeda događaja tijekom sigurnosnih istraga. Različite verzije datotečnog sustava, opcije montiranja i ponašanje pojedinih aplikacija mogu utjecati na to kako se vremenske oznake mijenjaju (ili ne mijenjaju). Problem proizlazi iz toga da se ovi atributi mogu namjerno krivotvoriti u cilju prikrivanja tragova.
Ovaj seminarski rad obradit će strukturu ext datotečnih sustava, što su to vremenske oznake datoteka, raspon metoda za njihovu modifikaciju te razmotriti kako to utječe na sigurnost sustava i forenzičku praksu.
Datotečni sustavi obitelji ext (eng. extended filesystem) dio su temeljne infrastrukture za pohranu podataka u Linux operacijskim sustavima. Ext4 je trenutačno zadani datotečni sustav na novim instalacijama Linux distribucija.
Datotečni sustavi ext2 i ext3 gotovo su identične osnovne strukture te se često označavaju kao ExtX. Oba sustava koriste se blokovima, koji se sastoje od više diskovnih sektora, pri čemu su podržane veličine blokova od 1024, 2048 i 4096 bajtova. Blokovi su organizirani u blok-grupe, koje predstavljaju osnovnu topološku jedinicu datotečnog sustava.
Svaka blok-grupa sadrži:
Inode predstavlja temeljnu podatkovnu strukturu koja obuhvaća sve metapodatke vezane uz neku datoteku, od pristupnih prava i vlasnika datoteke, preko veličine datoteke, vremenskih oznaka, do pokazivača na podatkovne blokove. S obzirom na to da svaka datoteka mora imati vlastiti inode, maksimalan broj datoteka ograničen je ukupnim brojem inodeova u sustavu, a ne samo količinom slobodnog prostora.
Ključna razlika između ext2 i ext3 je uvođenje journalinga u ext3. Journaling daje mogućnost zapisivanja promjena metapodataka u dnevnik prije njihove trajne pohrane, čime se znatno olakšava postupak povrata podataka. Ext3 koristi Journal Block Device (JBD), koji osigurava atomarnost transakcija pomoću descriptor, commit i revoke blokova. Ova značajka povećava pouzdanost, ali istovremeno utječe na ponašanje metapodataka, što je važno u kontekstu digitalne forenzike.
Postoje tri načina rada dnevnika:
Datotečni sustav ext4 donio je značajan napredak u odnosu na ext3, pri čemu zadržava djelomičnu kompatibilnost s prethodnim verzijama. Ext4 uvodi niz strukturnih promjena koje omogućuju rad s izrazito velikim datotečnim sustavima i datotekama, uz poboljšanu učinkovitost i pouzdanost.
Jedna od glavnih promjena u ext4 arhitekturi je način na koji datotečni sustav prati lokaciju podataka na disku. Stariji ext2 i ext3 sustavi koristili su sustav indirektnih pokazivača, svaki blok je trebao zasebnu referencu, što je dovelo do opsežnim lancima pokazivača. Ext4 sa sobom donio je koncept extentsa u kojem se, umjesto pojedinačnog praćenja svakog bloka, bilježi samo gdje niz počinje i koliko je dugačak. Jedan extent može tako obuhvatiti do 128 MB uzastopnih podataka, što značajno pojednostavljuje upravljanje prostorom.
Kada datoteka postane raspršena po disku ili naraste izvan kapaciteta četiri extent zapisa dostupna u standardnom inodeu, ext4 aktivira strukturu extent stabla. Inode tada postaje korijen stabla čiji se dodatni čvorovi i krajnji listovi pohranjuju u zasebnim blokovima. Ova hijerarhijska organizacija omogućuje fleksibilno praćenje i najkompleksnijih obrazaca alokacije, uz ugrađene mehanizme za provjeru valjanosti i očuvanje konzistentnosti podataka.
Tradicionalni ext sustavi zahtijevali su da svaka blok-grupa čuva vlastite metapodatke unutar svojih granica, što je ograničavalo fleksibilnost pri alokaciji. Ext4 rješava ovaj problem uvođenjem fleksibilnih blok-grupa, odnosno mehanizma koji dopušta grupiranje metapodataka više blok-grupa na jedno mjesto. Praktična posljedica jest mogućnost stvaranja velikih neprekinutih područja za korisničke podatke, budući da metapodaci više ne “presijecaju” prostor namijenjen pohrani.
Ext4 donio je i proširenje inode strukture. Zadana veličina inodea povećana je sa 128 B na 256 B, čime se omogućuje:
Na razini skalabilnosti, ext4 povećava maksimalnu veličinu pojedinačne datoteke s 2 TB na 16 TB, dok maksimalna veličina datotečnog sustava doseže 1 EB, zahvaljujući proširenju adresnog prostora blokova na 48 bita.
Vremenske oznake podataka temeljni su metapodatci u datotečnim sustavima koji služe za praćenje aktivnosti nad datotekama. Metapodaci su strukturirane informacije koje opisuju, objašnjavaju, lociraju ili upravljaju drugim podacima. Često se opisuju kao podatci koji opisuju podatke. U kontekstu Linux sustava i datotečnog sustava ext4, vremenske oznake pružaju informaciju kada je datoteka kreirana, pristupana ili modificirana, što je osobito važno u administraciji sustava i forenzičkoj analizi.
Razlikuju se četiri osnovne vrste vremenskih oznaka:
Ponekad:
Vrijeme izmjene (mtime) označava vrijeme zadnje izmjene sadržaja datoteke. Ova oznaka se ažurira svaki put kada se sadržaj datoteke promijeni. Primjer je upis novog sadržaja ili promjena postojećeg. U forenzičkim scenarijima, mtime pomaže identificirati trenutke kada su podaci izmijenjeni, što može biti ključno za uvid sekvence događaja.
Vrijeme pristupa (atime) bilježi vrijeme zadnjeg pristupa datoteci, odnosno kada je datoteka zadnji put otvorena ili pročitana, bez obzira na to je li se njezin sadržaj izmijenjen. U mnogim distribucijama Linuxa, radi optimizacije performansi, atime se ne ažurira doslovno za svaki pristup već u skladu s određenim pravilima, no sama oznaka konceptualno predstavlja evidenciju čitanja datoteke. Jedno od tih pravila je relatime, odnosno pravilo koje definira da se atime ažurira samo ako vrijedi barem jedan od uvjeta:
Vrijeme promjene (ctime) bilježi vrijeme posljednje promjene metapodataka datoteka, no ne i sadržaja. Te oznake korisne su tijekom forenzičkih analiza kada je potrebno utvrditi promjene svojstava datoteke.
Vrijeme stvaranja/Vrijeme rođenja (crtime/btime) označava vrijeme prvotnog stvaranja datoteke u datotečnom sustavu. Unix datotečni sustavi ext2 i ext3 nisu podržavali ovu oznaku, ali ext4 ju je uveo kao dodatnu vrijednost u inode strukturi. Ova vremenska oznaka omogućuje preciznije određivanje početka životnog ciklusa datoteke, što je korisno u naprednim forenzičkim analizama. Međutim, ne svi alati sustava i forenzički paketi jednoznačno prikazuju ovu oznaku, pa je važno provjeriti kompatibilnost alata prilikom analize.
Vremenske oznake važne su u digitalnoj forenzici jer omogućuju rekonstrukciju događaja i aktivnosti na sustavu. Kombiniranjem različitih timestampova forenzičar može rekonstruirati kronologiju aktivnosti na disku. Važno je napomenuti da timestampovi sami po sebi nisu nepogrešivi jer se mogu mijenjati različitim operacijama ili manipulacijama, stoga se preporučuje koristiti ih s drugim izvorima podataka poput zapisa sustava (logova) i journaling informacija datotečnog sustava.
Neuobičajene kombinacije timestampova (npr. ako mtime ili ctime prethode vrijednosti crtime) mogu biti indikator pokušaja manipulacije timestampovima (timestomping). Takvu manipulaciju napadači mogu koristiti kako bi prikrili tragove svoje aktivnosti, čime timestampovi postaju indikator anti-forenzičkog ponašanja i zahtijevaju dodatnu provjeru unutar šireg konteksta forenzičke analize
Izmjena vremenskih oznaka datoteka na Linux sustavima moguća je na različite načine na više razina. Postoje razni standardni korisnički alati, ali i niskorazinske tehnike koje iziskuju administrativne privilegije ili neposredan pristup strukturama datotečnog sustava. Dok ovakve mogućnosti imaju legitimnu primjenu u scenarijima poput sinkronizacije podataka između sustava ili upravljanja sigurnosnim kopijama, iste metode predstavljaju i potencijalni vektor za anti-forenzičke aktivnosti.
Najjednostavniji način manipuliranja vremenskim oznakama omogućen je standardnim alatima dostupnima u Linux okruženju. Najpoznatiji alat za to je touch. Touch omogućuje ručno postavljanje vremena pristupa (atime) i vremena izmjene sadržaja (mtime).
Na primjer, naredba:
touch -t 202601310000 datoteka.txt
postavlja atime i mtime na određeni datum i vrijeme. Ctime se automatski ažurira, jer se promjena metapodataka smatra promjenom inode strukture. Iz tog razloga, standardni alati ne mogu izravno promijeniti ctime, što ctime čini otpornijim na jednostavne oblike manipulacije.
Sličnu funkcionalnost imaju alati za kopiranje i sinkronizaciju datoteka poput cp (uz opciju -p) i rsync (uz opciju -a) koji mogu očuvati izvorne vremenske oznake tijekom prijenosa podataka. Takva funkcionalnost često se koristi u legitimne svrhe, ali može otežati forenzičku analizu jer vremenske oznake ne prikazuju stvarni trenutak kopiranja datoteka.
Vremenskim oznakama može se manipulirati i na razini datotečnog sustava s pomoću opcija montiranja (mount). Opcije montiranja (mount options) su parametri koji se definiraju prilikom montiranja datotečnog sustava i određuju kako će se sustav ponašati tijekom rada. Najučestalije opcije su atime, noatime, relatime. Opcija noatime postavlja zabranu ažuriranja atime oznake prilikom pristupa datotekama. Time zlonamjerni napadači na računalne sustave mogu značajno utjecati na interpretaciju atime oznaka. Takve opcije prvenstveno služe za poboljšanje performansi, no u kontekstu računalne forenzike, mogu otežati analizu.
Slika prikazuje da opcije montiranja datotečnog sustava utječu na ponašanje vremenskih oznaka datoteka. Pri korištenju opcije relatime, oznaka vremena pristupa (atime) ažurira se nakon čitanja datoteke, dok oznake promjene sadržaja (mtime) i metapodataka (ctime) ostaju nepromijenjene.
Napredniji načini manipulacije vremenskim oznakama zahtijevaju administrativne ovlasti i pristup niskorazinskim alatima. Jedan od najčešće korištenih alata u tom kontekstu je debugfs. Debugfs je low-level Linux alat koji se koristi za pregled i izmjenu parametara datotečnog sustava. Korištenjem debugfs-a moguće je ručno mijenjati inode metapodatke, uključujući vremenske oznake koje nisu dostupne standardnim alatima. Takav pristup omogućuje izmjenu čak i ctime vrijednosti, budući da se promjene vrše izravno na strukturi datotečnog sustava, zaobilazeći uobičajene mehanizme kernela.
Osim debugfs-a, vremenskim oznakama može se upravljati i izravnom izmjenom diskovne slike pomoću heksadecimalnih editora. Ova metoda koristi se uglavnom u istraživačke ili forenzičke svrhe, ali ju napadači mogu iskoristiti za naprednije anti-forenzičke napade. Takva manipulacija ostavlja vrlo malo tragova na razini operacijskog sustava, no često se može otkriti analizom journaling zapisa ili nedosljednosti između različitih vremenskih oznaka
Prikaz inode strukture i vremenskih oznaka datoteke s pomoću alata debugfs, koji omogućuje niskorazinski pristup metapodacima datotečnog sustava
Timestomp je najpoznatiji naziv za tehniku mijenjanja vremenskih oznaka datoteka kako bi napadač omogućio brisanje ili mijenjanje tragova koje ostavi na uređaju. Cilj timestompinga je promijeniti karakteristike datoteke kako bi izgledale kao da su postojale ranije ili da pripadaju legitimnim datotekama. Time je forenzičkim alatima otežana analiza anomalija u vremenskim atributima datoteka.
Tehnika timestompinga dokumentirana je u okviru MITRE ATT&CK baze znanja kao T1070.006 te je zabilježena u različitim operacijskim sustavima. Iako MITRE ne specificira korišteni datotečni sustav, ista tehnika primjenjiva je i na Linux sustave koji koriste ext datotečne sustave, što je potvrđeno u forenzičkoj literaturi i analizama Linux zlonamjernih procesa.
Skupina Rocke specijalizirala se za napade na Linux poslužitelje s ciljem neovlaštenog rudarenja kriptovaluta. Nakon inicijalne kompromitacije, napadači su poduzimali mjere prikrivanja tragova kako bi odužili prisutnost na sustavu. Kao dio taktike izbjegavanja obrane, u tom kontekstu koristili su se timestompingom kako bi vremenske oznake zlonamjernih datoteka bile usklađene s okolnim legitimnim datotekama. Time se smanjuje vjerojatnost da će promjene biti uočene analizom vremenskih anomalija, osobito na Linux sustavima koji koriste ext datotečne sustave.
Vremenske oznake kao metapodatci u ext datotečnim sustavima važan su, ali i sveukupno ograničen forenzički artefakt. Način na koji se vremenske oznake bilježe ovisi o implementaciji samog datotečnog sustava, aktivnim konfiguracijskim postavkama te ponašanju alata i aplikacija pri radu s datotekama. Sposobnost namjerne izmjene vremenskih oznaka znači da one ne prikazuju uvijek legitimnu dokaznu vrijednost bez dodatnog konteksta. Ispravna i pouzdana forenzička interpretacija zahtijeva njihovu usporedbu s drugim izvorima podataka i razumijevanje strukture ext datotečnih sustava. Vremenske oznake bez konteksta nisu dokaz, već samo trag.
[1] K. D. Fairbanks, An analysis of Ext4 for digital forensics
[2] GeeksforGeeks, Linux/Unix file timestamps – mtime, ctime and atime in Linux
[3] ScienceDirect Topics, File timestamps (modification, access, change, and creation)
[4] MITRE ATT&CK, Indicator Removal: Timestomp (T1070.006)
[5] Notes Qazeer, Timestomping in Linux ext4
[6] MITRE ATT&CK, Rocke (Group G0106)
[7] man7.org, man