Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
SEMINAR
FAT16 datotečni sustav
Marko Pacadi
Voditelj: doc. dr. sc. Predrag Pale
Zagreb, siječanj, 2019.
Sadržaj
1. Uvod ..................................................................................................................... 3
1.1 Datotečni sustav............................................................................................ 3
2. FAT datotečni sustav............................................................................................ 5
2.1 Memorijska struktura s FAT sustava ............................................................. 5
3. Analiza FAT16 memorijskog prostora .................................................................. 6
3.1 MBR .............................................................................................................. 6
3.2 FAT16 Boot sektor (FAT16 Boot Record) ..................................................... 8
3.3 Korijenski direktorija ...................................................................................... 9
3.4 FAT tablica .................................................................................................... 9
3.5 Klasteri ........................................................................................................ 10
4. Razlike FAT16 i FAT32 standarda ..................................................................... 11
5. Zaključak ............................................................................................................ 12
6. Literatura ............................................................................................................ 13
3
1. Uvod
Računalna forenzika je znanost koja usko spada u područje digitalne forenzike. Sama digitalna forenzika bavi se skupljanjem, pretraživanje te analizom digitalnih tragova na nekom digitalnom mediju. Najjednostavniji digitalni medij za računalnu forenziku je tvrdi disk. Razlog njegove jednostavnosti je mogućnost trajnog pohranjivanja podataka i programa te njihovo očuvanje prilikom gašenja računala. Iako je na disku sve trajno sačuvano postoji par glavnih izazova s kojima se forenzičar suočava prilikom analize diska. Jedan izazov bi bio kako vratiti obrisane podatke te pronalazak i izvlačenje korisnih podataka s tvrdog diska. Iako je ovo konkretan izazov prilikom analize medija, zapravo je forenzičaru glavni izazov kako interpretirati strukturu zapisa na mediju. Za rješavanje ovog problema potrebno je znati s kojim tipom datotečnog sustava radi medij za pohranu podataka. Bez poznavanje te činjenice teško je i gotovo nemoguće analizirati bilo koji medij za pohranu podataka.
1.1 Datotečni sustav
Datotečni sustav je organizacijska shema napravljena za potrebe organiziranja, spremanja i dohvaćanja podataka iz memorije. Uz formalnu definiciju, datotečni sustav može se opisati i kao apstrakcija jer su podaci na mediju organizirani u apstrakcijska polja. Podaci koje korisnik vidi na računalu predstavljaju najvišu razinu apstrakcije dok sami medij za pohranu predstavlja najnižu razinu apstrakcije. Zbog toga je posao forenzičara da analizira i interpretira podatke od najniže prema višoj razini. Na slici 1 vidi se prikaz apstrakcijskih polja datotečnog sustava.
Slika 1 Apstracija datotečnog sustava [1]
4
Podaci na mediju uglavnom su sekvencijski ili nasumično spremljeni. Kod sekvencijskog spremanja podaci se nalaze jedan iza drugog dok su kod nasumičnog podaci nasumično raspoređeni na mediju. Primjer medija s nasumičnim spremanjem koji ujedno predstavlja najnižu raznu apstrakcije je tvrdi disk. Bitni dijelovi diska su:
• Glava → uređaj s kojim se podaci čitaju i pišu na disk
• Staza → cirkularni uzorak na ploči diska na kojoj se nalaze podaci
• Cilindar → sastoji se od paralelnih staza koje se nalaze na dvije ili više diskovnih ploča
• Sektor → zauzima dio podataka na traci i čini najmanju moguću količinu podataka koji se može zapisati na disk
Na slici 2 vidi se grafički prikaz fizičke organizacije podataka na disku.
Slika 2 Fizička organizacija podataka na disku [3]
Kod datotečnih sustava još treba napomenuti da su neovisni o mediju na kojem se nalaze. Također se na istom mediju i na različitim particijama mogu nalaziti različiti datotečni sustavi. Pojedini datotečni sustavi razlikuju se po svojstvima i po fizičkom rasporedu na mediju. Neki od poznatijih sustava za Windows OS su FAT12, FAT16, FAT32, exFAT te NTFS, dok se za Linux OS primjenjuju ext, ext2, ext3 te ext4.
5
2. FAT datotečni sustav
FAT (engl. File Allocation Table) je jednostavni datotečni sustav koji služi za održavanje i organizaciju podataka na disku. Ime je dobilo po bitnoj komponenti koja se nalazi u njegovoj strukturi, a to je tablica za alokaciju datoteka. Originalni FAT standard tj. FAT12 dizajniran je za organizaciju tvrdih diskova i koristi je ukupno 12 bitova. S porastom veličine memorije na tvrdim diskovima došlo je do potrebe da se dizajnira FAT16 standard koji koristi 16 bita. Taj standard se najčešće koristi kod prijenosnih memorija kao što su USB ili SD kartica za digitalnu kameru. Postoji još i FAT32 standard koji se upotrebljava kod većih memorija jer koristi 32 bita. Ovi standardi po svojoj izradi su vrlo jednostavni što rezultira njihovom smanjenom sigurnošću. Zbog toga se rijetko koriste kod većih memorija kod koji je bitno da su podaci sigurni te se najčešće koriste kod manjih prijenosnih memorija. Jedino se FAT32 još uvijek koristi kod većih memorija no i on se naknadno zamjenjuje uporabom NTFS datotečnog sustava koji je sigurniji i efikasnije iskorištava prostor memorije.
2.1 Memorijska struktura s FAT sustava
Strukturu memorijskog prostora s FAT datotečnim sustavom čine MBR(engl. Master Boot Record), FAT Boot sektor, FAT tablica, korijenski direktorij te klasteri s podacima. Tablica 1 prikazuje jednostavnu strukturu FAT sustava.
Tablica 1 FAT struktura [5]
Iz tablice 1 može se primijetiti da svaki blok ovisi o informacijama iz prethodnog bloka. Informacije u tim blokovima ovise o protokolima pojedinog FAT standarda. Svaki FAT standard određuje različite lokacije adresa i sadržaj u pojedinim blokovima te se zbog toga ti standardi razlikuju. Kroz analizu FAT16 standarda, u sljedećem je poglavlju prikazana jedna od mogućih struktura FAT datotečnih sustava.
Memorijski uređaj
Master Boot Record
FAT Boot sektor
FAT tablica
Korijenski direktorij
Klasteri
6
3. Analiza FAT16 memorijskog prostora
3.1 MBR
MBR (Master Boot Record) je memorijski sektor koji se uvijek nalazi na samome početku memorije (memorijska lokacija 0) i zauzima ukupno 512 bajta. To je prvi set podataka koje računalo pročita prilikom paljenja i zbog toga mu je glavna svrha pokretanje operacijskog sustava. U tablici 2 prikazana je struktura MBR.
Tablica 2 Struktura MBR [5]
Pomak Opis Veličina
000h Bootstrap kod 446 bajta
1BEh
Particijska tablica
Particija 1 16 bajta
1CEh Particija 2 16 bajta
1DEh Particija 3 16 bajta
1EEh Particija 4 16 bajta
1FEh Magični broj (55h AAh) 2 bajta
Bootstrap kod je izvršivi kod kojem je svrha pronaći aktivnu (bootabilnu) particiju na disku skeniranjem particijskih tablica. Tamo saznaje lokaciju početnog sektor aktivne particije i vrši kopiranje programa u memoriju računala. Zatim pokreče učitani program tj. pokreče operativni sustav na računalu. Sadržaj particijske tablice prikazan je u tablici 3.
Na kraju MBR nalazi se magični broj. To je polje od 2 bajta kojem je vrijednost 55h AAh. Njime se označava kraj MBR sektora na memorijskom prostoru.
7
Tablica 3 Stuktura particijske tablice [5]
Pomak Opis Veličina
00h Stanje particije 1 bajt
01h Početak pozicija glava 1 bajt
02h Početna pozicija cilindra/sektora
2 bajta
04h Tip particije 1 bajt
05h Kraj pozicije glave 1 bajt
06h Kraj pozicije cilindra/sektora
2 bajta
08h Početni sektor 4 bajta
0Ch Broj sektora u particiji 4 bajta
Kod particijske tablice treba napomenuti da su polja vezana uz glavu, cilindar i sektor relevantna samo ako se radi o mehaničkom tipu tvrdog diska. Flash memorije ili SSD diskovi ne sadrže ove dijelove.
8
3.2 FAT16 Boot sektor
MBR unutra FAT datotečnog sustava pruža informaciju gdje se nalazi prva particija pomoću particijske tablice. Na toj prvoj particiji nalazi se FAT16 Boot sektor koji sadrži izvršni kod operacijskog sustava te informacije korisne za izračunavanje veličine i položaja drugih regija u memoriji. Veličina boot sektora je 512 bajta i nalazi se na početku particije. Tablica 4 prikazuje strukturu FAT16 boot sektora.
Tablica 4 Struktura FAT16 boot sektora [5]
Pomak Opis Veličina
000h Naredba skoka 1 bajt
003h OEM naziv 8 bajta
00Bh Broj byte-ova po sektoru 2 bajta
00Dh Broj sektora po klasteru 1 bajt
00Eh Broj rezerviranih sektora 2 bajta
010h Broj FAT kopija 1 bajt
011h Broj korijenskih direktorija 2 bajta
013h Broj sektora <32MB 2 bajta
015h Opisnik medija 1 bajt
016h Broj sektora unutar FAT 2 bajta
01Ah Broj glava 2 bajta
01Ch Broj skrivenih sektora u particiji
4 bajta
020h Broj sektora >=32MB 4 bajta
024h Drive broj 2 bajta
026h Proširen Boot potpis 1 bajt
027h Serijski broj particije 4 bajta
02Bh Volume oznaka particije 11 bajta
036h FAT naziv (FAT16) 8 bajta
03Eh Izvršni kod 448 bajta
1FEh Magični broj (55h AAh) 2 bajta
9
3.3 Korijenski direktorija
Korijenski direktorija je područje memorije koju čini sektor (ili više sektora) koji sadrže 32 bajtne zapise o datotekama sadržanim u korijenskom direktoriju. Ti zapisi sadrže podatke vezane uz datoteke kao npr. naziv datoteke i ekstenzija datoteke. Maksimalno ograničenje je da se unutar korijenskog direktorija može nalaziti ukupno 512 zapisa. U tablici 5 je dan prikaz strukture datoteke zapisan u korijenskom direktoriju.
Tablica 5 Struktura datoteke [5]
Pomak Opis Veličina
00h Naziv datoteke 8 bajta
08h Ekstenzija datoteke 3 bajta
0Bh Atributi datoteke 1 bajt
16h Vrijeme stvaranja 2 bajta
18h Datum stvaranja 2 bajta
1Ah Početni klaste 2 bajta
1Ch Veličina datoteke 4 bajta
3.4 FAT tablica
FAT tablica sadrži lokacije svih dijelova datoteka i kako su ti dijelovi povezani. To je postignuto tako da tablica sadrži unos za svaki klaster na particiji koji sadrži podatake. Svaki klaster u sebi sadrži pokazivač na idući klaster u datoteci ili oznaku za kraj datoteke (FFFFh). Tako se stvara povezana lista kojom se tvori datoteka. Treba napomenuti da u memoriji uvijek postoje dvije (ili više) kopija FAT tablice kako bi se tablica očuvala u slučaju da se u njoj dogodi pogreška. Na slici 3 vidi se grafički prikaz FAT tablice.
Slika 3 Primjer FAT tablice [4]
10
3.5 Klasteri
Klasteri s podacima se u memoriji nalaze neposredno nakon korijenskog direktorija. Bitna stvar kod stvaranja novog upisa u FAT tablicu je da su u memoriji prva dva klastera rezervirana za FAT16 Boot sektor i korijenski direktorij. Također s 0000h se označava otvoreni klaster kako bi FAT tablica prilikom stvaranja novog upisa znala koji je klaster slobodan. Sve bitne informacije o značajkama klastera nalaze se u FAT boot sektoru. U tablici 6 nalazi se popis kodova koji se koriste prilikom unosa klastera u FAT tablicu.
Tablica 6 FAT kodovi za klaster [6]
FAT kod Značenje
0000h Slobodan klaster
0002h – FFEFh Iskorišten, sljedeći klaster datoteke
FFF0h – FFF6h Rezerviran klaster
FFF7h Loš klaster
FFF8h – FFFFh Iskorišten, zadnji klaster datoteke
11
4. Razlike FAT16 i FAT32 standarda
FAT32 standard je nastao nakon FAT16 standarda. Iako oba standarda pripadaju familiji FAT sustava postoje određene razlike među njima. FAT32 ima sličnu strukturu u memoriji kao FAT16, ali prije svega se razlikuju u strukturi FAT boot sektora. Kod FAT32 je porastao i broj zapisa unutar korijenskog direktorija. To je postignuto tako da se korijenski direktorij ne nalazi na fiksnom i ograničenom mjestu iza FAT tablice već se nalazi unutar prostora s podacima. Na slici 4 vidi prikaz struktura FAT16 i FAT32.
Slika 4 Usporedba struktura FAT16 i FAT32 [7]
Kod FAT32 je ograničenje za particiju 2 TB dok je kod FAT16 ograničenje 4 GB. Gledajući ova ograničenja, FAT32 standard prikladniji za korištenje na većim tvrdim diskovima dok je FAT16 prikladniji za korištenje kod malim memorijskih prostora kao flash memorija. Također se smatra da FAT32 iskorištava 10-15% efikasnije memoriju zbog toga što koristi manje klastere.
12
5. Zaključak
Za samu analizu FAT datotečnog sustava potrebno je pogledati nekoliko stvari. Prije svega potrebno je prvo analizirati MBR. Iz MBR-a je moguće saznati točnu lokaciju prve particije u memoriji. Daljnjim pozicioniranjem na particiju potrebno je analizirati FAT Boot sektor. Pomoću njega je moguće utvrditi o kojem se FAT datotečnom sustavu radi te ostale informacije vezane za taj sustav kao npr. broj sektora po klasteru. Forenzičaru je vrlo bitno da sazna o kojem se sustavu radi kako bi što detaljnije mogao iščitat Boot sektor. Nakon prikupljenih informacija iz Boot sektora, moguće je započeti samu analizu memorijskog prostora uz pomoć FAT tablica, korijenskog direktorija i klastera. Ovakvom analizom forenzičar unutar particije može detektirati sve datoteke i direktorije. Također ako je forenzičar upoznat s manama FAT sustava moguće je detektirati pojedina neiskorištena polja u memoriji. Ta polja mogu sadržavati tajne podatke koje bi osoba htjela sakriti. Provodeći ove korake, forenzičar ima mogućnost uspješnog detektiranja skrivenih podataka i otkrivanja tragova o potencijalno sumnjivim radnja koje su spremljene u memoriju.
13
6. Literatura
[1] Nuno Santos, File Systems Forensics, https://fenix.tecnico.ulisboa.pt/downloadFile/1689468335577710/csf-03-part2.pdf
[2] Luka Ruklić, Predrag Pale, Forenzika datotečnih sustava, https://www.fer.unizg.hr/_download/repository/RacFor-Filesystem-Slides-v10-pp.pdf
[3] Leonardo Jelenković, Datotečni sustav, http://www.zemris.fer.hr/~leonardo/os/dodatno/Osnovni_koncepti_OSa/OS_07_datotecni_sustav.pdf
[4] FAT File Systems. FAT32, FAT16, FAT12, http://www.ntfs.com/fat-systems.htm
[5] Allan Evans, Fat16 Interface for MSP430, http://www.digitalspirit.org/file/index.php/obj-download/docs/fat/appnote_fat16.pdf
[6] FAT16 Structure Information, http://home.teleport.com/~brainy/fat16.htm
[7] FAT12 FAT16 FAT32 Layouts Compared, http://www.c-jump.com/CIS24/Slides/FAT/F01_0050_fat12_fat16_fat32_lay.htm