Ovo je stara izmjena dokumenta!
Tema ovog rada je Sigurnost operacijskog sustava iOS. Nakon uvodnog poglavlja ukratko je predstavljen sam operacijski sustav iOS, njegove osnovne karakteristike te slojevita arhitektura. Naznačene su glavne značajke svakog sloja.
U 2. poglavlju opisani su sigurnosni rizici te kako je neke od njih moguće spriječiti ili smanjiti. Sigurnosni model iOS sustava, odnosno sigurnost podataka, aplikacija i samog sustava detaljnije je opisan u poglavlju 3.
Na kraju je zaključak čitavog rada te popis korištene literature.
Svrha mobilnih telefona odavno je prestala biti samo slanje poruka (SMS, MMS) i uspostava poziva. Danas se od mobilnih uređaja očekuje spajanje na internet, kompatibilnost s mnogim aplikacijama, primanje i slanje elektroničke pošte, korištenje navigacije i dr. Prekretnicu u novom poimanju mobilnih uređaja potaknula je američka tvrtka Apple 2007. godine razvojem prvog pametnog telefona nazvanog iPhone čiji se rad temelji na operacijskom sustavu iOS.
iOS osim iPhonea pokreće i iPhone, iPod touch, iPad te Apple TV. Kao i ostali operacijski sustavi, iOS osim što pokreće uređaje pruža i sučelje prema korisniku. Najnovija inačica sustava je iOS 14, (trenutno 14.3) koji donosi poboljšanja i unaprjeđenja u odnosu na prethodne verzije. Novosti koje donosi ova inačica detaljno su opisane na sljedećim poveznicama: https://www.apple.com/ios/ios-14/features/, https://www.cnet.com/news/10-hidden-iphone-12-features-we-discovered-after-installing-ios-14-apple-operating-system/, a pojedinosti o prethodnim inačicama iOS-a moguće je pronaći na poveznici u nastavku: https://9to5mac.com/guides/ios/.
Upravo zbog povećanja funkcionalnosti koje pružaju spomenuti uređaji povećavaju se i sigurnosni rizici, stoga ovaj rad, uz kratki opis iOS athitekture, obrađuje sigurnost operacijskog sustava iOS opisujući najčešće rizike te sigurnosne mehanizme za sprječavanje istih.
Arhitektura iOS-a je slojevita, komunikacija između aplikacija i sklopovlja mobilnog uređaja ne odvija se direktno već pomoću posrednog sloja. Sastoji se od četiri apstrakcijska sloja:
Uloga nižih slojeva je da pružaju osnovne usluge, a viših da pružaju korisničko sučelje i složenu grafiku.
Core OS sadrži funkcionalnosti niže razine koje programeri najčešće koriste kroz programska okruženja (engl. framework). Sve iOS tehnologije nadovezuju se na značajke koje pruža ovaj sloj. Core OS sadrži: Core Bluetooth Framework, External Accessory Framework, Accelerate Framework, Security Services Framework, Local Authorisation Framework.
Sljedeći sloj je Core Services koji sadrži radna okruženja kao što su Cloudkit, Core Foundation, Core Dana, Address Book, Core Motion, Healthkit, Core Location. Uz to sadrži i sistemske servise koje za svoj rad koriste gotovo sve aplikacije. Ovaj sloj je od velikog značaja za sigurnost sustava jer se u njemu nalaze sučelja za upravljanje sigurnošću (Keychain Services, Certificate, Key and Trust services te Randomization Services) koja se temelje na servisima sloja Core OS, kernel. S obzirom na to da pozadinski proces Security Services, koji pruža podršku sigurnosnim protokolima, nema javnih sučelja aplikacije koriste navedena sigurnosna sučelja za komunikaciju s njim.
Sloj Media omogućuje upravljanje grafikom, zvukom te video sadržajima. Sadrži tehnologije kao što su: UIKit Graphics, Core Graphics Framework, Core Animation, Media Player Framework, AV Kit.
Najviši sloj je Cocoa Touch koji omogućuje izradu aplikacija za sustav iOS. Sadrži programska rješenja putem kojih se ostvaruje višezadaćnost, interaktivne obavijesti, prepoznavanje gesta te unos podataka i korištenje sadržaja putem ekrana osjetljivog na dodir. Sadrži radna okruženja EventKit, GameKit te MapKit.
Kao i svaki operacijski sustav, iOS je podložan sigurnosnim rizicima koji mogu biti uzorkovani sigurnosnim propustima u izgradnji sustava ili pak neopreznim ponašanjem korisnika. Zlonamjerne aplikacije, krađa i/ili izmjena podataka tijekom razmjene preko mreže, izvlačenje podataka iz izgubljenog uređaja te rizik uzrokovan samim korisnikom najznačajniji su faktori koji izravno utječu na tajnost podataka koji se nalaze na uređaju.
Zlonamjerne aplikacije ozbiljan su problem sigurnosti jer omogućavaju neovlašten pristup informacijama i podacima pohranjenim na uređaju. S obzirom na to da se takve aplikacije uglavnom prenose porukama elektroničke pošte, SMS porukama, Bluetooth razmjenom i sl., na Appleovim uređajima jedini način instaliranja novih aplikacije je putem App Storea gdje sve aplikacije prolaze strogu provjeru čime se nastoji ukloniti sve aplikacije koje sadrže zlonamjerni program. Ovaj način zaštite može se zaobići otključavanjem uređaja (engl. jailbreaking) čime se omogućuje pristup operacijskom sustavu i korištenje aplikacija i dodataka koji nisu dostupni u App Store. Instalacija takvih aplikacija veliki je sigurnosni rizik jer one mogu preuzeti kontrolu nad uređajem i ugroziti pohranjene podatke. Otključavanje se može poništiti obnavljanjem operacijskog sustava putem iTunesa. Uz to, da bi doskočilo problemu zlonamjernih aplikacija, Apple koristi Appcode signing, odnosno potpisivanje koda aplikacije čime osigurava autentičnost koda, tj. potvrđuje da dolazi od legitimnog izvora i nije mijenjan otkad je potpisan.
Također, veliki problem je i krađa podataka iz izgubljenog/ukradenog uređaja. Na mobilne uređaje sprema se mnoštvo podataka o pozivima, porukama, lokaciji korisnika, mrežnim pristupnim točkama, lozinke, … Ti podaci se uglavnom spremaju u plist (Property List) obliku koji se može čitati Property List Editorom ili kao SQLite baza podataka. Osim postojećih podataka, iz uređaja se mogu izvući i obrisani podaci pomoću alata kao što su Lantern, Susteen Secure View, Paraben Device Seizure i dr.
Osim krađe podataka direktno iz uređaja postoji rizik od krađe ili promjene podataka presretanjem u mreži za vrijeme njihove razmjene. Pri tome se ističe napad man-in-the-middle (MITM) gdje napadač presreće kriptirane poruke, dekriptira ih i potom ponovno kriptira vlastitim ključem te prosljeđuje dalje. Kod takvog napada korisnici imaju dojam sigurne komunikacije.
Također, ranjivost podataka u razmjeni izraženija je korištenjem javnih, nezaštićenih Wi-Fi mreža. Budući da uređaji preferiraju Wi-Fi mreže u odnosu na mobilne podatkovne mreže, automatski se prebacuju na dostupan Wi-Fi i time olakšavaju prisluškivanje prometa. Kao jedan od odgovora na ovaj rizik nudi se korištenje Virtual private network (VPN), odnosno mrežne metode koja uz korištenje nekoliko vrsta sigurnosnih protokola omogućuje zaštićenu razmjenu podataka između udaljenih mjesta. Koristeći VPN zaposlenici mogu na siguran način pristupiti poslovnoj mreži s mobilnog uređaja.
U trendu povećanja broja korisnika mobilnih uređaja povećavaju se sigurnosni rizici uzrokovani ljudskim faktorom obzirom na to da postoji velik broj korisnika s nedovoljnim znanjem. Napadači pokušavaju manipulirati korisnicima kako bi otkrili što više osjetljivih informacija (tzv. socijalni inženjering). Međutim, korisnici sve više prepoznaju tzv. phishing poruke elektroničke pošte, lažne internetske stranice i slično te ih zaobilaze.
S ciljem ostvarenja što sigurnijeg operacijskog sustava razvijaju se brojni mehanizmi i metode zaštite koji sprječavaju izvođenje zlonamjernog koda, osiguravaju zaštitu podataka te mrežne komunikacije. U nastavku su opisani takvi mehanizmi.
Sigurnosni model iOS sustava može se podijeliti u tri komponente, to su: sigurnost sustava, sigurnost podataka te aplikacijska sigurnost. U svakoj od navedenih komponenti postoji nekoliko ključnih načina ostvarivanja zaštite koji su opisani u nastavku.
Kod osiguravanja sigurnosti sustava vrlo važnu ulogu ima iOS secure boot chain, čija izvedba je grafički prikazana na slici u nastavku.
Kada je iOS uređaj uključen, iOS secure boot chain odmah izvršava kod s BOOT ROM-a. Sadrži Appleov certifikat s javnim ključem koji koristi za provjeru je li boot-loader pravilno i nepromijenjeno učitan. LLB provjerava iBoot koji pak potvrđuje iOS kernel prije nego što ga pokrene.
Zatim Secure Enclave Processor (SEP), koprocesor proizveden unutar sustava na čipu. Ovaj koprocesor pokreće vlastiti operacijski sustav kojim postiže sigurno pokretanje neovisno o ostatku uređaja te prima vlastita ažuriranja neovisno o ostalim procesorskim komponentama. Glavna zadaća SEP-a je rukovanje ključevima te sprječava izravni pristup osjetljivim podacima od strane glavnog procesora.
Iako nema posebno sučelje za autorizaciju korisnika, početni ekran može se zaključati i onemogućiti pristup dok se ne unese ispravna lozinka ili prepozna otisak prsta (engl. Touch ID) ili lice (engl. Face ID). Skenirani otisak prsta pohranjuje se u SEP-u kao matematički zapis, dok se za prepoznavanje lica koristi dubinska kamera. Geometrija lica precizno se mapira, korištenjem neuronskih mreža provjerava se podudaranje te sprječava lažno predstavljanje. Podaci o licu također se pohranjuju u SEP.
Kako bi se osigurala sigurnost podataka svaki iOS uređaj ima svoj jedinstveni ID (engl. unique ID, UID) i ID grupe uređaja (engl. group ID, GUI) koji su 256-bitni AES ključevi kompajlirani u procesor aplikacije i SEP tijekom proizvodnje. Pomoću UID moguće je povezivanje podataka s određenim uređajem. U slučaju da se memorijski čip jednog uređaja premjesti na drugi uređaj, šifrirane datoteke neće biti dostupne.
Također za sigurnost podataka koristi se i niz ključeva čime se omogućuje sigurno spremanje lozinki, certifikata, korisnikovih bilješki i sl. Svaka aplikacija ima svoj niz ključeva te ne može pristupiti ključevima druge aplikacije. Programsko sučelje Certificate, Key and Trust Services koje se nalazi na već spomenutom sloju Core Services, služi za upravljanje javnim i privatnim ključevima, certifikatima i ostalim povjerljivim podacima.
Putem iTunesa ostvaruju se sigurnosne kopije podataka. Kako bi se spriječila krađa podataka s uređaja s kojim korisnik sinkronizira svoj iOS uređaj bitno je uključiti šifriranje sigurnosnih kopija u iTunesu.
Podatke je moguće brisati udaljeno, putem web servisa iCloud. Osim brisanja podataka, putem iClouda može se promijeniti lozinka, ali i pratiti geografski položaj uređaja.
Sigurnost aplikacija postiže se redovitim ažuriranjem čime se ispravljaju sigurnosni, ali i drugi propusti pojedine aplikacije te poboljšava funkcionalnost. Svaka aplikacija pokreće se unutar sandboxa, jedinstvenog direktorija sigurnog okruženja gdje ima pristup ograničenom skupu resursa. Na taj način onemogućen je pristup podacima drugih aplikacija, ali i prepisivanje memorije. Sandbox mehanizam prikazan je na sljedećoj slici.
Kao metodu zaštite od neželjenog koda unutar aplikacija iOS koristi Address Space Layout Randomization, ASLR. Kako bi napadaču otežao pronalaženje mjesta u memoriji koje želi prepisati svojim kodom, ASLR dodjeljuje slučajne lokacije dijelovima programa u memoriji. Svaki put kada se program pokrene, njegove komponente se smještaju na različitim adresama u virtualnoj memoriji. Također, već je u poglavlju o rizicima spomenuta važnost osiguravanja pouzdanog izvora aplikacija te na koji način se postiže.
Konstantnim napretkom tehnologije, razvojem novih funkcionalnosti, povećanjem mogućnosti digitalnih uređaja povećavaju se i sigurnosni rizici. Posebno sigurnosno osjetljivo područje jesu mrežne tehnologije koje su jedna od glavnih meta zlonamjernim korisnicima.
Uz to, postoje i drugi sigurnosni problemi vezani uz iOS sustav, primjerice neželjeno izvlačenje podataka iz uređaja do koje najčešće dolazi uslijed krađe ili gubitka uređaja. Nadalje, problem predstavlja i modifikacija ili krađa podataka tijekom razmjene u mreži koju korisnici najčešće ne otkriju na vrijeme. Sveprisutni zlonamjerni programi koji pokušavaju doprijeti do uređaja na razne načine također predstavljaju izazov u ostvarenju sigurnosti sustava. Također, rast broja korisnika koji svojim neopreznim i ravnodušnim ponašanjem mogu uvelike ugroziti svoju sigurnost, ali i sigurnost drugih korisnika.
Kako bi spriječio neželjene pojave, Apple neprestano radi na unaprjeđenju sigurnosnih mehanizama i metoda zaštite. Neki od značajnijih, koji su i opisani u ovom radu, jesu autorizacija korisnika, sinkronizacija i šifriranje podataka, korištenje sandboxa, ASLR-a, SEP-a i dr.