SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika 2016/2017 FAT32 datotečni sustav Ivan Blažeković Zagreb, siječanj, 2017.
Sadržaj 1. Uvod... 1 1.1 Općenito o datotečnim sustavima... 1 1.2 Organizacija diska... 2 2. Datotečni sustav FAT32... 4 2.1 Općenito o datotečnom sustavu FAT32... 4 2.2 Analiza FAT32 Master Boot Recorda... 4 3. Analiza particija FAT32 sustava... 6 3.1 Korištenje više particija... 6 3.2 FAT32 Boot record... 6 4. Zaključak... 8 5. Literatura... 9
1. Uvod 1.1 Općenito o datotečnim sustavima U fokusu računalne forenzike nalazi se trajna memorija računala koja čuva podatke i nakon gašenja računala. Tipično to su diskovi, memorijske kartice, USB drive. Kako bi računalo moglo upravljati memorijom i prepoznati značenje svakog pojedinog bita, svaka trajna memorija mora biti oblikovana u datotečni sustav [1]. Datotečni sustav je: apstrakcija, organizacijska shema za trajne memorije. Napravljen je za potrebe organiziranja, spremanja i dohvaćanja podataka. Omogućuje računalu rad sa datotekama/podacima. Danas je uglavnom hijerarhijski/stablast. Prema pristupu podacima, datotečne sustave možemo podijeliti na sekvencijalne datotečne sustave te hijerarhijske datotečne sustave (slučajni pristup) [1]. U računalnoj znanosti, sekvencijalni pristup znači da se grupi elemenata pristupa u unaprijed određenom nizu. Sekvencijalni pristup je ponekad jedini način pristupa podacima, na primjer, ako su podaci na vrpci [2]. Slučajan pristup (preciznije i više općenito nazvan izravan pristup) je sposobnost pristupa bilo kojem podatku na bilo kojim datim koordinatama unutar populacije elemenata koji se mogu adresirati. U pravilu, pretpostavka je da se nekom elementu može pristupiti jednako lako i efikasno kao i svim drugim elementima [3]. Slika 1: Usporedba sekvencijskog i slučajnog pristupa [4] 1
Slika 2: Sekvencijalni datotečni sustav [1] Slika 3: Hijerarhijski datotečni sustav [1] Datotečni sustav je neovisan o uređaju, postoje različite vrste datotečnih sustava koje imaju različita svojstva i fizički raspored [1]. Najčešće korišteni datotečni sustavi [1]: Windows: FAT12, FAT16, FAT32, exfat, NTFS UNIX: ext, ext2, ext3, ext4 1.2 Organizacija diska Kod pokretanja, računalo obično traži pristup nekoj vrsti trajne memorije (najčešće tvrdom disku) s koje čita te traži daljnje instrukcije. Svaka memorija podijeljena je na sektore radi bolje organizacije i lakšeg upravljanja, sektori su memorijske skupine od 2
512 bajtova. U prvom fizičkom sektoru memorije računalo očekuje Master boot record (MBR). MBR ima 512 bajta, a sastoji se od tri dijela [1]: Bootstrap kod, 446 bajta Tablica sa particijama, 4*16 bajta = 64 bajta Potpis/magični broj, 2 bajta (0x55, 0xAA) Slika 4: Master Boot Record [1] Bootstrap kod je izvršivi kod čiji je zadatak [1]: pronaći aktivnu particiju pročitati koji je početni sektor aktivne particije prekopirati program iz početnog sektora aktivne particije u memoriju pokrenuti učitani program MBR ima četiri zapisa za particije, svaki zapis sadrži podatke koji nam govore [1]: je li particija aktivna kojim datotečnim sustavom je formatirana na kojem sektoru počinje koliko je velika Na kraju MBR zapisa nalazi se polje veličine 2 bajta, koje uvijek sadrži vrijednost 0x55 0xAA te označava kraj MBR-a. To polje je način za provjeru je li MBR uopće tamo te je li ispravan. Nedostaci MBR-a su da može imati maksimalno 4 fizičke particije te maksimalnu veličinu particije 2TiB [1]. 3
2. Datotečni sustav FAT32 2.1 Općenito o datotečnom sustavu FAT32 Datotečni sustav FAT32 je nova inačica datotečnog sustava iz FAT obitelji, nastala nakon FAT16 sustava. Veličina particije je porasla, kao i maksimalni broj zapisa u korijenskom direktoriju. FAT32 se smatra 10-15% efikasniji u korištenju memorije od FAT 16 sustava. Puno ime sustava je 32-bit File Allocation System, koristi se za DOS i Windows operacijske sustave te se pojavio se 1996. godine [1]. Prednosti FAT32 datotečnog sustava su [1]: dobra prenosivost među platformama nema 4GB ograničenja za veličinu particija kao kod FAT16 inačice Mane FAT32 datotečnog sustava su [1]: veličina particije ograničena je na 2TiB maksimalna veličina datoteke 4GB (minus 1 bajt) nema kontrole nad korisnikovim pristupom datotekama 2.2 Analiza FAT32 Master Boot Recorda MBR je isti za praktički sve operacijske sustave. Nalazi se na 0. cilindru, 0. glavi i 1. sektoru tvrdog diska. To je prvi dio koda koji računalo pokreće nakon provjere hardware-a (POST). Također sadrži tablicu particija, koja definira različite dijelove tvrdog diska. Također, ako se nešto dogodi toj skupini od 512 bajtova, mozak tvrdog diska postaje mrtav [5]. Slika 5: Detaljan prikaz Master Boot Record-a [5] 4
Na gornjoj slici vidljivo je gdje moramo obratiti pažnju kod analiziranja MBR-a. Ako nas zanima postoje li određene particije na disku, moramo provjeriti sadržaj bajtova na pozicijama 1BEh, 1CEh, 1DEh, te 1EEh za prvu, drugu, treću odnosno četvrtu particiju. Kako bi provjerili je li sve u redu sa MBR-om, potrebno je provjeriti sadržaj 2 bajta na poziciji 1FEh, koji moraju biti 55hAAh. Slika 6: Zapis particije [5] U gornjoj tablici prikazan je zapis prve particije unutar MBR-a na poziciji 1BEh. Prvi bajt nam daje informaciju o tome je li particija aktivna ili neaktivna (00h neaktivna, 80h aktivna). Drugi bajt označava početnu glavu tvrdog diska, a treći i četvrti bajt označavaju početni cilindar i sektor tvrdog diska (na slici 7 prikazano je na koji način su spremljeni bitovi koji označavaju cilindar i sektor). Peti bajt je vrlo bitan za forenzičku analizu, budući da određuje kojim datotečnim sustavom je formatirana particija. Oznake za FAT32 particije su [5]: 0Bh 0Ch Šesti, sedmi i osmi bajt označavaju završnu glavu, cilindar i sektor tvrdog diska. Idućih 4 bajta (9.-12.) označava početni sektor particije zapisan u little-endian formatu. Zadnjih 4 bajta u zapisu particije označava ukupan broj sektora koje sadrži particija, također su zapisani u little-endian formatu [5]. Slika 7: Bitovi koji označavaju početni/završni cilindar i sektor tvrdog diska [5] 5
3. Analiza particija FAT32 sustava 3.1 Korištenje više particija Iako korištenje više particija u FAT32 sustavu nije vjerojatno kao kod FAT16 sustava, još uvijek radi na isti način. Prva particija je primarna, a sve ostalo je pohranjeno u proširenoj particiji. Prvi zapis u tablici particija prikazuje gdje se nalazi primarna particija, a drugi zapis prikazuje gdje se nalazi cijela proširena particija (koja može uključivati više od jedne particije). Za čitanje više particija, potrebno je otići na početak proširene particije te pročitati prvi sektor [5]. Proširena particija ima svoju tablicu particija, pri čemu je prvi zapis iduća particija, a ako postoji još koja dodatna particija, postoji i drugi zapis koji pokazuje na drugu proširenu particiju (isto kao u prošlom slučaju, postupak se ponavlja za svaku dodatnu particiju) [5]. 3.2 FAT32 Boot record Informacije o boot recordu nalaze se u prvom sektoru svake particije (označen sa 4 bajta unutar zapisa particije u MBR-u). Prvih 11 bajtova označavaju naredbu za skok te identifikator sustava, oni nisu bitni za forenzičku analizu. Bajtovi na lokacijama 0Bh-0Ch označavaju broj bajtova po sektoru. Idući bajt označava broj sektora u klasteru. Bajtovi na lokacijama 0Eh-0Fh označavaju broj rezerviranih sektora, odnosno saznajemo nakon koliko sektora od boot sektora se nalaze tablice za alokaciju datoteka, stoga su ovo dva vrlo važna bajta kod analize. Bajt na lokaciji 10h označava broj kopija tablice za alokaciju datoteka (ako je vrijednost 2, to znači da postoji original i jedna kopija). Broj sektora od kojih je sastavljena tablica za alokaciju datoteka zapisan je na lokacijama 24h-27h [5]. Pomoću informacija koje dobijemo proučavanjem boot recorda, možemo otkriti položaj korijenskog direktorija [6]: prvi sektor FAT-a + (broj FAT kopija)*(veličina FAT) Korijenski direktorij sadrži datoteke i direktorije koji se nalaze na hijerarhijski najnižoj razini memorije (C: u Windowsima ili / u Unix sustavima). 6
Slika 8: FAT 32 boot record 7
4. Zaključak Forenzička analiza FAT32 datotečnog sustava sastoji se od dva dijela: analize Master Boot Recorda te analize same particije nakon što saznamo da se radi o FAT32 sustavu. Iz Master Boot Recorda saznajemo važne informacije, poput: pronalaska aktivne particije otkrivanje datotečnog sustava particije početnog sektora particije veličine particije Analizom prvog sektora particije (Boot recorda) saznajemo npr. broj bajtova po sektoru, broj sektora u klasteru, te položaj korijenskog direktorija. Nakon otkrivanja pozicije korijenskog direktorija, moguće je dohvatiti sve datoteke i direktorije unutar particije. 8
5. Literatura [1] Luka Ruklić, Predrag Pale, Forenzika datotečnih sustava, http://www.fer.unizg.hr/_download/repository/racfor-filesystem-handouts-v10- pp.pdf, 08.01.2017. [2] Random and Sequential Data Access, Random and Sequential Data Access, https://technet.microsoft.com/en-us/library/cc938619.aspx, 08.01.2017. [3] Proceedings, National Computer Conference and Exposition (1957), https://books.google.hr/books?id=lqqraqaaiaaj&redir_esc=y, 08.01.2017. [4] Difference between Sequential and Random Access operations, Difference between Sequential and Random Access operations, http://kb.sandisk.com/app/answers/detail/a_id/8150/~/difference-between-sequentialand-random-access-operations, 08.01.2017. [5], FAT32 Structure Information, 05.08.2016., FAT32 Structure Information MBR, FAT Boot sector introduction, http://www.easeus.com/resource/fat32-diskstructure.htm, 08.01.2017. [6] FAT16 primjer, http://www.fer.unizg.hr/_download/repository/fat16.pdf, 08.01.2017. 9