apfs datoteČni sustav -...
TRANSCRIPT
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.