15
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA RAČUNALNA FORENZIKA - SEMINARSKI RAD APFS DATOTEČNI SUSTAV Zvonimir Gračak Zagreb, siječanj 2018.

APFS DATOTEČNI SUSTAV - nevena.lss.hrnevena.lss.hr/recordings/fer/predmeti/racfor/2018/seminari/zgracak/seminar.pdf · sveuČiliŠte u zagrebu fakultet elektrotehnike i raČunarstva

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

RAČUNALNA FORENZIKA - SEMINARSKI RAD

APFS DATOTEČNI SUSTAV

Zvonimir Gračak

Zagreb, siječanj 2018.

Sadržaj

1. Uvod .................................................................................................................................................... 1

2. Organizacija APFS datotečnog sustava ........................................................................................ 2

2.1. Superblok spremnika ................................................................................................................ 4

2.2. Opisnik superbloka kontrolne točke ....................................................................................... 4

2.3. Struktura bitovne mape ............................................................................................................ 4

2.4. Superblok particije .................................................................................................................... 4

2.5. B-stablo datoteka i mapa ......................................................................................................... 5

2.6. Prošireno B-stablo .................................................................................................................... 5

2.7. Snimke ........................................................................................................................................ 5

2.8. Kontrolne točke ......................................................................................................................... 5

3. Karakteristike APFS-a....................................................................................................................... 6

3.1. Izvorna podrška za enkripciju ................................................................................................. 6

3.2. Snimke ........................................................................................................................................ 7

3.3. Sparse datoteke ........................................................................................................................ 7

3.4. Dijeljenje prostora (Space sharing) ........................................................................................ 8

3.5. Brzo dimenzioniranje direktorija ............................................................................................. 9

3.6. Kloniranje ................................................................................................................................... 9

4. Usporedba s HFS+ .......................................................................................................................... 10

5. Zaključak ........................................................................................................................................... 12

6. Literatura ........................................................................................................................................... 13

1

1. Uvod

Svako računalo sadrži trajnu memoriju koja čuva podatke i nakon gašenja sustava.

Kada se govori o trajnoj memoriji računala, najčešće se misli na diskove, memorijske

kartice ili USB memorije. Svaka trajna memorija mora biti oblikovana u datotečni sustav

kako bi računalo moglo upravljati memorijom i prepoznati značenje svakog pojedinog bita.

Datotečni sustav je apstrakcija, odnosno organizacijska shema za trajne memorije

napravljena za potrebe organiziranja, spremanja i dohvaćanja podataka te tako

omogućuje računalu rad s datotekama ili podacima. [1]

Kod Macintosh računala, 1985. Apple je predstavio tada novi datotečni sustav Mac

OS Standard ili skraćeno HFS. S velikim napretkom računala i povećanja kapaciteta

same memorije, potrebno je bilo unaprijediti i datotečni sustav, pa je već 1998. Apple

predstavio novi datotečni sustav zvan Mac OS Extended ili skraćeno HFS+. Tada su

najveće izmjene bile u duljini adresa i alokacijskih tablica, odnosno počele su se koristiti

adrese duljine 32 bita umjesto dotadašnjih 16 bita, čime se počeo efikasnije koristiti

diskovni prostor te je dobivena podrška za manipulaciju velikim datotekama. HFS+

datotečni sustav, iako mnogo kritiziran zbog svojih nedostataka i problema, Apple je u

svojim Macintosh računalima koristio sve do danas. Naime, u 2017. godini, Apple je izdao

ažuriranje za operativne sustave macOS i iOS u kojem uređaje prebacuje sa HFS+

datotečnog sustava na novi Apple File System, ili skraćeno APFS.

APFS je optimiziran za Flash i SSD memoriju s primarnim fokusom na enkripciju

podataka, no može raditi i na tradicionalnim hard diskovima. Cilj APFS datotečnog

sustava je riješiti ključne nedostatke koje HFS+ datotečni sustav ima u usporedbi s

modernijim datotečnim sustavima kao što su ZFS i NTFS. Cilj ovog seminarskog rada je

analiza APFS datotečnog sustava te njegovih prednosti i nedostataka.

2

2. Organizacija APFS datotečnog sustava

Organizacija APFS datotečnog sustava vodi se unutar tzv. APFS spremnika. On

sadrži ujedno i meta-podatke i sadržaje za sve vrste struktura, kao što su datoteke i mape.

Struktura APFS spremnika može se vidjeti na slici 1. Sve operacije koje se izvode unutar

APFS datotečnog sustava su atomarne, odnosno za svaku operaciju vrijedi da ili će se

