21
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA RAČUNALNA FORENZIKA Zaštita i sigurnost operacijskog sustava Android Lovro Pejić Zagreb, prosinac, 2018.

Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

  • Upload
    others

  • View
    1

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

RAČUNALNA FORENZIKA

Zaštita i sigurnost operacijskog sustava Android

Lovro Pejić

Zagreb, prosinac, 2018.

Page 2: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

SADRŽAJ

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

2. Sigurnost ................................................................................................................ 2

2.1. Narušavanje sigurnosti ..................................................................................... 3

2.2. Sigurnosni savjeti pomoću kojih se može povećati razina sigurnosti prilikom izrade Android aplikacije ......................................................................................... 6

2.2.1. Android dopuštenja .................................................................................... 6

2.2.2. Zahtijevanje dopuštenja ............................................................................. 6

2.2.3. Logički dnevnik .......................................................................................... 9

2.2.4. ProGourd ................................................................................................. 10

2.2.5. Apktool .................................................................................................... 12

2.2.6. Android Pay ............................................................................................. 14

2.2.7. Podmetanje elemenata aplikacije ............................................................ 14

2.2.8. Android Device Manager ......................................................................... 16

3. Zaključak .............................................................................................................. 17

4. Literatura .............................................................................................................. 18

5. Sažetak ................................................................................................................. 19

Page 3: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

1

1. Uvod

U današnje vrijeme mobilni uređaji postali su dio naše svakodnevice. Skoro svi ih

posjeduju i njihova primjena postala je izuzetno velika. Ljudi ih koriste kako bi

olakšali svoje svakodnevne aktivnosti, pomažu ljudima pri obavljanju njihovih

privatnih ili poslovnih obveza, te se uvelike koriste za zabavu i opuštanje.

Povećanjem brojnosti mobilnih uređaja, odnosno njihovom sve većom

popularnošću, došlo je do pojave i razvoja različitih zlonamjernih alata kako bi se

iskoristile njihove mane i slabosti. Prema izvještaju sigurnosne kompanije McAfee

svake se godine ukradu podatci intelektualnog vlasništva u vrijednosti većoj od

160 milijardi američkih dolara.

Potaknut cijelom tom situacijom, nastao je pojam: „Računalni kriminal“. Navedeni

pojam označava zlonamjerne radnje koje su počinjene s namjerom da se našteti

ugledu žrtve, te učini fizička ili intelektualna šteta pojedincu ili pak ostvari gubitak

neke vrste na direktan ili indirektan način, korištenjem telekomunikacijske mreže i

mobilnih uređaja.

Važno je spomenuti činjenicu da nisu sve prijevare i nastale štete posljedica

korisničke naivnosti. Ranjivost softvera i različite nepravilnosti (npr. određene

postavke) pružale su mogućnost napadačima da se dokopaju povjerljivih

korisničkih podataka i iskoriste ih u zlonamjerne svrhe. Velika većina poznatih

ranjivosti softvera najčešće se ispravi u što kraćem mogućem roku, no uvijek

postoje i nepredvidive iznimke. Činjenica je da su se mnogi propusti mogli

spriječiti da su se zadovoljili određeni sigurnosni standardi.

U ovom rada obradit će se najpoznatiji oblici implementacije zaštite u

operacijskom sustavu Android, kao i načini na koje se sigurnost može narušiti

ukoliko nije dobro implementirana ili ako je neadekvatno prilagođena namjeni

aplikacije.

Page 4: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

2

2. Sigurnost

Definicija sigurnosti glasi: „Sigurnost je stupanj zaštite od opasnosti, štete, gubitka

ili kriminalne aktivnosti“. Implementacija razine sigurnosti u aplikacijama ovisi o

namjeni aplikacije. Primjerice, sigurnost aplikacije za evidenciju stanja u frižideru

nije toliko bitna, dok je sigurnost aplikacije za vođenje stanja i transakcija s

bankovnog računa poprilično važna. Iz gore navedenog lako je zaključiti da način

na koji će se određene stvari razvijati uvelike ovisi o domeni aplikacije.

Google određenim pravilima pokušava nametnuti programerima određene

