Na Google I/O smo se seznanili z izboljšavami, ki jih prinaša Android Q. Nove varnostne in zasebnostne funkcije ter izboljšave so povsod v novem operacijskem sistemu Android.
Vsaka nova različica operacijskega sistema Android prinaša izboljšave skoraj vseh vidikov, od dizajna, funkcij, API-jev in še več. Na Google I/O v začetku tega meseca smo izvedeli za vse izboljšave Androida Q bo prinesel, in seveda na konferenci niso izostala nova obvestila o zasebnosti in varnosti. Varnost platforme je eden najpomembnejših vidikov operacijskega sistema, zlasti za operacijski sistem, ki ga nosimo povsod s seboj v žepu. Če Android ne bi bil varen, mu ne bi zaupali pol toliko funkcij, kot jih imamo. NFC plačila ne bi prišla v poštev, deljenje datotek bi bilo kvečjemu dvomljivo, povezovanje z drugimi napravami pa čista norost. Kljub dolgotrajni težavi z razdrobljenostjo različice je Google naredil izjemno dobro, da je število varnostnih težav zmanjšal na minimum.
Android je dozorel v OS, ki je hkrati bogat s funkcijami in zelo varen. Seveda pa je vedno prostor za izboljšave. Obstaja veliko dejavnikov, ki prispevajo k tej varnosti, in nekaj izmed njih se na nek način izboljšuje z Androidom Q.
Šifriranje
Ker je ena najosnovnejših varnostnih metod, je pomembno, da vsaka naprava podpira močno šifriranje. Številni proizvajalci originalne opreme dandanes pošiljajo svoje naprave z namensko strojno opremo za šifriranje. Čeprav je to koristno, je tudi drago. Kot taka je bila namenska strojna oprema običajno omejena za naprave srednjega do visokega nivoja. To ne pomeni, da naprave nizkega cenovnega razreda ne more podpirajo šifriranje, vendar je brez strojno pospešenega šifriranja splošna uporabniška izkušnja slabša zaradi počasnega časa branja/pisanja. Tu nastopi Adiantum.
Adiantum
Februarja je Google napovedal Adiantum kot alternativo šifrirni algoritem za telefone nižjega cenovnega razreda ki ne podpirajo navadnih nizov navodil AES. Adiantum je posebej zasnovan za delovanje brez namenske strojne opreme. Služi kot lažja alternativa Androidovemu običajnemu šifriranju AES. Googlova merila uspešnosti Povejte nam, da je dejansko 5-krat hitrejši od AES, slaba stran pa je, da nekoliko ogroža varnost. Zaradi tega je idealen kandidat za telefone nižjega cenovnega razreda, kot so tisti, ki jih poganja Android Go Edition. Adiantum je tudi za izdelke, kot so pametne ure in različne naprave interneta stvari.
Do sedaj je bil Adiantum neobvezen; proizvajalci bi ga lahko omogočili v napravah, ki se zaženejo s sistemom Android Pie, vendar to ni bil privzeti algoritem šifriranja. Zdaj je Adiantum izvorno vključen kot del Androida Q. To pomeni, da bodo vse naprave, ki se zaženejo s Q, morale šifrirati uporabniške podatke, brez izjem. Posledično imajo naprave, ki se zaženejo z Androidom Q, zagotovljeno šifriranje shranjevanja, pa naj bo to prek Adiantuma ali ne.
Varnostna knjižnica Jetpack
Jetpack je niz podpornih knjižnic za Android in eden najnovejših dodatkov je v različici alfa: varnostna knjižnica Jetpack. Knjižnica poenostavi postopek varovanja vaše aplikacije z obravnavanjem stvari, kot je upravljanje strojno podprtih shramb ključev ter generiranje in preverjanje ključev.
TLS 1.3
Shramba pa ni edino področje, kjer je bilo šifriranje izboljšano. Komunikacija z drugimi napravami se je z uvedbo Podpora za TLS 1.3 privzeto. TLS 1.3 je najnovejši omrežni kriptografski standard, ki ga je IETF dokončal avgusta 2018. TLS 1.3 zagotavlja večjo zasebnost za izmenjavo podatkov s šifriranjem več rokovanj pri pogajanjih. Poleg tega je hitrejši od TLS 1.2, ker je celotno povratno potovanje odstranjeno iz rokovanja pri vzpostavitvi povezave. Skupaj z učinkovitejšimi sodobnimi algoritmi to omogoča do 40-odstotno povečanje hitrosti.
TLS je zdaj mogoče posodobiti neposredno iz Googla Play, ker je del komponente »Conscrypt«. Več o tem in Project Mainline lahko preberete tukaj.
Glede na to, da vsak dan zaupamo toliko občutljivim transakcijam v naših napravah, je nadgrajeni TLS bolj pomemben kot kdaj koli prej. Shranjevanje podobnih vstopnih kart – in celo digitalna vozniška dovoljenja na neki točki v prihodnosti - na Androidu pomeni, da morajo vse naprave šifrirati uporabniške podatke, kolikor je le mogoče. Adiantum in prisilno šifriranje bosta utrla pot za shranjevanje tudi najbolj občutljivih podatkov na najcenejših napravah. Vendar šifriranje ni edini način, s katerim Google povečuje varnost Androida v izdaji Q.
Spremembe dovoljenj in zasebnosti v sistemu Android Q
Obseg shranjevanja
Scoped Storage je nov zaščitni ukrep, ki se uporablja za omejitev branja/pisanja datotek v zunanjem pomnilniku, ki niso vsebovane v njihovem lastnem imeniku v peskovniku, specifičnem za aplikacijo. Googlov cilj je trojen: boljše dodeljevanje, katere aplikacije imajo nadzor nad temi datotekami, zaščita podatkov aplikacij in zaščita uporabniških podatkov.
Google podvoji API MediaStore za skupne avdio, video in slikovne vsebine. Privzeto lahko vse aplikacije vstavljajo, spreminjajo ali brišejo lastne datoteke v MediaStore. Slike, MediaStore. Video in MediaStore. Zvočne zbirke brez potrebe po kakršnih koli dovoljenjih. Android Q dodaja tudi novost MediaStore. Prenosi zbirka za shranjevanje vsebine, ki jo prenesejo uporabniki, h kateri lahko prispevajo vse aplikacije, ki uporabljajo API MediaStore. Medtem ko se datoteke, shranjene v imenikih, specifičnih za aplikacije v peskovniku, po odstranitvi izbrišejo, vse datoteke, prispevane v zbirke MediaStore, ostanejo po odstranitvi.
Za dostop do datotek, ki jih je ustvarila druga aplikacija – ne glede na to, ali je datoteka v eni od zbirk MediaStore ali zunaj njih – mora aplikacija uporabljati ogrodje za dostop do shrambe. Poleg tega so metapodatki EXIF slik popravljeni, razen če ima vaša aplikacija odobreno novo dovoljenje ACCESS_MEDIA_LOCATION. V sistemu Android Q lahko aplikacije tudi nadzirajo, na katero pomnilniško napravo naj prenesejo predstavnost, tako da poizvedujejo po imenu nosilca z uporabo getExternalVolume().
Google je sprva uvedel omejitve Scoped Storage za vse aplikacije v sistemu Android Q ne glede na njihove ciljne ravni API-ja, vendar je podjetje po povratnih informacijah daje razvijalcem več časa narediti prilagoditve. Vse podrobnosti o spremembah Scoped Storage lahko najdete na tej strani, več o Googlovih priporočilih o najboljših praksah za skupno shranjevanje pa lahko izveste do gledam ta Google I/O govoriti.
Opozorila za aplikacije, ki ciljajo na raven API < 23
Vendar se omejitve dovoljenj tu ne končajo. Namestitev aplikacije, ki cilja na raven API-ja, nižjo od 23 (Android Lollipop ali starejši), bo povzročila, da bo operacijski sistem uporabniku prikazal opozorilo, če ta aplikacija ob namestitvi zahteva občutljiva dovoljenja. Pred namestitvijo bodo imeli uporabniki možnost, da ročno določijo, katera dovoljenja želijo podeliti aplikaciji, preden nadaljujejo. Tako Android Q aplikacijam ne dovoljuje več, da zaobidejo dovoljenja za čas izvajanja.
Morebitna SYSTEM_ALERT_DEPRECATION v korist Bubbles API
Bubbles API v akciji. Vir: Google.
Dovoljenja za prekrivanje (SYSTEM_ALERT_WINDOW) ni več mogoče odobriti za aplikacije, ki se izvajajo v sistemu Android Q (Go Edition). Za naprave, ki niso Go Edition, Google spodbuja razvijalce k novemu API-ju Bubbles. Bubbles API je funkcija, predstavljena v Android Q Beta 2 ki omogoča funkcionalnost, ki je podobna klepetalnicam Facebook Messengerja. Obvestila iz aplikacij se prikažejo kot majhni mehurčki na robovih zaslona, ki se razširijo, ko se uporabnik dotakne. Znotraj oblačka lahko aplikacija prikaže dejavnost.
Ta sprememba je bila nujna, ker omogočanje aplikacijam, da prosto rišejo prekrivke nad drugimi aplikacijami, predstavlja očitno varnostno tveganje. Zloglasni "Plašč in bodalo" exploit je v veliki meri uporabil to slabost. Funkcionalnost API-ja za prekrivanje je bila omejena že v sistemu Android Oreo, zdaj pa je izdaja Go za Android Q v celoti odstranila dostop do API-ja z prihodnjo izdajo, da jo popolnoma opustimo.
Omejitve zagona dejavnosti v ozadju
Aplikacije v ozadju ne morejo več samodejno zagnati dejavnosti, ko je telefon odklenjen, ne glede na njihovo ciljno raven API-ja. Obstaja cel seznam pogojev, pod katerimi lahko aplikacije zdaj izvajajo dejavnosti, ki jih lahko preberete tukaj. Aplikacije v ozadju, ki ne izpolnjujejo teh pogojev in želijo nujno zagnati aktivnost, bodo morale zdaj o tem obvestiti uporabnika z obvestilom. Če je obvestilo ustvarjeno s čakajočim celozaslonskim namenom, se namen sproži takoj, če je zaslon izklopljen – uporabno za alarme ali dohodne klice.
Omejitev dostopa do odložišča v ozadju
Dostop do odložišča v ozadju je ni več mogoče. Katera koli aplikacija, ki ni v ospredju ali nastavljena kot privzeta metoda vnosa, ne bo mogla na noben način brati vašega odložišča. To še posebej močno prizadene aplikacije, kot so upravitelji odložišča. Google pravi, da ta sprememba vpliva samo na aplikacije, ki ciljajo izključno na Android Q, vendar naše testiranje kaže, da omejitev ne diskriminira; nobena aplikacija, ki smo jo preizkusili, ni mogla videti odložišča.
Ta sprememba je seveda smiselna. V odložišče pogosto kopiramo občutljive podatke – stvari, kot so gesla in podatki o kreditnih karticah – vendar je še vedno škoda videti, da upravitelji odložišča propadejo.
Dostop do lokacije samo, ko je aplikacija v uporabi
Nova uporabniško omogočena nastavitev dovoljuje aplikacijam samo doseganje vaše lokacije, medtem ko je aplikacija v uporabi. Najnovejša različica Android Q beta je dodala tudi obvestilo, ki vas opomni, če ste aplikaciji odobrili stalen dostop do lokacije.
Vloge
Dodan je bil nov API "Vloge". Vloge so v bistvu skupine s prednastavljenimi dovoljenji za dostop. Na primer, aplikacije z vlogo galerije imajo lahko dostop do vaših predstavnostnih map, medtem ko lahko aplikacije z vlogo klicalnika obravnavajo klice. Aplikacije, ki jim uporabnik dodeli določeno vlogo, morajo imeti tudi zahtevane komponente. Aplikacije z vlogo galerije morajo na primer imeti filter namena dejanj android.namen.ukrepanje.GLAVNO in filter namena kategorije android.intent.category. APP_GALLERY da se prikaže kot aplikacija za galerijo v nastavitvah.
Ploščica za hitre nastavitve Senzorji izklopljeni
Na voljo je nova ploščica za hitre nastavitve »Senzorji izklopljeni«, ki izklopi odčitke iz vse senzorji (merilnik pospeška, žiroskop itd.) na vaši napravi za resnično zasebnost. Ta ploščica hitrih nastavitev je privzeto skrita, vendar jo lahko omogočite tako, da odprete »ploščice za razvijalce hitrih nastavitev« v možnostih za razvijalce.
Omejitve za /proc/net
Aplikacije ne morejo več dostop do proc/net, zaradi česar storitve, kot je netstat, niso več izvedljive. To ščiti uporabnike pred zlonamernimi aplikacijami, ki spremljajo, s katerimi spletnimi mesti in storitvami se povezujejo. Aplikacije, ki potrebujejo stalen dostop, kot so VPN, morajo uporabiti NetworkStatsManager in ConnectivityManager razredi.
Naključni naslovi MAC
Vaš naslov MAC je edinstven identifikator, ki ga omrežja uporabljajo, da si zapomnijo, katera naprava je katera. V sistemu Android Q bo vaša naprava vsakič, ko se povežete z novim omrežjem, uporabila nov, naključno izbran naslov MAC. Kot rezultat, omrežja ne morejo slediti vaši lokaciji tako, da povežete omrežja WiFi, s katerimi se povezujete, z naslovom MAC vašega telefona. Dejanski, tovarniški naslov MAC naprave lahko še vedno pridobijo aplikacije prek getWifiMacAddress() ukaz.
Utrjevanje platforme v sistemu Android Q
En sam hrošč v sistemu Android ne pomeni, da imajo napadalci zdaj popoln dostop do operacijskega sistema ali da lahko zaobidejo kateri koli varnostni sistem. To je deloma posledica številnih zaščitnih ukrepov, kot so izolacija procesa, zmanjšanje površine napada, arhitekturna razgradnja in ublažitev izkoriščanja. Zaradi teh varovalk je ranljivosti težje ali celo nemogoče izkoristiti. Posledično napadalci običajno potrebujejo številne ranljivosti, preden lahko dosežejo svoje cilje. V preteklosti smo bili priča napadom kot je DRAMMER ki delujejo tako, da združijo več podvigov skupaj.
Android Q uporablja zaščitne ukrepe, kot so ti, in jih uporablja za bolj občutljiva področja, kot so mediji in komponente Bluetooth, skupaj z jedrom. To prinaša nekaj opaznih izboljšav.
- Omejeni peskovnik za programske kodeke.
- Povečana produkcijska uporaba razkužil za ublažitev celotnih razredov ranljivosti v komponentah, ki obdelujejo nezaupljivo vsebino.
- Shadow Call Stack, ki zagotavlja integriteto nadzornega toka na povratnem robu (CFI) in dopolnjuje zaščito na sprednjem robu, ki jo zagotavlja CFI LLVM.
- Zaščita randomizacije postavitve naslovnega prostora (ASLR) pred uhajanjem z uporabo eXecute-Only Memory (XOM).
- Uvedba Scudo utrjenega razdeljevalnika, ki otežuje izkoriščanje številnih ranljivosti, povezanih s kopico.
To je veliko programskega žargona. Bistvo tega je, da se programski kodeki zdaj izvajajo v peskovnikih, ki imajo manj privilegijev, kar pomeni, manj verjetno je, da bo zlonamerna programska oprema lahko izvajala ukaze, ki bi lahko poškodovali vašo napravo, kot na primer v primeru od Trema davnega leta 2015.
Drugič, Android zdaj preverja dostop do matrike izven meja na več mestih, pa tudi prelive. Preprečevanje prelivanja in dajanje navodil procesom za varno okvaro bistveno zmanjša odstotek ranljivosti uporabniškega prostora. To pomeni, da če zlonamerni program poskuša povzročiti zrušitev nečesa tako, da namerno poskuša dobili dostop do podatkov, ki ne obstajajo, bo Android zdaj to prepoznal in namesto tega zapustil program strmoglavljenje.
Tretjič, Shadow Call Stack ščiti povratne naslove tako, da jih shrani v ločen senčni sklad, zaradi česar so nedostopni običajnim programom. Povratni naslovi so običajno kazalci na funkcije, zato je zaščita teh naslovov pomembna za zagotovitev, da napadalci ne morejo dostopati do funkcij, do katerih ne bi smeli.
Četrtič, ASLR je zaščitna metoda, ki naključno določa, kje so programi shranjeni v pomnilniku, zaradi česar težje ugotoviti, kje so programi shranjeni v pomnilniku glede na lokacijo drugih programi. Pomnilnik samo eXecute to okrepi tako, da naredi kodo neberljivo.
Nazadnje, Scudo je dinamični razdelilnik kopice, ki proaktivno upravlja pomnilnik na način, zaradi katerega je veliko težje izkoristiti ranljivosti na kopici. Več o tem lahko preberete tukaj.
Preverjanje pristnosti
Posodobitve za BiometricPrompt v sistemu Android Q
Google je predstavil nov API BiometricPrompt pred več kot enim letom, v Android P Developer Preview 2. Namenjen je bil splošnemu pozivu Androida za biometrične metode odklepanja. Ideja je, da naprave, ki podpirajo več kot samo skeniranje prstnih odtisov, npr. skeniranje šarenice na liniji Samsung Galaxy S, bo lahko uporabil te metode, ko bodo aplikacije zahtevale preverjanje.
Android Q dodaja robustno podporo za preverjanje obraza in prstnih odtisov ter razširitev API-ja za podporo implicitne avtentikacije. Eksplicitna avtentikacija zahteva, da se uporabnik na nek način overi, preden nadaljuje, medtem ko implicitna ne potrebuje več interakcije uporabnika.
Poleg tega lahko aplikacije zdaj preverijo, ali naprava podpira biometrično preverjanje pristnosti s preprostim klic funkcije, kar jim omogoča, da ne izgubljajo časa s priklicem BiometricPrompt na napravah, ki tega ne storijo podpiraj. Idealna uporaba tega bi bila, če želijo aplikacije dati nastavitev »Omogoči biometrično prijavo« glede na to, ali naprava podpira biometrično preverjanje pristnosti ali ne.
Gradniki za podporo elektronskemu ID-ju
V začetku tega leta smo odkrili dokaze, da je Google delo na podpori za elektronske osebne izkaznice v sistemu Android. Na I/O nas je Google obvestil o napredku funkcije. Google pravi, da sodelujejo z ISO pri standardizaciji izvajanja mobilnih vozniških dovoljenj, z elektronskimi potnimi listi v delu. Za razvijalce bo Google zagotovil knjižnico Jetpack, da bodo lahko začeli izdelovati aplikacije za identifikacijo.
Projekt Mainline v sistemu Android Q
Project Mainline je velik Googlov podvig za zmanjšanje razdrobljenosti nekaterih sistemskih modulov in aplikacij. Google bo nadziral posodobitve za približno 12 sistemskih komponent prek Trgovine Play. O projektu Mainline smo govorili poglobljeno v prejšnjem članku če vas zanima branje več.
Zaključek
Varnost je bila vedno osrednji del razvoja Androida. Google je opravil impresivno delo pri posodabljanju Androida z najnovejšimi varnostnimi funkcijami, poleg tega pa je uvedel tudi nekaj lastnih inovacij. Ta razvojni proces nadaljujejo z Androidom Q, ki ga napolnijo z varnostnimi funkcijami, ki poskrbijo, da so vaši podatki varnejši kot kdaj koli prej.
Vir 1: Kaj je novega v varnosti Android Q [Google]
Vir 2: Varnost v sistemu Android: Kaj je naslednje [Google]
Vir 3: Postavite izboljšave utrjevanja v čakalno vrsto [Google]
S prispevkom Mishaala Rahmana in Adama Conwaya.