operacija izvršiti u potpunosti ili se neće uopće izvršiti. Apple je ovu karakteristiku nazvao

Atomic Safe-Save te je ona moguća iz razloga što je APFS copy-on-write datotečni sustav

što znači da je prije svake izmjene svaki blok kopiran i time je sačuvana povijest svih

nepromijenjenih datoteka i podatkovnih struktura. Cijeli taj proces odvija se pomoću

kontrolnih točaka (eng. checkpoints) na način da svaki put kada se sistemski podaci

datoteke prenesu u APFS spremnik, stvara se nova kontrolna točka. Svaka kontrolna

točka ima svoj superblok (eng. Checkpoint Superblock, skraćeno CSB). Tokom procesa,

zadnji nastali CSB postaje glavni superblok (eng. Main Superblock, skraćeno MSB) koji

se sastoji od podskupa više superblokova kontrolnih točaka. Svi superblokovi su

ulančano povezani, tako da svaki superblok kontrolne točke zna koji mu je prethodni, a

koji sljedeći superblok. Glavni superblok zna gdje se nalazi originalni superblok kontrolne

točke. [2]

Slika 1. APFS spremnik1

1 Izvor slike: https://www.researchgate.net/figure/319573636_fig1_Fig-1-APFS-areas

3

APFS spremnik podijeljen je u više particija koji predstavljaju logički dio spremnika.

Kako se u tom slučaju može doći do korištenja više od 4 fizičkih particija nad diskom,

spremnik je definiran nad GUID particijskoj tablici, skraćeno GPT. Particijska tablica je

opisna tablica za particije na fizičkom disku koju održava operacijski sustav opisujući

svaku pojedinu particiju koja se nalazi na tom disku. [3] GUID particijska tablica je

varijanta particijske tablice čije su glavne karakteristike da svaka particija ima globalno

jedinstveni identifikator (GUID) te da nema ograničenja na broj i veličine particija.

Struktura GUID particijske tablice može se vidjeti na slici 2. [4]

Slika 2. Struktura GUID particijske tablice2

2 Izvor slike: https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID_Partition_Table_Scheme.svg/400px-GUID_Partition_Table_Scheme.svg.png

4

Glavne komponente u organizaciji APFS datotečnog sustava su superblok spremnika,

opis superbloka kontrolne točke, bitmap struktura, superblok particije, B-stablo datoteka

i mapa, prošireno B-stablo, snimke te kontrolne točke. [2]

2.1. Superblok spremnika

Superblok spremnika sadrži općenite informacije o cijelom APFS spremniku, kao što

su ograničenja veličine bloka, ukupan broj blokova te identifikatore blokova svih particija.

Ovaj superblok je ujedno i najvišeg stupnja u hijerarhiji organizacije. [2]

2.2. Opisnik superbloka kontrolne točke

Sljedeći blok u hijerarhiji je opisnik superbloka kontrolne točke. Ovaj blok sadrži

informacije o meta-podacima te se nalazi neposredno prije svakog superbloka kontrolne

točke. Ako se gleda s aspekta forenzičke analize, najbitnija informacija koja se može

pronaći u ovom bloku je lokacija strukture bitovne mape (eng. bitmap). [2]

2.3. Struktura bitovne mape

Bitovna mapa služi za alokaciju datoteka na način da se zapisuju informacije o

korištenim i nekorištenim blokovima. Strukturirano je kao polje byte-ova u kojem svaki bit

označava jedan podatkovni blok. U slučaju da je bit postavljen na nulu, blok se ne koristi,

a slučaju kada je bit postavljen na jedinicu, blok se koristi. [2]

2.4. Superblok particije

Superblok particije postoji za svaku particiju koja postoji na disku te je ujedno i najviša

razina u hijerarhiji s aspekta analize same particije. Ona sadrži sve informacije o samoj

particiji, kao što su naziv particije, njen identifikator i vremenska oznaka. [2]

5

2.5. B-stablo datoteka i mapa

B-stablo zapisuje sve datoteke i mape koje se nalaze unutar te particije. [2]

2.6. Prošireno B-stablo

Riječ je o zasebnom B-stablu unutar particije koje u sebi sadrži proširene informacije

o sadržajima svih datoteka, kao što su informacije o tome gdje sadržaj podataka počinje

i koliko blokova zauzima. [2]

2.7. Snimke

Snimke (eng. snapshot) predstavljaju spremljeno korisničko stanje sustava u trenutku

kada je snimka napravljena. Datoteke koje su pokrivene snimkama ne mogu se ukloniti

