===== Zašto su potrebne tehnike otključavanja uređaja? =====
U današnje vrijeme mobilni uređaji su postali neizostavan dio svakodnevice i sve više i više privatnih podataka se nalazi na njima. Kao takvi često mogu biti prezentirani kao dokaz u nekom sudskom postupku gdje stručnjak forenzičar mora istražiti pojedinu stavku mobilnog uređaja. Kako bi to uspio mora doći do podataka na mobilnom uređaju no to nije moguće ako mobilni uređaj nije otključan. Stoga je prvi korak u akviziciji podataka u pravilu otključavanje mobilnog uređaja ako je moguće. Isto tako moguće je da lozinka bude zaboravljena od strane korisnika i korisnik jednostavno želi ostvariti pristup uređaju bez gubljenja podataka, ako je to moguće. Pošto je najkorišteniji operativni sustav za mobilne uređaje Android, prirodno se nameće kao najzanimljiviji za promatranje načina otključavanja.
Ključne riječi: **android, otključavanje**
===== Uvod =====
Tehnike otključavanja zaključanih android uređaja se koriste na android uređajima na koje je nemoguće ući na bilo koji način povezan sa nemogućnošću unosa ispravne lozinke. Nebitno je li došlo do zaboravljanja lozinke ili pogreške proizvedene samim operativninim sustavom ili zlonamjernim programom. Postoje dva glavna načina zaključavanja Android uređaja: zaključavanje uzorkom te zaključavanje PIN-om ili lozinkom. Zaključavanje pomoću otiska prsta neće biti razmatrano u nastavku. Forenzički istražitelj koji želi otključati uređaj mora preuzeti jednu ili dvije datoteke u pravilu.
Tehnike otključavanja mogu se koristiti za pristup čitavom uređaju ili pak za pristup datotečnom sustavu Android uređaja koji je iz nekog razloga nefunkcionalan. Treba napomenuti kako je potrebno otključati Android uređaj kako bi se moglo pristupiti podacima na uređaju. Stoga je otključavanje zaključanog Android uređaja prvi korak u akviziciji podataka sa Android uređaja. Samim time su tehnike koje se koriste za otključavanje Android uređaja ujedno i bitne za akviziciju podataka s Android uređaja. Kako je za otključavanje uređaja bitno da se pristupa jednoj ili dvije datoteke na uređaju dva glavna načina za pristup dotičnim datotekama se može obaviti pomoću „Android Debug Bridge“ alata ili pomoću //flashanja //proizvoljnog sustava za oporavak na uređaj. Obje metode nude relativno jednostavan način otključavanja uređaja no imaju određene restrikcije. Postoji i treća metoda koja je više fizička a sastoji se od skupa tehnika koje se nazivaju //J-tag //ili //chip off //tehnike.
===== Otključavanje Android uređaja do verzije 5.0 (Lollipop) =====
Da bi razumijeli kako otključati zaključani uređaj potrebno je prvo pogledati kako samo zaključavanje Android uređaja radi. Kako bi se Android uređaj otključao potrebno je pročitati/modificirati određene datoteke unutar datotečnog sustava Androida. Kako bi se otključao uređaj zaključan uzorkom za zaključavanje potrebna je samo jedna datoteka sa Android uređaja: //gesture.key//. Datoteka se nalazi pod ///data/system/// u datotečnom sustavu Androida. Datoteka //gesture.key// sadrži SHA-1 sažetak uzorka za zaključavanje uređaja gdje je uzorak zapravo niz brojeva od jedan do devet koji odgovaraju indexima točaka kojima je uzorak redom provučen. Pošto je svaku točku (od 1 do 9) moguće uvrstiti u uzorak samo jednom postoji konačan i izračunljiv broj uzoraka za zaključavanje koji iznosi 389112. Ideja iza otključavanja uređaja zapravo leži u tome da se napravi tablica svih mogućih kombinacija uzoraka i njihovih SHA-1 sažetaka te se usporedi sa vrijednošću iščitanom iz //gesture.key// datoteke.
Kako bi se otključao uređaj zaključan PIN-om ili lozinkom potrebne su dvije datoteke. Datoteka //password.key// i datoteka //locksettings.db//. Obje datoteke se nalaze pod ///data/system///. Za Android uređaje verzije manje od 4.4 //settings.db// datoteka zamjenjuje//locksettings.db// datoteku i nalazi se pod ///data/data/com.android.providers.settings/databases///. Za razliku od zaključavanja uzorkom u ovom slučaju nam je potreban i dodatak koji se dodaje na kraj lozinke ili PIN-a ( //eng. salt //) prije nego se računa njihov sažetak i sprema u //password.key// datoteku. //locksettings// bazi podataka taj dodatak se može pronaći u relaciji „locksettings“ , a u //settings// bazi podataka u „secure“ relaciji pod nazivom „lockscreen.password_salt“. Poznajući sve navedene parametre možemo pretražiti sve moguće lozinke ( duljine od četiri do šesnaest znakova ) i njihov sažetak usporediti s onim koji se nalazi u //password.key //datoteci.
Osim navedenih načina za probijanje lozinka Android uređaja moguće je i jednostavno pobrisati relevantne datoteke i time otključati uređaj, no ta metoda nije forenzički čista pa se stoga ne preporučuje.
Nakon verzije //Marshmallow// Android koristi //gatekeeper //sustav za zaključavanje koji bi zahtjevao svoj poseban seminarski rad za objašnjenje tako da neće biti razmatran u ovom radu.
===== Alat Android debug bridge =====
Android debug bridge (ADB) je jednostavan i moćan alat koji omogućava komunikaciju sa Android uređajem. Alat se koristi pomoću ljuske operativnog sustava i sposoban je obavljati mnoge stvari na uređaju kao što su instalacije i //debug //aplikacija na uređaju te interakciju sa samim uređajem preko naredba iz ljuske operativnog sustava.
Ovaj alat je zapravo jednostavna trokomponentna klijent-server aplikacija koja djeluje na sljedeći način: **klijent** je proces na računalu koji šalje naredbe, ** daemon** je pozadinski proces na Android uređaju koji prima i izvršava naredbe, a **server** je pozadinski proces na računalu koji nadgleda komunikaciju između klijenta i daemona. Iako Android debug brigde može komunicirati i preko bežične mreže s uređajem, najčešće se komunikacija obavlja preko USB porta.
{{https://kreatetechnologies.com/wp-content/uploads/2018/12/5-1.jpg?nolink&650x356|kreatetechnologies.com_wp-content_uploads_2018_12_5-1.jpg}}
Kako bi se alat mogao koristiti, na uređaju je potrebno uključiti “USB debugging” opciju na sljedeći način: pod //Settings→About phone→Software information// potrebno je 7 puta zaredom kliknuti na //Build number// ako bi se uključio novi set opcija //Developer options//. Nakon toga potrebno je pod //Settings→Developer// options uključiti //USB debugging// opciju.
Koristeći Android debug bridge mogu se pročitati ili pobrisati datoteke potrebne za otključavanje Android uređaja objašnjene u prethodnom poglavlju.
Glavni nedostatak ove tehnike je što za korištenje Android debug bridgea na potreban način je potreban //root //pristup na Android uređaju. //Root// pristup znači da korisnik ima potpuni administrativni pristup uređaju. To je potrebno za pristupanje datotekama koje su potrebne za otključavanje uređaja.
U nastavku je dan pregled najbitnijih naredbi Android debug bridgea.
|**NAREDBA** |**OPIS** |
|adb devices|ispis svih trenutno spojenih uređaja|
|adb root|restart daemona sa root pristupom|
|adb start-server|pokreni server|
|adb stop-server|zaustavi server|
|adb reboot|ponovno pokretanje uređaja|
|adb remount|ponovno mounta datotečni sustav uređaja|
|adb push |kopiranje datoteke s lokalnog računala na uređaj|
|adb pull |kopiranje datoteke s uređaja na lokalno računalo|
|adb logcat|pokreni ispisivanje dnevnika na standardni izlaz|
|adb shell|pokreni ljusku na uređaju (većina UNIX naredbi funkcionira u ljusci)|
|adb shell |izvrši određenu naredbu na uređaju (samo jednom)|
|adb shell wm size|prikaz trenutne rezolucije uređaja|
|adb shell wm size WxH|podesi rezoluciju na WxH|
|adb shell pm list packages|ispis svih instaliranih paketa na uređaju|
\\
===== Flashanje sustava za oporavak =====
Sustav za oporavak je Android sustav namijenjen pomoći sa problemima s uređajem. Kao takav može napraviti sigurnu kopiju podataka podataka, obrisati sve podatke s uređaja, vratiti uređaj na tvorničke postavke, može pristupati datotečnom sustavu Androida, čitati podatke itd. Napredniji sustavi za oporavak nude i opcije instaliranja novih ROM-ova na Andorid uređaj.
Svaki Android uređaj dolazi sa svojim jednostavnim sustavom za oporavak koji nudi jednostavne opcije poput brsianja //cachea// i vraćanja uređaja na tvorničke postavke. Taj sustav se naziva "Android system recovery" i prikazan je na sljedećoj slici.
{{https://www.howtogeek.com/wp-content/uploads/2012/12/xandroid-system-recovery-menu.jpg.pagespeed.gp+jp+jw+pj+ws+js+rj+rp+rw+ri+cp+md.ic.UX3mSQ5Y_3.jpg?nolink&650x271|www.howtogeek.com_wp-content_uploads_2012_12_xandroid-system-recovery-menu.jpg.pagespeed.gp_jp_jw_pj_ws_js_rj_rp_rw_ri_cp_md.ic.ux3msq5y_3.jpg}}
No ovaj sustav za oporavak ne nudi pristup Android datotečnom sustavu niti pruža// root //pristup. Zbog toga treba obaviti //flashanje// proizvoljnog sustava za oporavak koji nudi opciju //root //pristupa. Dva najpopularnija sustava su //Team Win Recovery Project //(//TWRP//) te// ClockworkMod Recovery //(//CWM//). U nastavku će ukratko biti objašnjen rad sa TWRP-om pošto nudi lakši pregled funkcionalnosti i za razliku od CWM-a prima naredbe preko zaslona na dodir pa je stoga lakši i intuitivniji za koristiti.
TWRP, kao i svaki sustav za oporavak nudi //root //pristup korisniku. Upravo u tome leži problem s ovom metodom. Dok, za razliku od korištenja isključivo ADB-a, nije potrebno //rootati //uređaj jer to za nas radi upravo sustav za oporavak, kako bi se mogao //falshati //sustav za oporavak potrebno je imati aktiviran //bootloader //na uređaju. Bez ulaženja u detalje, //bootloader //omogućava //flashanje //raznih sustava na uređaj, između ostalog i sustav za oporavak uređaja.
Nakon //flashanja //i ulaska u TWRP dobivamo izbornik prikazan na sljedećoj slici.
{{https://www.howtogeek.com/wp-content/uploads/2014/07/team-win-recovery-project-twrp-screenshot.png?nolink&360x640}}
Sada je potrebno odabrati opciju “mount“ i odabrati particije kojima želimo pristupati preko nekog alata, primjerice ADB-a. U slučaju otključavanja uređaja potrebno je čitati iz //data //particije. Primjer izbornika je prikazan na idućoj slici.
{{https://www.androidtipsandhacks.com/wp-content/uploads/2014/10/twrp-mount-partition.jpg?nolink&288x512}}
Nakon što je željena particija postavljena, možemo joj pristupati preko ADB-a i pomoću ADB-a preuzeti ili obrisati datoteke potrebne za otključavanje uređaja.
===== JTAG i Chip off tehnike =====
JTAG i //Chip off // tehnike već spadaju u tehnike akvizicije podataka iako ih je bitno spomenuti i u konktestu otključavanja uređaja. Ove tehnike se baziraju na rastavljanju uređaja i skidanju memorijskih čipova sa podatkovnih pločica unutar mobitela i čitanja podataka direktno s njih. Ove tehnike se koriste kada je uređaj u fizički jako lošem stanju ili ga je na ovaj ili onaj način nemoguće pokrenuti ili otključati.
Za korištenje ove tehnike na uređajima potrebno je imati dobro znanje o arhitekturi uređaja nad kojim će se tehnika koristiti.
{{https://www.teeltech.com/wp-content/uploads/2014/01/lcd-repair-3.jpg?nolink&419x277|www.teeltech.com_wp-content_uploads_2014_01_lcd-repair-3.jpg}}
===== Zaključak =====
Vidjeli smo nekoliko tehnika otključavanja Android uređaja, svaka sa svojim nedostacima tj. sa preduvjetima da bi se te tehnike mogle zapravo izvršiti. Za otključavanje Android uređaja do verzije 5.0 Androida potrebno je samo dohvatiti ili izbrisati nekoliko datoteka koje se nalaze pod ///data/system/ // u Android datotečnom sustavu. Ako je uređaj zaključan sa uzorkom za zaključavanje potrebno je samo dohvatiti datoteku //gesture.key //i iz nje pročitati SHA-1 sažetak uzorka za zaključavanje. Nakon toga potrebno je pronači uzorak čiji sažetak odgovara pročitanom. Ako je uređaj zaključan PIN-om ili lozinkom potrebno je dohvatiti //password.key// datoteku u kojoj je spremljen SHA-1 sažetak lozinke s dodatkom i //locksettings.db// datoteku u kojoj je spremljena baza podataka iz koje se može iščitati dodatak koji se stavlja na lozinku prije računanja sažetka. Nakon toga potrebno je pronaći lozinku čiji je sažetak spremljen u spomenutoj datoteci. Za taj postupak nam treba pristup datotečnom sustavu uređaja koji se može ostvariti ili pomoću Android debug bridge alata, za što Android uređaj treba biti //rootan, // ili //flashanjem// sustava za oporavak na uređaj što zahtjeva da je //bootloader// uređaja otključan. Ako niti jedna tehnika ne upali jedini način da se dođe do podataka na uređaju je korištenje //chip off// tehnika.
===== Izvori =====
- [[https://www.digitalforensics.com/blog/extracting-data-from-a-locked-android-device/|Digital Foresncis Corp, Extracting data from locked Android device]]
- [[https://developer.android.com/studio/command-line/adb|developer.android.com, Android debug bridge]]
- [[https://www.amazon.com/Android-Forensics-Investigation-Analysis-Security/dp/1597496510|Android Forensics: Investigation, Analysis and Mobile Security for Google Android, Andrew Hoog]]
- [[https://www.magnetforensics.com/blog/gatekeeper-password-storage-android-secures-devices/|Magnet Forensics, Gatekeeper Password Storage]]
- [[https://twrp.me/about/|Team Win Recovery Project]]
- [[https://www.androidtipsandhacks.com/root/twrp-the-complete-guide-to-using-recovery-on-android/|Android Tips & Hacks, TRWP: the complete guide to using Recovery on Android]]
- [[https://devhints.io/adb|DevHints.io, Android Debug Bridge cheatsheet]]
- [[https://www.youtube.com/watch?v=uMoVqoVuPns|FlashFixers, Galaxy S3 Chip-Off Data Recovery to Recover Photos, Videos, Texts]]