standarde razvoja aplikacija. Njihovim uvođenjem povećavaju se mjere prevencije

i stupanj zaštite korisnika od potencijalno štetnih aplikacija. Prije objavljivanja na

Google Play Store sve Android aplikacije prolaze kroz mnogobrojna sigurnosna

testiranja. Programeri čije aplikacije ne zadovoljavaju postavljena sigurnosna

pravila bivaju suspendirani ili upozoreni da izmjene svoju aplikaciju prema

zahtijevanim pravilima. Nakon što su sva pravila zadovoljena i aplikacija je

uspješno prošla kroz sva testiranja, sve je spremno za objavljivanje u trgovini

aplikacija. Objavljivanjem aplikacije u trgovini aplikacija ne znači da je aplikacija

sigurna već da trenutnim ispitivanjem nije pokazala loše naznake što ne znači da

je provedeno testiranje u potpunosti bilo ispravno. Dodatno, čak i nakon

instalacije aplikacije Google povremeno skenira ponašanje aplikacija, te ukoliko

utvrdi sumnjivo ponašanje obavještava korisnika i po potrebi blokira daljnji rad

aplikacije.

Sigurnost je izuzetno veliko područje i potreba za sigurnošću javlja se u raznim

situacijama. Npr. kod spremanja lokalnih podataka, kod komunikacije preko

mreže, pri razmjeni podataka ili prilikom pregleda osjetljivih podataka na uređaju.

Sve te radnje imaju različitu potrebnu razinu zaštite.

Najčešći razlozi za narušavanje sigurnosti su: neprikladno korištenje platforme,

nesiguran spremnik podataka, nesigurna komunikacija, loša kvaliteta koda,

nesigurna autorizacija i/ili autentifikacija, nedovoljna kriptografija i dr.

U ovom radu bit će obrađeni samo neki od navedenih razloga.

Page 5: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

3

2.1. Narušavanje sigurnosti

Postoji više načina na koje se može pristupiti podatcima Android uređaja. Neki od

njih su ručne, fizičke i logičke akvizicije.

Ručna akvizicija predstavlja ručno pregledavanje podataka na mobitelu korištenjem

ekrana i tipkovnice, gdje se podatcima pokušava pristupiti interakcijom s uređajem.

Drugi način je fizička akvizicija koja podrazumijeva stvaranje posebne kopije

memorije uređaja zaobilaženjem datotečnog sustava i analiziranje određenim

metodama. Taj način nije uvijek pogodan jer može nepovratno oštetiti uređaj. Treći

način je logička akvizicija, a to je ujedno i način koji će biti detaljnije obrađen u ovom

radu.

Logička akvizicija obuhvaća izvlačenje podataka s uređaja povezanog s nekim

drugim uređajem. To primjerice može biti mobilni uređaj povezan USB kabelom sa

stolnim računalom. Na taj način moguće je pristupiti internim podatcima samog

uređaja. Najjednostavniji način povezivanja je korištenjem ADB (Android Debug

Bridge) alata. ADB je alat komandne linije koji omogućava konekciju između više

uređaja. Nakon povezivanja s uređajem napadač može napraviti statičku ili

dinamičku analizu podataka.

U slučaju statičke analize podataka napadač treba preuzeti instaliranu .apk

datoteku i raspakirati je kako bi mogao proučiti njen sadržaj. Apk je format datoteke

koju Android koristi za distribuciju aplikacija. Najjednostavniji način za pristup

podatcima je preimenovanje .apk ekstenzije u .zip. Sadržaj raspakirane .zip

datoteke može varirati ovisno o implementaciji aplikacije, ali uvijek sadrži resurse

aplikacije kao i konfiguracijsku AndroidManifest datoteku.

Slika 1. Premenovanje .apk arhive u .zip arhivu

Ukoliko aplikacija nije zaštićena alatima za zaštitu koda, otvaranjem .zip arhive

napadaču postaju dostupni određeni elementi aplikacije.

Page 6: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

4

Slika 2.

Elementi aplikacije koji postaju dostupni napadaču otvaranjem .zip arhive