iz sustava sve dok se ne uklone same snimke. [2]

2.8. Kontrolne točke

Kao što je prethodno spomenuto, kontrolne točke predstavljaju povijesno stanje APFS

spremnika. Svaka kontrolna točka započinje novim superblokom te trenutno stanje

uglavnom uvijek predstavlja zadnje stvoreni superblok kontrolne točke. Kontrolna točka

sadrži meta-podatke i spremnika i particija. Ono što razlikuje kontrolne točke od snimke

je to što kontrolne točke nastaju sistemski, tokom izvođenja operacija nad APFS

spremnikom, a snimke nastaju u trenutku kada ih sam korisnik stvori. [2]

6

3. Karakteristike APFS-a

Glavne karakteristike APFS-a su uglavnom nadogradnje na HFS+ i rješavanje

problema koje je dotični do tada imao. Kao najbitnija značajka ističu se poboljšanja u

integritetu podataka. Naime, ukoliko podaci na nekom mediju stoje određeni period

vremena, problemi u hardware-u mogu oštetiti te podatke na način da ih samo malo

promijene ili kompletno unište. Moderniji datotečni sustavi u svrhu prevencije takvog

scenarija uvode zaštitnu sumu (eng. checksum), odnosno provode matematičku funkciju

nad dijelovima podataka i spremaju rezultat te funkcije. Svaki sljedeći put kada se idu

čitati ti podaci, prvo će se ponovno provesti matematička funkcija nad tim podacima te

ukoliko se dobiveni rezultat podudara sa spremljenim rezultatom, znači da podaci nisu

oštećeni. U slučaju da se rezultati ne podudaraju, riječ je o oštećenim podacima te se

dohvaća njihova kopija. Za razliku od ostalih datotečnih sustava, APFS provodi zaštitnu

sumu samo nad vlastitim meta-podacima, a ne i na korisničkim podacima što rezultira

manjim zauzećem diskovnog prostora, no i dalje slabijim integritetom korisničkih

podataka. Od ostalih karakteristika, najviše se ističu snimke, sparse datoteke, izvorna

podrška za enkripciju, dijeljenje prostora, brzo dimenzioniranje direktorija te kloniranje.

[5]

3.1. Izvorna podrška za enkripciju

S APFS datotečnim sustavom, Macintosh računala mogu se enkriptirati na više

načina. Jedan od načina je korištenje ugrađene FileVault aplikacije za enkripciju

kompletnog diska ili pomoću korištenja aplikacija treće strane za enkripciju pojedinih

datoteka. Dodatno, APFS donosi podršku za enkripciju pojedinih datoteka u ovisnosti o

razini sigurnosti koju korisnik odredi. Tako korisnik može odrediti želi li imati datoteku ili

mapu bez enkripcije, enkripciju jednim ključem ili enkripciju s višestrukim ključevima.

Enkripcija s višestrukim ključevima organizirana je na način da su pojedine datoteke

kriptirane jednim ključem, a osjetljivi meta-podaci drugim ključem. Navedena podrška

vrijedi i za sve ostale podržane Apple uređaje koji su prebačeni na APFS datotečni sustav.

[6]

7

3.2. Snimke

Snimka sustava je nova funkcionalnost koja dolazi APFS datotečnim sustavom, a ona

omogućava korisnicima brz povrat podataka. Snimka sustava predstavlja read-only

instancu sustava koja korisniku daje mogućnost povratka sustava u stanje kakvo je bilo

kada je snimka sustava stvorena. Prva snimka će uvijek biti snimka cijelog sustava

(diska), a zatim će svaka sljedeća snimka sadržavati samo promjene koje su nastale u

odnosu na prethodnu. Time APFS uvelike štedi na prostoru i postiže brzi povrat podataka

u slučaju kada za to bude potrebe. [6]

3.3. Sparse datoteke

Sparse datoteka u računarskoj znanosti predstavlja tip datoteke čija je namjera

efikasno iskorištavanje prostora datotečnog sustava. U slučaju kada postoji velika

datoteka koja u svom zapisu ima puno praznih blokova ispunjenih sa nula byte-ova (u

heksadecimalnom zapisu '\x00'), spremanje tih praznih blokova nije efikasno jer

nepotrebno zauzimaju diskovni prostor. Sparse datoteka funkcionira na način da se

unutar nje zapišu meta-podaci koji predstavljaju te prazne blokove te se na taj način iz

inicijalne datoteke mogu izbaciti prazni blokovi i zapisati samo oni blokovi koji sadrže

