Na Google I/O smo naučili o poboljšanjima koja donosi Android Q. Nove značajke i poboljšanja sigurnosti i privatnosti prisutni su u novom OS-u Android.
Svaka nova verzija OS-a Android donosi poboljšanja u gotovo svakom aspektu od dizajna, značajki, API-ja i više. Na Google I/O ranije ovog mjeseca naučili smo o svemu poboljšanja koja Android Q će donijeti, i naravno, nove najave privatnosti i sigurnosti nisu izostavljene na konferenciji. Sigurnost platforme jedan je od najvažnijih aspekata OS-a, posebno za OS koji nosimo posvuda sa sobom u svojim džepovima. Da Android nije siguran, ne bismo mu vjerovali ni upola toliko funkcija koliko imamo. NFC plaćanja ne bi dolazila u obzir, dijeljenje datoteka bilo bi u najboljem slučaju dvojbeno, a povezivanje s drugim uređajima čisto ludilo. Unatoč dugotrajnom problemu fragmentacije verzija, Google je učinio izuzetno dobro kako bi broj sigurnosnih problema sveo na minimum.
Android je sazrio u OS koji je i bogat značajkama i vrlo siguran. Ali, naravno, uvijek ima mjesta za napredak. Mnogo je čimbenika koji pridonose ovoj sigurnosti, a neki od njih se na neki način poboljšavaju s Androidom Q.
Šifriranje
Budući da je to jedna od najosnovnijih sigurnosnih metoda, važno je da svaki uređaj podržava jaku enkripciju. Mnogi OEM-ovi ovih dana isporučuju svoje uređaje s namjenskim hardverom za šifriranje. Iako je ovo korisno, također je i skupo. Kao takav, namjenski hardver obično je ograničen za uređaje srednje do visoke razine. To ne znači da su jeftini uređaji Ne možete podržavaju enkripciju, ali bez hardverski ubrzane enkripcije cjelokupno korisničko iskustvo je degradirano zbog sporog vremena čitanja/pisanja. Tu na scenu stupa Adiantum.
Adiantum
U veljači je Google najavio Adiantum kao alternativu algoritam šifriranja za jeftinije telefone koji ne podržavaju regularne skupove AES instrukcija. Adiantum je posebno dizajniran za rad bez namjenskog hardvera. Služi kao lakša alternativa uobičajenoj Androidovoj AES enkripciji. Googleova mjerila recite nam da je zapravo 5x brži od AES-a, a loša strana je to što malo ugrožava sigurnost. To ga čini idealnim kandidatom za telefone niže klase, poput onih s Android Go Edition. Adiantum je također za proizvode poput pametnih satova i raznih uređaja za Internet stvari.
Do sada je Adiantum bio neobavezan; proizvođači su ga mogli omogućiti na uređajima s Androidom Pie, ali to nije bio zadani algoritam šifriranja. Sada je Adiantum izvorno uključen kao dio Androida Q. To znači da će svi uređaji koji se pokreću s Q-om morati šifrirati korisničke podatke, bez iznimaka. Kao rezultat toga, uređaji koji se pokreću s Androidom Q zajamčeno će imati enkripciju pohrane, bilo putem Adiantuma ili ne.
Sigurnosna knjižnica Jetpack
Jetpack je skup knjižnica podrške za Android, i jedan od najnovijih dodataka je u alfa verziji: Jetpack Security Library. Knjižnica pojednostavljuje proces osiguravanja vaše aplikacije rukovanjem stvarima poput upravljanja hardverski podržanim spremištima ključeva te generiranjem i provjerom valjanosti ključeva.
TLS 1.3
Međutim, pohrana nije jedino područje u kojem je poboljšana enkripcija. Komunikacija s drugim uređajima znatno je poboljšana uvođenjem Podrška za TLS 1.3 prema zadanim postavkama. TLS 1.3 najnoviji je mrežni kriptografski standard koji je finalizirao IETF u kolovozu 2018. TLS 1.3 pruža više privatnosti za razmjenu podataka šifriranjem većeg broja pregovaračkih rukovanja. Povrh svega, brži je od TLS-a 1.2 jer se cijelo povratno putovanje briše iz rukovanja uspostavom veze. U kombinaciji s učinkovitijim modernim algoritmima, ovo čini povećanje brzine do 40%.
TLS se sada može ažurirati izravno s Google Playa jer je dio komponente "Conscrypt". Možete pročitati više o tome i Projektu Mainline ovdje.
S obzirom na to da svakodnevno vjerujemo toliko osjetljivih transakcija na našim uređajima, nadograđeni TLS važniji je nego ikad. Pohranjivanje poput ukrcajnih karata - pa čak i digitalne vozačke dozvole u nekom trenutku u budućnosti - na Androidu znači da bi svi uređaji trebali šifrirati korisničke podatke najbolje što mogu. Adiantum i prisilna enkripcija otvorit će put za pohranu čak i najosjetljivijih podataka na najjeftinijim uređajima. No enkripcija nije jedini način na koji Google povećava sigurnost Androida u izdanju Q.
Promjene dopuštenja i privatnosti u Androidu Q
Scoped Storage
Scoped Storage nova je zaštita koja se koristi za ograničavanje aplikacija u čitanju/pisanju datoteka u vanjskoj pohrani koje nisu sadržane u njihovom vlastitom direktoriju specifičnom za aplikaciju u sandboxu. Googleov cilj je trostruk: bolja atribucija toga koje aplikacije imaju kontrolu nad kojim datotekama, zaštita podataka aplikacija i zaštita korisničkih podataka.
Google udvostručuje MediaStore API za zajednički audio, video i slikovni sadržaj. Prema zadanim postavkama, sve aplikacije mogu umetati, mijenjati ili brisati vlastite datoteke u MediaStoreu. Slike, MediaStore. Video i MediaStore. Audio zbirke bez potrebe za dopuštenjima. Android Q također dodaje novo MediaStore. Preuzimanja zbirka za pohranjivanje sadržaja koji preuzimaju korisnici, čemu mogu pridonijeti sve aplikacije koje koriste MediaStore API. Dok se datoteke pohranjene u direktorije specifične za aplikaciju u sandboxu brišu nakon deinstalacije, sve datoteke pridonesene kolekcijama MediaStore ostaju postojane i nakon deinstalacije.
Za pristup svim datotekama koje je stvorila druga aplikacija - bilo da je datoteka u nekoj od kolekcija MediaStore ili izvan njih - aplikacija mora koristiti okvir za pristup pohrani. Nadalje, EXIF metapodaci slika se redigiraju osim ako vaša aplikacija nema novo dopuštenje ACCESS_MEDIA_LOCATION. U Androidu Q, aplikacije također mogu kontrolirati na koji će uređaj za pohranu staviti medije upitom o nazivu volumena koristeći getExternalVolume().
Google je prvotno nametnuo ograničenja Scoped Storage za sve aplikacije u Androidu Q bez obzira na njihove ciljane API razine, ali nakon povratnih informacija, tvrtka je dajući programerima više vremena izvršiti prilagodbe. Sve pojedinosti o promjenama Scoped Storage mogu se pronaći na ovoj stranici, a možete saznati više o Googleovim preporukama o najboljim postupcima za dijeljenu pohranu do gledajući ovaj Google I/O razgovor.
Upozorenja za aplikacije koje ciljaju API razinu < 23
Međutim, ograničenja dopuštenja tu ne završavaju. Instaliranje aplikacije koja cilja razinu API-ja nižu od 23 (Android Lollipop ili stariji) uzrokovat će OS da prikaže upozorenje korisniku ako navedena aplikacija zahtijeva osjetljiva dopuštenja nakon instalacije. Prije instalacije korisnici će imati priliku ručno odrediti koja dopuštenja žele dodijeliti aplikaciji prije nastavka. Stoga Android Q više ne dopušta aplikacijama da zaobiđu dopuštenja za vrijeme izvođenja.
Eventualna SYSTEM_ALERT_DEPRECATION u korist Bubbles API-ja
Bubbles API na djelu. Izvor: Google.
Dopuštenje za prekrivanje (SYSTEM_ALERT_WINDOW) više se ne može dodijeliti aplikacijama koje rade na Androidu Q (Go Edition). Za uređaje koji nisu Go Edition, Google gura programere prema novom Bubbles API-ju. Bubbles API značajka je predstavljena u Android Q Beta 2 što omogućuje funkcionalnost poput glava za čavrljanje Facebook Messengera. Obavijesti iz aplikacija pojavljuju se kao mjehurići na rubovima zaslona koji se šire kada ih korisnik dodirne. Unutar oblačića aplikacija može prikazati aktivnost.
Ova je promjena bila neophodna jer dopuštanje aplikacijama da slobodno crtaju preklapanja preko drugih aplikacija predstavlja očite sigurnosne rizike. zloglasni "Plašt i bodež" exploit je opsežno koristio ovu slabost. Funkcionalnost API-ja preklapanja bila je ograničena još u Androidu Oreo, ali sada je Go izdanje Androida Q u potpunosti uklonilo pristup API-ju s buduće izdanje kako bi ga u potpunosti zastarjeli.
Ograničenja pokretanja aktivnosti u pozadini
Aplikacije u pozadini više ne mogu automatski pokrenuti aktivnost dok je telefon otključan, bez obzira na njihovu ciljanu razinu API-ja. Postoji cijeli popis uvjeta pod kojima aplikacije sada mogu pokretati aktivnosti, a koji možete pročitati ovdje. Pozadinske aplikacije koje ne ispunjavaju te uvjete i žele hitno pokrenuti aktivnost sada će to morati obavijestiti korisnika putem obavijesti. Ako je obavijest stvorena s namjerom na čekanju za cijeli zaslon, tada se namjera pokreće odmah ako je zaslon isključen—korisno za alarme ili dolazne pozive.
Ograničenje pristupa pozadinskom međuspremniku
Pristup međuspremniku u pozadini je više nije moguće. Bilo koja aplikacija koja nije u prvom planu ili nije postavljena kao zadana metoda unosa neće ni na koji način moći čitati vaš međuspremnik. Ovo posebno teško pogađa aplikacije poput upravitelja međuspremnika. Google kaže da ova promjena utječe samo na aplikacije koje isključivo ciljaju Android Q, ali naše testiranje pokazuje da ograničenje ne diskriminira; nijedna aplikacija koju smo isprobali nije mogla vidjeti međuspremnik.
Ova promjena, naravno, ima smisla. Često kopiramo osjetljive podatke u međuspremnik—stvari poput lozinki i podataka o kreditnoj kartici—ali svejedno je šteta vidjeti kako upravitelji međuspremnika odlaze u vodu.
Pristup lokaciji samo dok je aplikacija u upotrebi
Nova postavka koju je omogućio korisnik dopušta aplikacijama samo pristup vašoj lokaciji dok je aplikacija u upotrebi. Najnovija beta verzija Androida Q također je dodala obavijest koja vas podsjeća jeste li aplikaciji dodijelili stalni pristup lokaciji.
Uloge
Dodan je novi API "Uloge". Uloge su u biti grupe s unaprijed postavljenim dopuštenjima pristupa. Na primjer, aplikacije s ulogom galerije mogu imati pristup vašim medijskim mapama, dok aplikacije s ulogom biranja mogu upravljati pozivima. Aplikacije kojima je korisnik dodijelio određenu ulogu također moraju imati potrebne komponente. Aplikacije s ulogom galerije, na primjer, moraju imati filtar namjere radnje android.namjera.akcijski.GLAVNI i filtar namjere kategorije android.intent.category. GALERIJA_APLIKACIJA da se u postavkama prikaže kao aplikacija za galeriju.
Pločica Brze postavke isključeni senzori
Postoji nova pločica brzih postavki "Senzori isključeni" koja isključuje očitanja s svi senzore (akcelerometar, žiroskop itd.) na vašem uređaju za istinsku privatnost. Ova pločica Brzih postavki skrivena je prema zadanim postavkama, ali se može omogućiti odlaskom na "pločice za razvojne programere brzih postavki" u opcijama za razvojne programere.
Ograničenja za /proc/net
Aplikacije više ne mogu pristup proc/net, zbog čega usluge poput netstata više nisu održive. Ovo štiti korisnike od zlonamjernih aplikacija koje nadziru na koje web stranice i usluge se povezuju. Aplikacije kojima je potreban stalan pristup, poput VPN-ova, moraju koristiti NetworkStatsManager i ConnectivityManager klase.
Nasumične MAC adrese
Vaša MAC adresa jedinstveni je identifikator koji mreže koriste kako bi zapamtile koji je uređaj koji. U Androidu Q, svaki put kada se povežete na novu mrežu, vaš uređaj će koristiti novu, nasumično odabranu MAC adresu. Kao rezultat, mreže ne mogu pratiti vašu lokaciju uspoređivanjem WiFi mreža na koje se povezujete s MAC adresom vašeg telefona. Stvarnu, tvorničku MAC adresu uređaja još uvijek mogu dobiti aplikacije putem getWifiMacAddress() naredba.
Ojačavanje platforme u Androidu Q
Jedna pogreška unutar Androida ne znači da napadači sada imaju puni pristup OS-u ili da mogu zaobići bilo koji sigurnosni sustav. To je djelomično zbog niza zaštitnih mjera kao što su izolacija procesa, smanjenje površine napada, arhitektonska dekompozicija i zaštita od iskorištavanja. Ove zaštitne mjere čine ranjivosti težim ili čak nemogućim za iskorištavanje. Kao rezultat toga, napadači obično trebaju mnoštvo ranjivosti prije nego što mogu postići svoje ciljeve. U prošlosti smo vidjeli napade kao što je DRAMMER koji rade lančanim povezivanjem više eksploatacija.
Android Q poduzima mjere zaštite poput ovih i primjenjuje ih na osjetljivija područja kao što su medijske i Bluetooth komponente, zajedno s jezgrom. Ovo donosi neka značajna poboljšanja.
- Ograničeno zaštićeno okruženje za softverske kodeke.
- Povećana proizvodna upotreba dezinfekcijskih sredstava za ublažavanje cijelih klasa ranjivosti u komponentama koje obrađuju nepouzdan sadržaj.
- Shadow Call Stack, koji pruža Integritet protoka kontrole unazad (CFI) i nadopunjuje zaštitu prednjeg ruba koju pruža LLVM-ov CFI.
- Zaštita randomizacije rasporeda adresnog prostora (ASLR) od curenja pomoću eXecute-Only Memory (XOM).
- Uvođenje Scudo hardened allocator-a koji čini brojne ranjivosti povezane s gomilom težim za iskorištavanje.
Ovo je mnogo softverskog žargona. Srž svega je u tome da se softverski kodeci sada pokreću u sandboxovima koji imaju manje privilegija, što znači da manja je vjerojatnost da će zlonamjerni softver moći pokrenuti naredbe koje bi mogle oštetiti vaš uređaj, kao što je slučaj od Trema davne 2015.
Drugo, Android sada provjerava pristup nizu izvan granica na više mjesta, kao i preljeve. Sprječavanje preljeva i upućivanje procesa na siguran kvar značajno smanjuje postotak ranjivosti korisničkog prostora. To znači da ako zlonamjerni program pokuša uzrokovati rušenje nečega namjernim pokušajem dobiti pristup podacima koji ne postoje, Android će to sada prepoznati i izaći iz programa, umjesto rušenje.
Treće, Shadow Call Stack štiti povratne adrese pohranjujući ih u zaseban shadow stack, čineći ih nedostupnima uobičajenim programima. Povratne adrese obično su pokazivači na funkcije, stoga je zaštita tih adresa važna kako bi se osiguralo da napadači ne mogu pristupiti funkcijama kojima ne bi smjeli.
Četvrto, ASLR je metoda zaštite koja nasumično određuje gdje su programi pohranjeni u memoriji, čineći teže je otkriti gdje su programi pohranjeni u memoriji na temelju lokacije drugih programa. Memorija samo za eXecute to pojačava čineći kod nečitljivim.
Konačno, Scudo je dinamički alokator hrpe koji proaktivno upravlja memorijom na način koji ranjivosti temeljene na hrpi čini puno težima za iskorištavanje. Možete pročitati više o tome ovdje.
Ovjera
Ažuriranja BiometricPrompta u Androidu Q
Google je predstavio novi BiometricPrompt API prije više od godinu dana, u Android P Developer Preview 2. Namjera je bila da bude generički Android upit za biometrijske metode otključavanja. Ideja je da uređaji koji podržavaju više od samog skeniranja otiska prsta, npr. skeniranje šarenice na liniji Samsung Galaxy S, moći će koristiti ove metode kada aplikacije zatraže potvrdu.
Android Q dodaje snažnu podršku za provjeru lica i otiska prsta, kao i proširenje API-ja za podršku implicitne autentifikacije. Eksplicitna provjera autentičnosti zahtijeva da se korisnik na neki način ovjeri prije nastavka, dok implicitna ne zahtijeva dodatnu interakciju korisnika.
Povrh toga, aplikacije sada mogu provjeriti podržava li uređaj biometrijsku autentifikaciju putem jednostavnog poziv funkcije, što im omogućuje da ne gube vrijeme pozivajući BiometricPrompt na uređajima koji to ne čine podržati to. Idealna upotreba za ovo bila bi ako aplikacije žele dati postavku "Omogući biometrijsku prijavu" na temelju toga podržava li uređaj biometrijsku autentifikaciju ili ne.
Gradivni blokovi za podršku elektroničkog ID-a
Ranije ove godine otkrili smo dokaze da Google jest radi na podršci za elektroničke osobne iskaznice u Androidu. Na I/O, Google nas je obavijestio o napretku značajke. Google kaže da surađuju s ISO-om na standardizaciji implementacije mobilnih vozačkih dozvola, s elektroničkim putovnicama u izradi. Za programere, Google će osigurati Jetpack biblioteku kako bi se mogle početi izrađivati aplikacije za identifikaciju.
Projekt Mainline u Androidu Q
Project Mainline veliki je pothvat Googlea za smanjenje fragmentacije određenih sistemskih modula i aplikacija. Google će kontrolirati ažuriranja za oko 12 komponenti sustava putem Trgovine Play. Detaljno smo razgovarali o projektu Mainline u prethodnom članku ako ste zainteresirani za čitanje više.
Zaključak
Sigurnost je uvijek bila ključni dio razvoja Androida. Google je obavio impresivan posao u održavanju Androida ažuriranim s najnovijim sigurnosnim značajkama, kao i stvaranju nekih vlastitih inovacija. Nastavljaju ovaj razvojni proces s Androidom Q, punim ga sigurnosnim značajkama koje su napravljene kako bi vaši podaci bili sigurniji nego ikad prije.
Izvor 1: Što je novo u Android Q sigurnosti [Google]
Izvor 2: Sigurnost na Androidu: Što je sljedeće [Google]
Izvor 3: Stavite u red za poboljšanja otvrdnjavanja [Google]
Uz pomoć Mishaala Rahmana i Adama Conwaya.