U res direktoriju nalaze se svi resursi aplikacije kao što su xml datoteke izgleda

ekrana, animacije, slike, tekstovi i boje korištene u aplikaciji.

AndroidManifest je xml datoteka u kojoj su definirane osnovne postavke aplikacije

koje Android operacijski sustav učitava prilikom pokretanja aplikacije. Neke od

postavki koje se definiraju unutar te datoteke su naziv paketa aplikacije, dozvole

koje korisnik mora prihvatiti ako želi koristiti aplikaciju, minimalni potrebni nivo

Android sustava na kojem se pokreće aplikacija i nazivi komponenti koje se koriste

unutar aplikacije.

Osim pristupa resursima i konfiguracijskoj datoteci, moguće je pristupiti i izvornom

kodu same aplikacije.

Najjednostavniji način za dohvat podataka ukoliko aplikacija nije zaštićena alatima

za zaštitu koda sastoji se od nekoliko koraka:

1. Početni korak je promjena formata arhive aplikacije iz .apk u .zip. (Slika 1.)

U .zip arhivi nalazi se datoteka classes.dex koja sadrži međukod aplikacije.

2. Zatim je potrebno prevesti .dex datoteku u java izvorni kod. To se može

napraviti s alatom poput dex2jar.

3. Nakon preuzimanja alata potrebno je kopirati classes.dex datoteku u

raspakirani direktorij alata i pokrenuti iz komandne linije sljedeću naredbu:

d2j-dex2jar.bat classes.dex. Ta naredba će potom napraviti novu .jar arhivu.

4. Zatim je potrebno ekstenziju .jar arhive preimenovati u .zip i raspakirati

arhivu. U .zip arhivi nalaze se izvorni razredi aplikacije u .class formatu.

Page 7: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

5

5. .class datoteke moguće je pročitati skidanjem dodatka za razvojnu okolinu

kao što je Android Studio.

6. Nakon instalacije alata .class datoteke se mogu otvoriti u Android Studio

alatu gdje je vidljiv njihov izvorni sadržaj.

Slika 3.

Prikaz izvornog sadržaja datoteke

Drugi način analize je dinamička analiza. Ona zahtjeva da aplikacija bude

pokrenuta i analizira informacije koje su dostupne samo u trenutku izvođenja. Ti

podatci su u statičkoj analizi zapravo nevidljivi. To mogu biti podatci koji se

generiraju u određenom trenutku, ispisi aplikacije (tzv. logovi) ili dekriptirani

zaštićeni dijelovi koda.

S ciljem dobivanja kompletnog uvida u način funkcioniranja aplikacije napadači

često primjenjuju oba pristupa.

Osim korištenja podataka aplikacije, u aplikaciju se može umetnuti određeni dio

programskog koda. Najčešći pokušaj je podmetanje dijela za promjenu određenih

postavki aplikacije. Prilikom implementacije postavki u aplikaciji prikazuju se

predefinirani elementi ekrana. Ti se elementi nazivaju fragmenti. Ukoliko učitavanje

tih elemenata nije zaštićeno napadač bi mogao prikazati svoj novi, izmijenjeni

ekran, koji pruža mogućnosti koje su drugačije od zamišljenih.

U daljnjoj obradi ovog rada bit će obrađeni različiti načini zaštite kojih bi se trebalo

pridržavati prilikom izrade sigurnih Android aplikacija.

Page 8: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

6

2.2. Sigurnosni savjeti pomoću kojih se može povećati razina sigurnosti prilikom izrade Android aplikacije

S ciljem poboljšanja sigurnosti aplikacija, poželjno je pridržavati se određenih uputa

i standarada.

2.2.1. Android dopuštenja

Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

bi aplikacije međusobno komunicirale i dijelile podatke svaka aplikacija mora

eksplicitno podijeliti podatke i dopustiti njihovo korištenje. To se obavlja

deklariranjem potrebnih dopuštenja koja omogućuju korištenje dodatnih

mogućnosti uključujući pristup svojstvima uređaja kao što su npr. kamera, mikrofon,

itd.

2.2.2. Zahtijevanje dopuštenja

