====== Tehnike otključavanja zaključanih Android uređaja ====== ===== Sažetak ===== U današnjem svijetu gotovo svatko posjeduje barem jedan pametni telefon kojeg svakodnevno koristi. Uređaji zasnovani na Android operacijskom sustavu su najzastupljeniji. S obzirom na golemu količinu osobnih podataka sadržanih na pametnim telefonima, isti su iznimno korisni računalnim forenzičarima u svrhu pronalaženja tragova. Najosnovniji oblik zaštite podataka je zaključavanje uređaja nekom vrstom lozinke ili uzorka. U skladu s tim, jedan od čestih zadataka računalnih forenzičara je zaobilaženje ili uklanjanje te lozinke, odnosno otključavanje samog uređaja. Ovaj seminar bavi se nekim od najčešće korištenih tehnika otključavanja zaključanih Android uređaja. **Ključne riječi:** Android, pametni telefon, otključavanje, //USB debugging//, //root//-anje ===== Uvod ===== Pametni telefoni (engl. //smartphone//) postali su dio naše svakodnevice te je danas postalo neobično ne posjedovati barem jedan takav uređaj. Od svojih ranih inačica, pametni telefoni su s vremenom zamijenili osobne digitalne asistente (engl. //personal digital assistant//, //PDA//) te ih danas korisnici koriste za obavljanje poziva, slanje SMS poruka, spajanje na internet te navigiranje istim, multimediju poput slika, videozapisa, glazbe te korištenje mnoštva drugih servisa i aplikacija koje im olakšavaju svakodnevan život. Android je operacijski sustav zasnovan na Linux-u te primarno namijenjen mobilnim uređajima sa zaslonom na dodir (engl. //touchscreen//) poput pametnih telefona i tablet računala. Predstavljen je 2007. godine, a prvi komercijalni Android uređaj lansiran je 2008. godine. Od tada, Android uređaji značajno su porasli u popularnosti te je od 2011. godine Android najprodavaniji operacijski sustav na svijetu. Od svibnja 2017. godine, Android operacijski sustav ima preko dvije milijarde aktivnih mjesečnih korisnika. S obzirom na golemu zastupljenost Android uređaja te širok i raznolik spektar stvari za koje ih korisnici koriste, računalnim je forenzičarima u interesu iskoristiti podatke sadržane u takvim uređajima kako bi otkrili relevantne digitalne tragove. Primjeri relevantnih podataka i informacija sadržanih na uređaju su povijest poziva, SMS poruke, multimedija poput slika i videozapisa uz pripadne metapodatke, povijest spajanja i pretraživanja interneta, tip uređaja, MAC adresa, lozinke te razni drugi. Naravno, jedan od čestih problema koji forenzičari prilikom pristupanja tim podatcima moraju riješiti je upravo otključavanje zaključanih Android uređaja, stoga se ovaj seminar bavi nekim od češćih tehnika otključavanja zaključanih Android uređaja. Naravno, svaka tehnika dolazi s određenim limitacijama te je potrebno odrediti koji tehniku je najbolje primijeniti za pojedini slučaj. Ta procjena uglavnom ovisi o stanju uređaja kojeg se nastoji otključati. Postavljaju se pitanja koji je model uređaja, je li uređaj upaljen ili ugašen, je li uključen //USB debugging//, je li uređaj //root//-an i slična. Objašnjenja tih pojmova, te tehnika otključavanja nalaze se u nastavku. ===== Smudge attack ===== Prva tehnika otključavanja zaključanih Android uređaja je, u suštini, najjednostavnija, te nije isključiva samo za Android uređaje već se može primijeniti na većinu uređaja sa zaslonom na dodir. //Smudge attack //oslanja se na prisustvo otisaka na zaslonu uređaja nastalih korištenjem istog. Ideja //smudge attack //tehnike je da prilikom unosa lozinke ili uzorka potrebnog za otključavanje uređaja, korisnik prstima ostavlja otiske na zaslonu na dodir, koje se zatim primjenom kamera i programa za obradu slika mogu otkriti. Primjenom odgovarajućeg osvjetljenja i postavki kamere, otisci na zaslonu mogu se lako otkriti te se najistaknutijim mrljama može odrediti najčešći korisnikov uzorak unosa. Ova tehnika istražena je na Sveučilištu u Pennsylvaniji, gdje su rezultati pokazali uspjeh otključavanja u 68% slučajeva, u pravilnim uvjetima. Ipak, ova tehnika ima svojevrsnu nepouzdanost jer je unos lozinki samo jedan od uzroka ostavljanja otisaka te korištenje uređaja lako može prebrisati otiske drugima. ===== Otključavanje pomoću USB debugging-a ===== Prije nego li se prouče tehnike otključavanja zaključanih Android uređaja putem //USB debugging//-a, potrebno je prvo shvatiti što je točno //USB debugging//. //Debugging//, odnosno uklanjanje grešaka, proces je otkrivanja i uklanjanja grešaka i problema nekog računalnog programa ili sustava. //USB debugging// je svojstvo Android uređaja koje, kada se uključi, služi ostvarivanju komunikacije putem USB kabela između Android uređaja i računala koje koristi Android SDK. Za potrebe razvoja Android aplikacija, prvo je potrebno instalirati odgovarajući paket za razvoj Android programa (engl. //Android Software Development Kit//, //Android SDK//) koji nudi sve potrebne alate za razvoj Android aplikacija. Najčešće se //Android SDK //instalira uz //Android Studio //okruženje za razvoj Android aplikacija. Putem //USB debugging//-a, Android uređaju mogu se poslati složenije naredbe, a služi i jednostavnom instaliranju razvijanih aplikacija na Android uređaj za potrebe isprobavanja i testiranja. Još jedan važan koncept koji je potrebno razumjeti je //root//-anje Android uređaja. Svi Android uređaji koriste Linux jezgru te pripadni sustav dozvola i vlasništva datoteka. Korisnicima, kada se prijave, dozvoljeno je obavljanje radnji u skladu s njihovim dozvolama. Isto tako, instaliranim aplikacijama dodijeljen je korisnički identifikator i određene dozvole. //Root //je također svojevrstan korisnik, no on ima dozvole za obavljanje bilo kakvih operacija nad bilo kojom datotekom sustava. Te operacije mogu biti željene, poput uklanjanja neke aplikacije s uređaja, no mogu i dovesti sustav u nestabilno stanje. Kada se Android uređaj //root//-a, jednostavno se dodaje standardna Linux funkcija koja je bila uklonjena. Dodaje se datoteka zvana „su“ te su joj dane dozvole kako bi je drugi korisnik mogao pokrenuti. Pokretanjem te datoteke bez drugih parametara trenutni korisnik, odnosno njegove dozvole, zamjenjuju se //root //dozvolama čime su sve radnje dozvoljene. //USB debugging// može se, iz perspektive napadača, uključiti na jednostavan način. Primjerice, ako napadač želi ostvariti pristup prijateljevim datotekama i aplikacijama može od njega posuditi uređaj iz nekog lažnog razloga te unutar postavki uključiti //USB debugging//. U nekom kasnijem, pogodnom trenutku kada napadač ima pristup prijateljevom uređaju može iskoristiti neku od tehnika otključavanja navedenih u ovom odjeljku. Sljedeća slika prikazuje uključivanje //USB debugging//-a. {{ :racfor_wiki:android:usb-debugging.png?200 |}} Konačno, prije nego li se prouče tehnike otključavanja zaključanih Android uređaja koje se oslanjaju na uključeni //USB debugging// , potrebno je spomenuti i //Android Debugging Bridge//, skraćeno ADB. ADB je primarno alat naredbenog retka (engl. //command line//) korišten za komunikaciju s Android uređajem. Prva tehnika otključavanja zaključanih Android uređaja koja se oslanja na uključeni //USB debugging //je korištenje //UnlockAndroid.apk //paketa. Android uređaj se prvo spoji USB kabelom s računalom na kojem je instaliran Android SDK. S pretpostavkom da je //UnlockAndroid.apk //paket smješten u odgovarajućem direktoriju na računalu, pomoću ADB alata ta aplikacija se instalira i na Android uređaj. Konačno, putem ADB alata pokreće se instalirana //UnlockAndroid// aplikacija i otključava uređaj. Sljedeća slika prikazuje naredbeni redak prilikom korištenja //UnlockAndroid.apk// paketa. {{ :racfor_wiki:android:unlock-android-apk.png?600 |}} Sljedeća zanimljiva tehnika otključavanja je brisanje //gesture.key //datoteke. Ova tehnika primjenjiva je ako se za otključavanje Android uređaja koristi unos uzorka (engl. //pattern lock//) te ako je uređaj //root//-an. Slično kao i u prethodnoj tehnici, uređaj se spaja s računalom te se putem ADB alata pristupa ljusci uređaja. Unosom naredbe briše se //gesture.key //datoteka u kojoj je uzorak za otključavanje pohranjen. Ponovnim pokretanjem Android uređaja, isti će zahtijevati unos uzorka za otključavanje no unosom bilo kojeg uzorka uređaj će se otključati. Sljedeća slika prikazuje naredbeni redak prilikom brisanja //gesture.key //datoteke. {{ :racfor_wiki:android:deleting-gesture-key.png?600 |}} Pod uvjetom da je Android uređaj //root//-an, otključavanje je moguće ostvariti i uređivanjem SQLite datoteka pohranjenim u datotečnom sustavu uređaja. Izvođenjem naredbe „sqlite settings.db“ unutar direktorija koji sadrži //settings.db// datoteku pristupa se SQLite ljusci kojom se mogu zadati SQL naredbe kojima će se izmjeniti podatci pohranjeni unutar te datoteke. Postavljanjem vrijednosti //lock_pattern_autolock// i //lockscreen.lockedoutpermanently //parametara na nulu moguće je otključati uređaj. Dosad navedene tehnike zaobilaze zaključavanje ekrana ili ga uklanjaju, no povrh toga postoji način i za doznati PIN, odnosno lozinku kojom se uređaj otključava kako bi se on mogao proizvoljno otključavati i zaključavati. Lozinka je pohranjena unutar //password.key //datoteke u datotečnom sustavu uređaja. Naravno, lozinka nije pohranjena u svom običnom, pravom obliku već je njena vrijednost skrivena kriptografskim algoritmima. Dohvatom //salt// kriptografskog ključa iz //settings.db// datoteke, SHA1 i MD5 lozinke iz //password.key// datoteke te primjenom alata koji koriste //brute force// pristup otkrivanja lozinke, ista se može otkriti. ===== Otključavanje pomoću Google korisničkog računa ===== Starije verzije Android operacijskog sustava (Android 4.4 i starije) omogućavaju otključavanje uređaja korištenjem Google korisničkog računa. Ova tehnika otključavanja predviđena je za slučajeve kada korisnik zaboravi svoju lozinku ili uzorak kojim otključava uređaj. Nakon pet neuspješnih pokušaja unosa lozinke ili uzorka, korisniku je prikazan dijalog kojim može odabrati opciju da je zaboravio lozinku. Korisniku se zatim omogućuje unos korisničkog imena i lozinke za Google korisnički račun, te tako može otključati uređaj. Naravno, jasno je da je ova tehnika limitirana samo za slučajeve kada je računalnim forenzičarima unaprijed poznato korisničko ime i lozinka Google korisničkog računa vlasnika uređaja. Također, ova tehnika oslanja se na to da je prije zaključavanja na uređaju postavljen Google korisnički račun. ===== Otključavanje postojećim alatima ===== Nakon upoznavanja s nekim od najčešćih tehnika otključavanja zaključanih Android uređaja, potrebno je još navesti nekoliko najpopularnijih specijaliziranih alata za otključavanje dostupnih na tržištu. Prvi takav alat je //Andriller//, alat namijenjen forenzici Android uređaja. Povrh komponenti za izvlačenje podataka iz uređaja, dešifriranje i sličnih, sadrži i komponente za otkrivanje lozinki i uzoraka potrebnih za otključavanje Android uređaja. Pogodnost //Andriller //alata je činjenica da je isti otvorenog koda (engl. //open source//), stoga je dostupan besplatno. Nedostatak je što za potrebe otkrivanja lozinki zahtjeva prethodno dohvaćene podatke s uređaja poput kriptografskog ključa i sl. Sljedeći često korišten alat je //dr.fone//, odnosno njegova komponenta za otključavanje Android uređaja. Prednosti //dr.fone //alata su mogućnost otključavanja sva četiri oblika zaključavanja (uzorak, PIN, lozinka i otisak prsta), jednostavan je za korištenje te podržava Android verziju 2.1 i novije. Nedostatak alata je što je primarno predviđen za korištenje s LG i Samsung uređajima. Konačno, //iSkysoft Toolbox //također je popularan alat s funkcijom otključavanja zaključanih Android uređaja. On također nudi mogućnost otključavanja navedena četiri oblika zaključavanja te se koristi za širok spektar Android uređaja. Nedostatak ovog alata je što podržava samo verzije Android 6.0 i starije. ===== Zaključak ===== U ovom seminaru navedeni su i obrađeni neki od najčešćih tehnika otključavanja zaključanih Android uređaja, no postoje i brojne druge. Neke metode, poput //smudge attack //tehnike, su jednostavnije ali manje pouzdane. Druge tehnike, poput korištenja //UnlockAndroid.apk //paketa su malo složenije ili zahtijevaju više posla kako bi se postiglo otključavanje. Tehnike poput brisanja //gesture.key //datoteke ili uređivanja //settings.db //utječu i na stanje Android uređaja što nije poželjno u računalnoj forenzici. Važno je napomenuti da ne postoji najbolja ili najgora tehnika otključavanja zaključanih Android uređaja, već je za svaki slučaj potrebno procijeniti koja tehnika bi bila najbolja za primijeniti. Pronalaženje odgovarajuće tehnike uglavnom ovisi o stanju uređaja kojeg se nastoji otključati. S obzirom na intenzivan razvoj tehnologije, kao i velik broj proizvođača pametnih telefona, novi modeli pametnih telefona svakodnevno se pojavljuju na današnjem tržištu. Uz nove pametne telefone dolazi i do razvoja novih metoda zaključavanja uređaja te pojačavanja zaštite podataka na uređajima. Već danas tradicionalne numeričke lozinke i uzorci za otključavanje zamjenjuju se otključavanjem uređaja putem elektroničkog prepoznavanja otiska prsta (engl. //electronic fingerprint recognition//) ili sustava prepoznavanja lica (engl. //facial recognition system//). Neke od tehnika koje se danas koriste za otključavanje zaključanih Android uređaja vrlo vjerojatno neće više biti primjenjive za nove uređaje te će se morati razviti nove tehnike. ===== Izvori ===== * [[https://resources.infosecinstitute.com/android-forensics|https://resources.infosecinstitute.com/android-forensics]] * [[https://static.usenix.org/events/woot10/tech/full_papers/Aviv.pdf|https://static.usenix.org/events/woot10/tech/full_papers/Aviv.pdf]] * [[https://www.makeuseof.com/tag/what-is-usb-debugging-mode-on-android-makeuseof-explains/|https://www.makeuseof.com/tag/what-is-usb-debugging-mode-on-android-makeuseof-explains/]] * [[https://www.androidcentral.com/root|https://www.androidcentral.com/root]] * [[https://www.androiddata-recovery.com/blog/learn-to-disable-screen-locks-of-android-devices|https://www.androiddata-recovery.com/blog/learn-to-disable-screen-locks-of-android-devices]] * [[https://www.howtogeek.com/226942/what-to-do-if-you-forget-your-android-phone’s-pin-pattern-or-password/|https://www.howtogeek.com/226942/what-to-do-if-you-forget-your-android-phone%E2%80%99s-pin-pattern-or-password/]] * [[https://www.tenorshare.com/unlock-android/top-android-unlock-software.html|https://www.tenorshare.com/unlock-android/top-android-unlock-software.html]]