podatke te tako uvelike uštediti fizički memorijski prostor. Kada proces čita sparse

datoteku, datotečni sustav dinamički konvertira meta-podatke koji predstavljaju prazne

blokove u blokove ispunjene sa nula byte-ova. [7] Ilustrativni prikaz rada sparse datoteke

može se vidjeti na slici 3.

8

Slika 3. Prikaz zauzeća diskovnog prostora bez i sa korištenjem sparse datoteke3

3.4. Dijeljenje prostora (Space sharing)

Kod većine datotečnih sustava, ukoliko korisnik želi napraviti više particija na jednom

fizičkom disku, korisnik mora unaprijed odrediti koliko particija želi i koliko diskovnog

prostora želi alocirati pojedinoj particiji. To se kasnije može pokazati pogrešnom

procjenom, pa korisnik može završiti sa particijom na kojoj nedostaje diskovnog prostora

i particijom na kojoj je diskovni prostor neiskorišten (višak). U tom trenutku korisnik treba

ponovno alocirati diskovni prostor pojedine particije što često može biti problematično.

Kod APFS datotečnog sustava korisnik ne treba brinuti o alociranju diskovnog prostora

pojedinoj particiji. Naime, svaka particija unutar APFS spremnika dijeli međusobno

zajednički diskovni prostor na način da svaka particija u bilo kojem trenutku uzima onoliko

prostora koliko joj treba. [5]

3 Izvor slike: https://technet.microsoft.com/en-us/library/bb457112.f13zs11_big(l=en-us).jpg

9

3.5. Brzo dimenzioniranje direktorija

Korisnici prilikom korištenja računala često žele provjeriti veličinu nekog direktorija

kako bi vidjeli koliko diskovnog prostora zauzimaju datoteke unutar njega. Kod većine

datotečnih sustava, taj proces funkcionira na način da se provjeravaju meta-podaci svake

pojedine datoteke unutar tog direktorija kako bi se izračunala ukupna veličina direktorija.

Ukoliko se radi o iznimno velikom direktoriju, taj proces može potrajati i do nekoliko

minuta. Kod APFS datotečnog sustava, upravo kako bi se smanjilo vrijeme čekanja na

informaciju o veličini direktorija, za svaki pojedini direktorij spremaju se meta-podaci koji

sadrže informacije o veličini direktorija i broju datoteka unutar njega. Na taj način je

postignuto brzo dimenzioniranje direktorija kada je za to ukazana potreba. [5]

3.6. Kloniranje

Kako bi se diskovni prostor mogao još efikasnije iskoristiti, prilikom kopiranja datoteke

ili direktorija na neko drugo mjesto, APFS u pozadini zapravo provodi kloniranje.

Konkretnije, APFS samo ažurira meta-podatke te datoteke ili direktorija na način da u njih

zapisuje da se oni nalaze na dva ili više različitih mjesta na istom disku. Ukoliko korisnik

krene izvršavati izmjene nad jednom od kopija, APFS sprema i izmjene i originalni sadržaj

kako se originalna datoteka ne bi promijenila. Osim što kloniranje zauzima manje

diskovnog prostora, samo ''kopiranje'' s jednog mjesta na drugo se izvršava skoro pa u

istom trenutku. [5]

10

4. Usporedba s HFS+

Iako APFS donosi niz novih funkcionalnosti spomenutih u prethodnom poglavlju u

odnosu na prethodni HFS+ datotečni sustav, valja napomenuti kako je trenutno APFS

optimiziran za rad sa SSD diskovima i Flash memorijama, dok je za klasične, mehaničke

i hibridne hard diskove, HFS+ datotečni sustav ipak bolja solucija. Naime, ukoliko se za

primjer uzme prethodno spomenuto kloniranje, gdje se u stvarnosti ne kopiraju podaci

već se samo ažuriraju meta-podaci koje APFS održava na drugom mjestu, prilikom čitanja

ili pisanja kod SSD diskova i Flash memorije zbog njihove arhitekture to neće predstavljati

nikakav problem. No, kod mehaničkih hard diskova proces čitanja i pisanja izazvati će

pad u performansama naspram HFS+ datotečnog sustava iz razloga što se podaci koji

se moraju zapisati ili pročitati ne nalaze na jednom mjestu, već su raspršeni u

fragmentima po disku. [8]

Osim prethodno navedenih prednosti, APFS datotečni sustav ima i nekoliko

nedostataka. Kao jedan od nedostataka, prethodno je već spomenuto da APFS računa

