SSD (engl. Solid State Disk) već se dugo koristi kao zamjena na HDD. Dakle, ima identično sučelje prema računalu kao i HDD, što znači da računalo nije svjesno koristi li SSD ili HDD. Novitet koji je SSD uveo je ukidanje pomičnih dijelova. HDD sastoji se od magnetskih ploča, a čitanje i pisanje radi se pomicanjem tzv. glave za čitanje i pisanje. Glava se ne može pomicati sama, već ona stoji na mjestu, a ploča se rotira. SSD uvodi tzv. solid state memoriju, što znači da ne postoje pomični dijelovi u disku. [1]
Iako je u suštini SSD prilično sličan HDD-u, njegova je forenzika složenija. Ovaj seminar opisat će neke od specifičnosti SSD-a zbog kojih se postupak njegove forenzičke analize komplicira.
Prednost SSD-a prednost u odnosu na HDD je veća robusnost. Nije toliko osjetljiv na vibracije i udarce, brži je te zbog ukidanja pokretnih dijelova troši manje energije. Također, budući da SSD koristi poluvodičke čipove, nije osjetljiv na magnetsko polje kao HDD. No, manji mu je kapacitet, skuplji je od HDD-a te je osjetljiviji na visoke temperature. Usprkos tim nedostatcima, danas se koristi znatno češće nego HDD. [1]
Prije detaljnijeg objašnjavanja SSD-a, uvest ćemo neke općenite pojmove za memoriju i diskove.
FET (engl. Field effect transistor) koristi se u poluvodičkim uređajima. On koristi električno polje da bi kontrolirao prolazak struju kroz poluvodič. Ima tri dijela: source, gate i drain. Struja ulazi u source, izlazi na drain, a između njih nalazi se gate. Kad se na gate dovede napon, stvori se električno polje. Ono mijenja vodljivost kanala, stoga se tranzistor može smatrati sklopkom. Njegova građa prikazana je na slici 1. [2]
Slika 1. Građa FET tranzistora [3]
Postoje dva tipa tranzistora: n-kanalni i p-kanalni. Za n-kanalni dovođenje pozitivnog napona privlači elektrone u kanal i time se povećava vodljivost tranzistora. Za p-kanalni tranzistor treba dovesti negativni napon da bi se povećala vodljivost. Njihove oznake prikazane su na slici 2.
Slika 2. Oznake za n-kanalni i p-kanalni FET [4]
Radna memorija može biti statička ili dinamička.
Statička memorija (SRAM, engl. Static Random Access Memory) zadržava memoriju dokle god ima napajanja. Za pohranu koristi bistabile. Naziva se statički RAM jer nema potrebe za periodičkim osvježavanjem memorije kao kod memorije pohranjene u kondenzatorima. Zbog toga je SRAM iznimno brz, no prilično je skup i ne pohranjuje podatke tako gusto kao neke druge vrste radne memorije. Gustoća pohrane je izraz koji se koristi za opis količine bitova koja se može pohraniti na referentni fizički prostor. Što je memorija gušća, potrebno je manje prostora. Zbog svoje visoke cijene i manje gustoće pohrane, SRAM se koristi samo za situacije u kojima je potrebna iznimno mala latencija, primjerice u procesoru računala. Specifično, najčešće se koristi za L2 i L3 priručnu memoriju te u registrima visokih brzina. Koristi se i u drugim uređajima, primjerice kao dio digitalno-analognog pretvarača u grafičkim karticama za koji je također važno da bude brz. [5]
Dinamička radna memorija (engl. DRAM, Direct Random Access Memory) koristi kondenzatore za pohranu. Preciznije, za pohranu jednog bita koristi jedan tranzistor i jedan kondenzator. Kondenzator drži informaciju tako što čuva električni naboj koji se u njega pohrani. Kad je kondenzator napunjen, na krajevima postoji napon, a čitanje tog napona ga prazni. Tranzistor služi za čitanje pohranjene vrijednosti ili pisanje nove. [1]
Ako se dugo ne koriste, kondenzatori se znaju isprazniti i time podatak koji čuvaju nestane. Zato je potrebno periodičko osvježavanje ili punjenje memorije. Ponovno punjenje kondenzatora se najjednostavnije radi čitanjem. Postoji sklopovlje koje periodički čita cijelu memoriju kako bi se osiguralo da se niti jedan kondenzator nije ispraznio od nekorištenja. [1]
No, kao što je rečeno, čitanje podatka prazni kondenzator, stoga ga je potrebno ponovno napuniti. Zato se periodičko čitanje odrađuje sklopom koji pročita kondenzator i odmah upiše u njega pročitanu vrijednost (tzv. sklop čitaj-pa-piši). Tijekom osvježavanja, memorija nije dostupna, stoga se ono radi u protutaktu u odnosu na memoriju. No, ti ciklusi osvježavanja svejedno usporavaju rad memorije i zato je DRAM osjetno sporiji od SRAM-a. Usprkos tome, DRAM se koristi kao primarna radna memorija u računalu radi značajno manje cijene i veće gustoće pohrane od SRAM-a. [5]
SSD koristi tzv. FLASH memoriju. FLASH memorija je vrsta EEPROM (engl. Electronically Erasable Programmable Read Only Memory) čipa.
Ćelije su posložene u mrežu koja se zove memorijsko polje. To znači da su ćelije poredane u pravilne retke i stupce. Na svaki redak spojen je tzv. word line koji služi za odabir retka koji će se čitati. Postoji i bit line koji je spojen na tranzistor. On služi za pisanje podataka u ćeliju ili čitanje podatka iz ćelije.
Ćelija FLASH memorije ima sličnu građu kao i FET tranzistor, samo što se gate sastoji od više dijelova:
Source i drain povezani su kanalom a ispod svega nalaze se n-supstrat i p-supstrat. Slojevi oksida oko floating gatea omogućuju perzistenciju memorije ako ostane bez napajanja. Građa ćelije prikazana je na slici 3. [6]
Slika 3. Građa FLASH ćelije [6]
Upisivanje podatka u ćeliju radi se dovođenjem visokog napona na control gate. Tada elektroni prođu kroz oksidativni sloj do floating gatea. Taj proces naziva se tuneliranje. Ako su elektroni prisutni na floating gateu, tada se promijeni napon koji je potreban da se upali odgovarajući tranzistor. Ako je ćelija prazna, nema elektrona na gateu, i tada će tranzistor biti upaljen, što se interpretira kao 1. Ispunjena ćelija radi promjene potrebnog napona neće biti upaljena i to će interpretirati kao 0. [6]
Brisanje podatka radi se dovođenjem visokog negativnog napona kako bi se elektroni izbili iz gatea. [6]
Dvije vrste FLASH memorije su NOR i NAND ćelije. U oba slučaja ćelije su posložene u memorijsko polje, ali postoji razlika u načinu njihova spajanja.
NOR memorija ima paralelno spojene ćelije, što joj omogućuje brže čitanje i pisanje. Također, dugovječnija je i omogućuje pisanje jednog po jednog bita. No, paralelno spajanje čini sklop složenijim i zahtijeva više prostora, što rezultira manjim kapacitetom i većom cijenom. Zato se koristi samo za specifične primjene poput BIOS-a, spremanja konfiguracija i sl.
NAND memorija ima serijski spojene ćelije. Češće se koristi za pohranu podataka jer je većeg kapaciteta i manje cijene. Veći kapacitet se ostvaruje gušćim slaganjem ćelija u mreži, što je moguće jer nema toliko žica kao u paralelnom spajanju. Njezini nedostatci su što svaka memorijska lokacija ima ograničen broj ciklusa pisanja i čitanja te se prije svakog pisanja memorijska lokacija mora obrisati. Također, podržava samo blokovsko pisanje. [6]
Memorija na HDD-u organizirana je u sektore. FLASH memorija ima sličan pristup. Ona organizira memorijske ćelije u stranice (engl. page), a stranice su organizirane u blokove. Stranice tipično imaju oko 16 kB, a blokovi 8 MB, što znači da jedan blok ima mnogo stranica. [1]
Podatci u SSD-u primarno se pohranjuju u FLASH memoriju. Za pohranu privremenih i često korištenih podataka koristi se DRAM. Postoji i specijaliziran kontroler koji služi za balansiranje trošenja memorije o kojem će više riječi biti kasnije.
Budući da su podatci pohranjeni u FLASH memoriji, oni su organizirani u stranice. Prepisivanje starih podataka nije moguće, već prvo treba obrisati stare podatke. [1]
Ako se radi pisanje u memoriju, ne može se upisati podatak samo na određenu memorijsku lokaciju, već se mora upisati cijela stranica. Problem je što FLASH memorija ne podržava prepisivanje memorijske lokacije, već samo pisanje na prazno mjesto. To znači da se podatak mora obavezno obrisati prije nego što se upiše novi. Dodatno, za razliku od pisanja, brisanje se ne može raditi na razini jedne stranice, već samo na razini cijelog bloka. Kad bi se za svako pisanje u jednu stranicu morale brisati sve ostale iz istog bloka, to bi dovelo do velikog broja nepotrebnih brisanja. Podsjetimo se da je broj ciklusa pisanja i brisanja u FLASH memoriji tipično ograničen. Zato je osmišljen postupak prikupljanja smeća (tzv. Garbage Collection, skraćeno GC). [1]
Ako treba promijeniti podatke u jednoj stranici bloka, novi sadržaj te stranice zapiše se u slobodne stranice nekog drugog bloka. Pisanje nije blokovsko, dakle ova operacija je dozvoljena. One stranice čiji se sadržaj promijenio označe se nevažećima zato da korisnik ne dobije zastarjeli sadržaj ako u međuvremenu poželi pročitati podatak s tih stranica. [1]
Problem je što se time pojavila razlika između stvarne adrese u memoriji i logičke adrese. Stvarna adresa odnosi se na fizičku adresu, ona se promijenila jer se novi sadržaj stranice zapisao u neki drugi blok. Logička adresa je ona koju vidi operacijski sustav i ta adresa ostala je nepromijenjena. Sklop koji prati vezu između tih veza i osigurava da korisnik uopće ne bude svjestan da je došlo do promjene je kontroler. Ti podatci se drže u DRAM-u kako bi se mogli čim brže osvježiti i dohvatiti. Kontroler je također zadužen za označavanje starih stranica nevažećima. [7]
Tek kad se sve stranice nekog bloka označe nevažećima, mogu se obrisati jednim blokovskim brisanjem. Sad one postaju slobodne i u njih se mogu pisati novi podatci. Cijeli postupak prikazan je na slici 4.
Slika 4: Proces prikupljanja smeća [7]
Kako bi se osiguralo da uvijek ostane prostora za prikupljanje smeća, najmanje 7% memorije rezervira se za to. Taj prostor naziva se Over-provisioning (OP) prostor. On nije dostupan korisniku već samo kontroleru na SSD-u. [1]
Prikupljanje smeća jedna je od glavnih značajki koja SSD čini značajno bržim od HDD-a.
Korisnik preko datotečnog sustava briše i stvara datoteke. Što se korisnika tiče, operacija brisanja događa se trenutno. No, sustav prikupljanja smeća nije uvijek tako brz i moguće je da prođe dosta vremena između zahtjeva za brisanjem i stvarnog brisanja podatka. Bilo bi bilje da operacijski sustav ima mehanizam kojim bi dojavio SSD-u da je određeni blok slobodan za brisanje. Naime, kad se sadržaj mijenja, kontroler to odmah prepoznaje jer se od njega očekuje trenutna reakcija. Mora pronaći slobodne stranice i u njih upisati nove podatke te označiti stare nevažećima. No, pri brisanju se od kontrolera ne očekuje nikakva posebna radnja, stoga on nema način da sazna kad je neka datoteka obrisana. Zato neki SSD-ovi imaju ugrađen mehanizam TRIM. [8]
Ukratko, TRIM služi za dojavu da je neki blok slobodan. Budući da je to relativno jednostavna operacija, ona se može izvršiti trenutno. S druge strane, stvarno brisanje podatka može trajati dugo. Korisnik u tom periodu može zatražiti čitanje bloka koji je u stvarnosti obrisan, ali u memoriji još nije. Postoji više mogućnosti kako se taj problem rješava: [1]
Da bi TRIM funkcionirao, nije dovoljno da ga samo SSD podržava, već ga mora podržavati i operacijski sustav. U Windows operacijskom sustavu samo NTFS podržava TRIM. U slučaju eksternih diskova, matična ploča, SSD i kontroler moraju podržavati TRIM. Također, kabel mora biti USB 3.0 i povezan na USB 3.0 priključak. No, čak i ako su svi ovi uvjeti zadovoljeni, na nekim kriptiranim diskovima TRIM svejedno neće raditi. [1]
Razlika u brisanju između običnog SSD-a i onog koji podržava TRIM prikazana je na slikama 5 i 6.
Slika 5. Brisanje korištenjem GC
Slika 6. Brisanje korištenjem GC i TRIM
Značajka SSD-a koja komplicira forenzičku analizu je Garbage Collection. Ako se koristi bez TRIM-a, ponekad je moguće pronaći logički obrisane podatke koji se još nisu stigli fizički obrisati. No, TRIM ubrzava proces fizičkog brisanja memorije pa povrat podataka postaje gotovo nemoguć. Čak i ako se disk makne s električnog napajanja, to neće zaustaviti TRIM. Vlasnici također mogu naredbom “Secure erase” brzo i nepovratno obrisati podatke sa SSD-a. Ista naredba na HDD-u trajala bi i do nekoliko sati. [1]
Ipak, može se probati nekoliko metoda za izvlačenje podataka sa SSD-a. Jedna od metoda je chip-off. Kao što joj naziv kaže, memorija se čita izravno s čipova. Ta je metoda vrlo agresivna i često se koristi tek kao posljednje rješenje ako ništa drugo nije moguće. Chip-off vrlo je rizičan jer može dovesti do nepovratnog oštećenja podataka. [1]
Zato se u praksi češće koristi tvornički način (engl. Factory Access Mode). On omogućuje izravan pristup informacijama u NAND čipovima. To uključuje sirove podatke iz fizičkih blokova i kriptirane podatke. Tvornički način također može zaustaviti proces prikupljanja smeća i time dati više vremena za povrat podataka. Problem je što ne postoje standardizirani procesi prebacivanja u tvornički način i dostupnih naredbi unutar njega. Osim što se razlikuje od jednog do drugog diska, često uopće nije dokumentiran. [1]
Niti TRIM niti proces skupljanja smeća načelno se ne mogu zaustaviti. To može raditi problem u rješavanju forenzičkih slučajeva. U forenzičkoj istrazi prije rada s nekim diskom ili računalom mora se uzeti njegova slika (engl. image). To znači da se disk spoji na neko računalo i da se svi podatci s njega prebace na to računalo ili na neki drugi disk. Budući da su operacije prikupljanja smeća i TRIM-a relativno brze, a uzimanje slike relativno sporo, moguće je da se neki podatci obrišu prije nego što su zapisani u sliku. Slike diska najčešće se uzimaju na terenu, a ne tek kad dokaz stigne do laboratorija, međutim i u tom slučaju može proći previše vremena. [9]
Jedini način kako se TRIM i GC mogu zaustaviti je tako da se kontroler odvoji od ostatka SSD-a. Međutim, to se načelno ne radi jer tada pristup podatcima postaje iznimno složen. Podatci su zapisani u nasumičnim stranicama i kontroler jedini zna gdje je fizički mapirana svaka logička adresa. Također, bilo kakvo diranje hardvera može dovesti do oštećenja podataka. Ne postoji neko rješenje koje se univerzalno koristi, nego eventualno neki prototipovi. Jedan primjer takvog rješenja je uređaj koji su napravili znanstvenici iz Sveučilišta u Kaliforniji. Prikazan je niže na slici 7. Nije pokazano radi li i, ako da, može li spasiti podatke koje je proces prikupljanja smeća obrisao. [9]
Slika 7. Prototip hardvera koji bi mogao oporaviti obrisane podatke sa SSD-a [9]
Kriptiranje podataka radi kontroler na SSD-u. Podatci se u FLASH upisuju već kriptirani, dakle ne može se pokrenuti neki softver na računalu koji bi mogao probiti lozinku.
Većina SSD-ova nudi barem jednu metodu hardverske enkripcije. Neki napredniji diskovi rade enkripciju a da ne pitaju korisnika. Ključ za enkripciju mora biti pohranjen na vidljiv način kako bi ga kontroler mogao pročitati tako da ga kontroler može pročitati s NAND čipa i dekriptirati podatke. Ako korisnik odabere enkripciju, zapravo se kriptira samo taj ključ. [1]
Prije nego što korisnik odabere enkripciju, ključ je bio pohranjen bez ikakve zaštite, no to ne predstavlja sigurnosni problem. Gotovo je nemoguće pronaći ključ bez pomoći kontrolera jer on jedini zna sve potrebne informacije da bi se ključ pronašao. [1]
Kod određenih metoda enkripcije TRIM ne djeluje na kriptirane podatke. Razlog tomu je to što je zadano ponašanje da, ako se kriptira dio diska, kriptira se i dio datoteke koja opisuje što se u tom dijelu diska nalazi. Problem kod kriptiranih diskova je što se često kriptira cijeli prostor, uključujući i ono neiskorišteno. Dakle, svaka operacija pisanja postaje operacija prepisivanja, što znači da treba brisati blokove koji su zapravo prazni. To značajno usporava cijeli proces pa su neki proizvođači odlučili neiskorišten prostor ostaviti kontroleru na korištenje. Nedostatak toga je smanjena cjelokupna sigurnost podataka jer su se vrlo jednostavno mogli naći neiskorišteni prostori na disku. Ta činjenica predstavlja sigurnosni problem jer se ti dijelovi mogu iskoristiti za umetanje zlonamjernih podataka. [1]
Forenzički proces se na SSD-u ne razlikuje mnogo od procesa za HDD, no tehnička je izvedba značajno složenija. Puno tehničkih detalja varira od jednog diska do drugog te forenzičar ne može znati sve te specifičnosti unaprijed.
Radi procesa prikupljanja smeća i TRIM naredbe, vraćanje podataka postaje značajno teži proces. Pronalazak podataka je teži na SSD-u nego na HDD-u jer podatci nisu slijedno zapisani, a uz to još postoji i razlika između fizičke i logičke adrese radi ubrzavanja procesa pisanja na disk.
[1] Predavanja iz kolegija Računalna forenzika, SSD forenzika: https://www.fer.unizg.hr/predmet/racfor/materijali#%23!p_rep_142274!_-135668-228983
[2] FET Transistor - GeeksforGeeks: https://www.geeksforgeeks.org/electrical-engineering/fet-transistor/
[3] Field-effect transistor - Wikipedia: https://en.wikipedia.org/wiki/Field-effect_transistor
[4] FET-Field Effect Transistors,Types of FET-n-channel FET, p-channel FET: https://circuitstoday.com/fet-field-effect-transistors-introduction
[5] What is Identity and Access Management? Guide to IAM: https://www.techtarget.com/whatis/definition/SRAM-static-random-access-memory
[6] Understanding Flash memory …: https://www.eenewseurope.com/en/understanding-flash-memory/
[7] How Do SSDs Work? | Extremetech: https://www.extremetech.com/computing/how-do-ssds-work
[8] Garbage Collection and TRIM in SSDs Explained - An SSD Primer | The SSD Review: https://www.thessdreview.com/daily-news/latest-buzz/garbage-collection-and-trim-in-ssds-explained-an-ssd-primer/2/
[9] Why SSD Drives Destroy Court Evidence, and What Can Be Done About It: https://belkasoft.com/why-ssd-destroy-court-evidence