Prilikom izrade aplikacije broj zahtijevanih osjetljivih dopuštenja trebalo bi svesti na

minimum. Ograničavanjem nepotrebnog pristupa dijelovima uređaja sprječava se

zlouporaba dopuštenja i poboljšava korisnička pristupačnost čime aplikacija

postaje manje izložena vanjskim napadima. U pravilu ako aplikacija nema potrebe

za određenom funkcionalnošću onda ne bi niti trebala zahtijevati njeno dopuštenje.

Osim dopuštenja (engl. permission) unutar aplikacije moguće je navesti i svojstva

koja aplikacija koristi korištenjem <uses-feature> elementa unutar AndroidManifest

datoteke.

Slika 4. Primjer korištenja svojstva u AndroidManifest datoteci

Ako postoji svojstvo bez kojeg aplikacija ne može raditi onda ga je potrebno

deklarirati korištenjem <uses-feature> s dodatkom <android:required>.

Element deklarira jednu hardversku ili softversku značajku koju aplikacija koristi.

Deklariranje elementa svojstva je samo informativno što znači da Android sustav

ne provjerava podržava li uređaj tražena svojstva.

Page 9: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

7

Štoviše, iako je svojstvo deklarirano to ne znači da ga aplikacija ima pravo koristiti.

Drugim riječima, u svakom slučaju potrebno je zatražiti korisničko dopuštenje.

Android dopuštenja podijeljena su u dvije kategorije. To su normalna (obična)

dopuštenja i opasna (dopuštenja visokog rizika). Normalna dopuštenja su

omogućena na razini sustava, dok je opasna dopuštenja potrebno eksplicitno

zatražiti. Neka od dopuštenja koja spadaju u opasna dopuštenja su dopuštenja za

korištenje kamere, imenika, lokacije, poruka, mikrofona, i dr.

Slika 5.

Popis opasnih dopuštenja

Page 10: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

8

Slika 6.

Primjer traženja opasnog dopuštenja od korisnika

Slika 7.

Primjer korištenja dopuštenja u AndroidManifest datoteci

Prije Android verzije 5.0 sva zahtijevana dopuštenja zatražila su se prilikom

instalacije aplikacije. Nakon Android 5.0 uvedeno je eksplicitno zahtijevanje svakog

pojedinog dopuštenja u trenutku njegove prve uporabe. Sada je moguće odbiti

pojedinačno dopuštenje i koristiti samo određene dijelove aplikacije.

U trenutku kada je određena dozvola potrebna korisnika se pita za njeno

dopuštenje. U slučaju da korisnik odbije može mu se prikazati poruka koja ga

Page 11: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

9

obavještava zašto je specifično dopuštenje potrebno unutar aplikacije. Ako korisnik

svejedno odbije, onda neće imati pristup određenom dijelu aplikacije koji zahtjeva

odbijeno dopuštenje za rad, no moći će koristiti ostatak aplikacije za koje nije

potrebno nikakvo posebno dopuštenje, ili dijelove aplikacije za koje je već dozvolio

potrebna dopuštenja. S druge strane, ako korisnik prihvati zatraženo dopuštenje

moći će dalje nesmetano koristiti aplikaciju. Sva omogućena dopuštenja mogu se

vidjeti i naknadno urediti u postavkama aplikacije na mobilnom uređaju.

Slika 7.

Prikaz omogućenih dopuštenja u postavkama aplikacije

2.2.3. Logički dnevnik

Prilikom razvoja aplikacija programeri često koriste priručne ispise kako bi vidjeli

trenutno stanje aplikacije. Priručni ispisi zapisuju se u logički dnevnik koji može biti

izvor osjetljivih podataka aplikacije.

Prilikom zapisivanja podataka u logički dnevnik potrebno je biti iznimno oprezan.

Podatci logičkog dnevnika su udaljeni resurs kojemu može pristupiti bilo koja

aplikacija koja ima tzv. „read logs“ dopuštenje. Iako su podatci uređaja privremeni

i brišu se prilikom ponovnog pokretanja uređaja, neodgovornim zapisivanjem

Page 12: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

10