zaštitnu sumu samo za vlastite meta-podatke, dok se taj postupak za korisnikove podatke

ne provodi. Dodatno, trenutno nije podržana ni kompresija te ne može iskoristiti NVRAM

za spremanje podataka. [9]

Usporedba ključnih karakteristika HFS+ i APFS datotečnog sustava dana je u tablici 1.

11

Tablica 1. Usporedba HFS+ i APFS datotečnih sustava [10]

Mac OS Extended (HFS+) Apple File System (APFS)

Broj alociranih blokova 232 (4 milijardi) 263 (9 kvintilijuna)

Identifikatori datoteka 32-bit 64-bit

Najveća veličina

datoteke

263 byte-a 263 byte-a

Granularnost

vremenske oznake

1 sekunda 1 nanosekunda

Copy-on-write metoda Ne Da

Zaštićeno od pada

sustava

Djelomično Da

Kloniranje datoteka i

mapa

Ne Da

Snimke Ne Da

Dijeljenje prostora Ne Da

Izvorna podrška za

enkripciju

Ne Da

Sparse datoteke Ne Da

Brzo dimenzioniranje

direktorija

Ne Da

12

5. Zaključak

S napretkom tehnologije, pogotovo u računarskom svijetu, Apple je morao donijeti

promjene u radu datotečnih sustava kako bi se prilagodio današnjim veličinama datoteka

i brzinama. Naime, datotečni sustav koji prethodi APFS-u, HFS/HFS+, koristio se u

Macintosh računalima preko 30 godina. HFS/HFS+ dizajniran je u vrijeme kada su bili

aktualne floppy diskete, kada su se većina datoteka izražavale u nekoliko kilobyte-a ili

megabyte-a.

APFS datotečni sustav je osvježenje u Macintosh svijetu zbog niza noviteta i

funkcionalnosti koje dovodi u odnosu na svog prethodnika. Iako je trenutno optimiziran

za rad s SSD i Flash memorijom, u budućnosti se očekuje i bolja podrška za tradicionalne

hard diskove. Također, osim brojnih prednosti koje su navedene, ima i svojih

nedostataka, tako da pred sobom ima još podosta prostora za razvoj i implementaciju

funkcionalnosti koje nedostaju.

S aspekta forenzičke analize, s obzirom kako je riječ o novijem datotečnom sustavu,

do ovoga trenutka ne postoji alat kojim bi se moglo dobiti detaljnije informacije o samom

sustavu i njegovim podacima.

13

6. Literatura

[1] Luka Ruklić, Predrag Pale, Forenzika datotečnih sustava (2015),

http://www.fer.unizg.hr/_download/repository/RacFor-Filesystem-Handouts-v10-pp.pdf. Datum

pristupa: 21.01.2018.

[2] Hansen, K.H., Toolan, F., Decoding the APFS file system, Digital Investigation (2017),

http://dx.doi.org/10.1016/j.diin.2017.07.003. Datuma pristupa: 21.01.2018.

[3] Partition Table, https://en.wikipedia.org/wiki/Partition_table. Datum pristupa: 21.01.2018.

[4] GUID Partition Table, https://en.wikipedia.org/wiki/GUID_Partition_Table. Datum pristupa:

21.01.2018.

[5] Andrew Cunningham (2017), macOS 10.13 High Sierra: The Ars Technica review,

https://arstechnica.com/gadgets/2017/09/macos-10-13-high-sierra-the-ars-technica-review/6/. Datum

pristupa: 21.01.2018.

[6] Steve Sande (2016), Tech 101: Explaining the new Apple File System (APFS),

https://blog.macsales.com/36808-tech-101-we-explain-the-new-apple-file-system-apfs. Datum pristupa:

22.02.2018.

[7] Sparse File, https://en.wikipedia.org/wiki/Sparse_file. Datum pristupa: 22.02.2018.

[8] Larry Jordan (2017), APFS is Not Yet Ready for Traditional Hard Drives,

https://larryjordan.com/blog/apfs-is-not-yet-ready-for-traditional-hard-drives/. Datum pristupa:

22.02.2018.

[9] Jesus Vigo (2018), HFS+ v. APFS: Which Apple file system is better?,

https://www.techrepublic.com/article/apfs-vs-hfs-which-apple-filesystem-is-better/. Datum pristupa:

22.02.2018.

[10] Apple File System Guide, Volume Format Comparison,

https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide

/VolumeFormatComparison/VolumeFormatComparison.html#//apple_ref/doc/uid/TP40016999-CH8-

DontLinkElementID_21. Datum pristupa: 22.02.2018.