osjetljivih podataka u logički dnevnik, razno razni povjerljivi korisnički podatci mogu

se zlonamjerno preuzeti i iskoristiti. Kako bi se spriječilo slučajno zapisivanje

povjerljivih podataka u logički dnevnik preporuča se koristiti „Log.d“ oznaku unutar

aplikacije koja zapisuje podatke samo u razvojnoj verziji.

Slika 8.

Primjer korištenja logiranja unutar razvojne verzije aplikacije

2.2.4. ProGourd

Nakon što je aplikacija napravljena nije ju dovoljno samo zapakirati za korištenje

jer se na taj način predaje i izvorni kod u nezaštićenom obliku. Takav oblik pogodan

je za razne manipulacije i jednostavan pristup načinu implementacije aplikacije.

Drugim riječima, omogućen je jasan uvid u nešto što bi trebalo prikriti.

Kako bi se to spriječilo potrebno je kod zaštititi, a već ugrađeni i preporučeni način

je zašita korištenjem ProGuarda.

ProGuard je alat koji smanjuje, optimizira i prikriva Java izvorni kod. Prikriva kod

na način da zamjenjuje nazive varijabli, metoda i razreda unutar projekta nasumice

generiranim riječima ili slovima kako bi neovlaštenog korisnika spriječio u pristupu

i razumijevanju izvornog koda.

ProGuard se prilikom izrade aplikacije može uključiti ili isključiti iz verzije aplikacije

jednostavnom promjenom logičke vrijednosti varijable minifyEnabled u build.gradle

datoteci projekta.

Page 13: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

11

Slika 9. Korištenje ProGuarda – opcije

Korištenje ProGuarda je preporučljivo koristiti samo prilikom izrade produkcijske

verzije aplikacije jer usporava samu izgradnju aplikacije. Ako se koristi prilikom

razvoja aplikacija će se svaki put optimizirati i obfuscirati iako za to zapravo nema

potrebe.

Slika 10.

ProGuard - Prikaz originalnog i obfusciranog koda

Ukoliko zlonamjerna osoba preuzme instalacijsku datoteku aplikacije koja je

zaštićena ProGuardom to uvelike otežava napadaču pristup izvornom kodu i

njegovo razumijevanje, te dohvat osjetljivih podataka.

Page 14: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

12

Korištenje ProGuarda samo otežava pristup izvornom kodu. On se i dalje može

dohvatiti korištenjem alata kao što je apktool, ali je izvorni kod i dalje u nečitljivom

obliku.

2.2.5. Apktool

Apktool je alat za dekodiranje zatvorenih binarnih Android aplikacija. Korištenje

alata Apktool je poprilično jednostavno. Nakon preuzimanja arhive potrebno je

otvoriti komandnu liniju i upisati sljedeću naredbu (slika 11.) koja dekodira .apk

arhivu aplikacije.

Slika 11.

Prikaz korištenja apktool alata

Slika 12.

Koraci koji se provode prilikom korištenja alata apktool

Page 15: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

13

Izlaz naredbe je arhiva u kojoj se nalaze raspakirane komponente aplikacije.

Slika 13.

Sadržaj arhive nastale pri završetku obrade apktool alata

U smali direktoriju nalazi se obfuscirani kod aplikacije.

Slika 14. Primjer smali koda

Dobiveni „smali“ kod kojeg je proizveo apktool je teško čitljiv i za njegovo potpuno

razumijevanje potrebno je dosta vremena i truda, a rezultat je upitan.

Page 16: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

14

2.2.6. Android Pay

Iako KeyStore nije pružio unificirani i siguran način zaštite podataka na uređaju

podatci moraju biti zaštićeni i u slučaju njihovog ručnog unosa. Nakon što se

podatci ručno unesu oni mogu biti poslani na udaljene poslužitelje kako bi se

iskoristili. U slučaju korištenja kreditnih kartica slanje osjetljivih podataka o kartici

nije preporučljivo. Zato su u Googleu razvili Android Pay.

Prilikom kupovine Android Pay ne šalje prave podatke kreditne kartice prodavaču

već šalje virtualni broj računa koji predstavlja korisnika. Na taj način podatci

korisničke kartice ostaju zaštićeni i u slučaju loše zaštite prodavačeve strane.

Iako bi kod aplikacije mogao biti dobro napisan i sve dodatne mjere poduzete kako

bi se zaštitili podatci potrebno je osigurati aplikaciju od podmetanja i korištenja tuđih

elemenata.

2.2.7. Podmetanje elemenata aplikacije

Unutar postavki aplikacije prikazuju se ekrani koji korisniku dopuštaju prilagodbu

aplikacije prema vlastitom načinu korištenja. Određeni dijelovi mogu biti uključeni,

drugi isključeni, može biti omogućeno spremanje lozinki ili spajanje na Internet

samo ukoliko je dostupna wireless konekcija.

Kako napadači ne bi podmetnuli svoj ekran potrebno je u dio aplikacije postaviti

ograničenje mogućih ekrana. To se radi na način da se definira koji ekrani se mogu

otvoriti ukoliko je potrebno prikazati postavke aplikacije.

Na taj način se sprječava otvaranje ekrana koji nisu pripremljeni od strane autora

aplikacije.

Slika 18.

Metoda za provjeru elemenata ekrana postavki

Page 17: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

15

Ponekad se u postavkama aplikacije mogu mijenjati i osobni podatci korisnika.

Takvi podatci bi se potom slali na poslužitelj kako bi korisnik na svim uređajima s

istim korisničkim imenom imao iste podatke. Podatci koji se šalju putem interneta

na udaljeni poslužitelj mogu također biti meta napada. Podatci se na Internet

najčešće šalju koristeći protokol HTTP.

HTTP protokol je nesigurna verzija protokola u kojoj su podatci koji se šalju svima

dostupni.

HTTPS je sigurna verzija protokola HTTP, pri čemu se „S“ odnosi na sigurnost koja

je osigurana dodavanjem protokola TLS na originalni protokol HTTP. Drugim

riječima, tim pristupom je dodana enkripcija na komunikaciju između klijenta i

poslužitelja, a time podatci postaju sigurniji.

Slika 19.

Primjer nezaštićene komunikacije korištenjem protokola HTTP

Page 18: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

16

Slika 20.

Primjer zaštićene komunikacije korištenjem protokola HTTPS

2.2.8. Android Device Manager

Naposljetku, ukoliko su svi sigurnosni savjeti implementirani uvijek postoji

mogućnost od gubitka samog korisničkog uređaja na kojem se mogu nalaziti

osjetljivi podatci. S dostupnim uređajem napadač može pokušati pronaći

sigurnosne propuste uređaja ili aplikacija na uređaju. Ako korisnik izgubi mobilni

uređaj ili mu se otuđi, sigurnost privatnih podataka je glavni prioritet.

Unutar Android sustava implementiran je način na koji korisnik može upravljati

svojim uređajem na daljinu koristeći Android Device Manager.

Android Device Manager je menadžer uređaja implementiran na razini Android

sustava kojim korisnik može upravljati uređajem na daljinu. Korisnik mora biti

povezan Google korisničkim računom kako bi usluga bila omogućena. Podatke je

moguće i obrisati koristeći povezani račun. Na taj način se mogu zaštititi privatni

podatci na uređaju da ne dođu u posjed neovlaštene osobe. Koristeći Android

Device Manager korisnik također može i locirati gdje se uređaj nalazi, te stoga

pokušati poduzeti odgovarajuće mjere kako bi se uređaj vratio vlasniku.

Page 19: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

17

3. Zaključak

U Androidu još uvijek ne postoji siguran način zaštite podataka unutar aplikacije.

Postoje samo načini na koji se zlonamjernoj osobi može otežati pristup podatcima.

Ideja zaštite podataka unutar aplikacije je natjerati napadača da odustane od svojih

namjera, jer je proces dohvata podataka traje predugo.

U zadnjim inačicama Android biblioteka postoje pokušaji da se napravi zaštićeni

unificirani spremnik podataka aplikacije, no zbog velike količine različitih uređaja i

verzija Androida to još uvijek ne radi kvalitetno.

Sigurnost je veoma širok pojam i u ovom radu nisu pokriveni svi aspekti sigurnosti.

Postoji centralizirana stranica „OWASP Mobile Security Project“ namijenjena

sigurnosnim timovima koja pruža informacije o mogućim sigurnosnim prijetnjama i

načinu kako još bolje unaprijediti sigurnost u aplikacijama.

Zlonamjerni napadači konstantno traže nove načine kako bi narušili sigurnost

aplikacija. Praćenje sigurnosnih trendova sigurno je jedan od boljih načina kako

osigurati kvalitetu i integritet aplikacija.

Page 20: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

18

4. Literatura

[1] H. D and J. K, Cyber crime and the Victimization of Women: Laws, Rights, and Regulations, Hershey, PA, USA: IGI Global. ISBN 978-1-60960-830-9, 2011.

[2] Wikipedia, "https://hr.wikipedia.org/wiki/Sigurnost," [Online]. Link: https://hr.wikipedia.org/wiki/Sigurnost.

[3] »OWASP - Mobile top 10,« [Mrežno]. Link: https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10. [4] V. Šimić, Proces prevođenja forenzičke analize Android operacijskog sustava. Završni rad br. 3478, Zagreb, 2014. [5] »Android developers,« [Mrežno]. Link: https://developer.android.com/studio/command-line/adb.html [6] V. Berger, Zaštita mobilnih aplikacija od zlonamjernih izmjena, Zagreb: Diplomski rad br. 709, 2014. [7] Trinimon, »Is there a way to get the source code from an apk file,« Stacoverflow, 13 5 2013. [Mrežno]. Link: http://stackoverflow.com/a/15395456 [8] »Android developers,« [Mrežno]. Link: https://developer.android.com/guide/topics/manifest/uses-feature-element.html. [9] »Android developers,« [Mrežno]. Link: https://developer.android.com/guide/topics/permissions/requesting.html.

[10] »Fabric,« [Mrežno]. Link: https://fabric.io/blog/2014/02/18/mastering-proguard-for-building-lightweight-android-code/ [11] »Android developers,« [Mrežno]. Link: https://developer.android.com/reference/android/content/Context.html. [12] »Android developers,« [Mrežno]. Link: https://developer.android.com/reference/java/security/KeyStore.html. [13] »Android Authority,« [Mrežno]. Link: http://www.androidauthority.com/use-android-keystore-store-passwords-sensitive-information-623779/. [14] Dori, »Stackoverflow - How to detect if pin password pattern is required to unlock phone,« [Mrežno]. Link: http://stackoverflow.com/questions/7879143/how-to-detect-if-pin-password-pattern-is-required-to-unlock-phone/27801128#27801128. [15] »OWASP Mobile Security Project,« [Mrežno]. Link: https://www.owasp.org/index.php/OWASP_Mobile_Security_Project. [16] A. Baotić, »Realm - Best Practices in App Security,« 27 8 2016. [Mrežno]. Link: https://news.realm.io/news/360andev-ana-baotic-best-practices-app-security-android/.

Page 21: Zaštita i sigurnost operacijskog sustava Androidnevena.lss.hr/recordings/fer/predmeti/racfor/2018/...Aplikacije unutar Android operativnog sustava odvojene su u zasebne cjeline. Kako

19

5. Sažetak

Sigurnost je važan element u današnjem svijetu. Velik broj kriminalnih radnji na

mobilnim uređajima događa se zbog sigurnosnih propusta. Sigurnost korisničkih

podataka na mobilnim uređajima s Android operacijskim sustavom se može narušiti

lošom implementacijom samih aplikacija, ali i poboljšati korištenjem određenih

uputa prilikom njihove izrade. U ovom radu navedeni su primjeri na koje načine

napadač može pristupiti osjetljivim podatcima korisnika, te kako ih potom

zloupotrijebiti. Navedeni su i načini na koje se korisnik može zaštititi od takvih

napada, te smjernice koje bi se trebale koristiti prilikom implementacije aplikacija

kako bi se spriječio neovlašteni pristup osjetljivim podatcima.