La Google I/O, am aflat despre îmbunătățirile pe care le aduce Android Q. Noi funcții de securitate și confidențialitate și îmbunătățiri sunt peste tot noul sistem de operare Android.
Fiecare nouă versiune a sistemului de operare Android aduce îmbunătățiri la aproape fiecare aspect din design, funcții, API-uri și multe altele. La Google I/O, la începutul acestei luni, am aflat despre toate îmbunătățiri pe care Android Q va aduce și, desigur, noi anunțuri privind confidențialitatea și securitatea nu au fost omise de la conferință. Securitatea platformei este unul dintre cele mai importante aspecte ale unui sistem de operare, în special pentru un sistem de operare pe care îl aducem peste tot cu noi în buzunare. Dacă Android nu ar fi sigur, nu am avea încredere în el cu jumătate din câte funcții avem. Plățile NFC ar fi excluse, partajarea fișierelor ar fi în cel mai bun caz dubioasă, iar conectarea la alte dispozitive ar fi de-a dreptul o nebunie. În ciuda problemei de lungă durată a fragmentării versiunilor, Google a făcut extrem de bine să mențină numărul de probleme de securitate la minimum.
Android s-a maturizat într-un sistem de operare care este atât bogat în funcții, cât și foarte sigur. Dar există, desigur, întotdeauna loc de îmbunătățire. Există mulți factori care contribuie la această securitate, iar câțiva dintre ei sunt îmbunătățiți într-un fel cu Android Q.
Criptare
Fiind una dintre cele mai de bază metode de securitate, este important ca fiecare dispozitiv să accepte criptare puternică. Mulți producători OEM își livrează dispozitivele cu hardware de criptare dedicat. Deși acest lucru este benefic, este și costisitor. Ca atare, hardware-ul dedicat a fost de obicei restricționat pentru dispozitivele de nivel mediu și înalt. Acest lucru nu înseamnă că dispozitivele low-end nu poti acceptă criptarea, dar fără criptare accelerată hardware, experiența generală a utilizatorului este degradată din cauza timpilor de citire/scriere lenți. Acolo intervine Adiantum.
Adiantum
În februarie, Google a anunțat Adiantum ca alternativă algoritm de criptare pentru telefoanele de vârf care nu acceptă seturi obișnuite de instrucțiuni AES. Adiantum este special conceput pentru a rula fără hardware dedicat. Acesta servește ca o alternativă mai ușoară la criptarea AES obișnuită a Android. Benchmark-urile Google spune-ne că este de fapt de 5 ori mai rapid decât AES, cu dezavantajul fiind că compromite ușor securitatea. Acest lucru îl face candidatul ideal pentru telefoanele de gamă inferioară, cum ar fi cele alimentate cu Android Go Edition. Adiantum este, de asemenea, pentru produse precum ceasurile inteligente și o varietate de dispozitive Internet of Things.
Până acum, Adiantum era opțional; producătorii îl puteau activa pe dispozitivele care se lansează cu Android Pie, dar nu era algoritmul de criptare implicit. Acum, Adiantum este inclus nativ ca parte a Android Q. Aceasta înseamnă că toate dispozitivele care se lansează cu Q vor trebui să cripteze datele utilizatorului, fără excepții. Drept urmare, dispozitivele care se lansează cu Android Q au garantat criptarea stocării, fie că este sau nu prin Adiantum.
Biblioteca de securitate Jetpack
Jetpack este un set de biblioteci de suport Android și una dintre cele mai noi completări este în alfa: Biblioteca de securitate Jetpack. Biblioteca simplifică procesul de securizare a aplicației dvs. gestionând lucruri precum gestionarea depozitelor de chei susținute de hardware și generarea și validarea cheilor.
TLS 1.3
Cu toate acestea, stocarea nu este singura zonă în care criptarea a fost îmbunătățită. Comunicarea cu alte dispozitive a fost mult îmbunătățită, odată cu introducerea Suport TLS 1.3 în mod implicit. TLS 1.3 este cel mai recent standard criptografic de rețea, finalizat de IETF în august 2018. TLS 1.3 oferă mai multă confidențialitate pentru schimburile de date prin criptarea mai multor strângeri de mână de negociere. În plus, este mai rapid decât TLS 1.2, din cauza unei întregi călătorii dus-întors fiind eliminată de la stabilirea conexiunii. Împreună cu algoritmi moderni mai eficienți, aceasta duce la o creștere a vitezei cu până la 40%.
TLS este acum actualizabil direct de pe Google Play, deoarece face parte din componenta „Conscrypt”. Puteți citi mai multe despre asta și despre Project Mainline Aici.
Având în vedere că avem încredere în atât de multe tranzacții sensibile pe dispozitivele noastre zilnic, TLS actualizat este mai important ca niciodată. Stocarea unor buletine de îmbarcare - și chiar permise de conducere digitale la un moment dat în viitor - pe Android înseamnă că toate dispozitivele ar trebui să cripteze datele utilizatorilor cât mai bine posibil. Adiantum și criptarea forțată vor deschide calea pentru ca și cele mai sensibile date să fie stocate pe cele mai ieftine dispozitive. Dar criptarea nu este singura modalitate prin care Google crește securitatea Android în versiunea Q.
Modificările privind permisiunile și confidențialitatea în Android Q
Spațiu de stocare
Spațiul de stocare este o nouă protecție folosită pentru a restricționa aplicațiile de la citirea/scrierea fișierelor în stocarea externă care nu sunt conținute în propriul director specific aplicației în sandbox. Scopul Google este triplu: o mai bună atribuire a aplicațiilor care au control asupra fișierelor, protecția datelor aplicației și protecția datelor utilizatorilor.
Google își dublează API-ul MediaStore pentru conținut audio, video și imagine partajat. În mod implicit, toate aplicațiile își pot insera, modifica sau șterge propriile fișiere în MediaStore. Imagini, MediaStore. Video și MediaStore. Colecții audio fără a avea nevoie de permisiuni. Android Q adaugă și un nou MediaStore. Descărcări colecție pentru a stoca conținut descărcat de utilizator, la care pot contribui toate aplicațiile care utilizează API-ul MediaStore. În timp ce fișierele stocate în directoare specifice aplicației în sandbox sunt șterse la dezinstalare, toate fișierele care au contribuit la colecțiile MediaStore persistă dincolo de dezinstalare.
Pentru a accesa fișierele create de o altă aplicație – indiferent dacă fișierul se află într-una dintre colecțiile MediaStore sau în afara acestora – aplicația trebuie să folosească cadrul de acces la stocare. În plus, metadatele EXIF ale imaginilor sunt redactate, cu excepția cazului în care aplicația dvs. are noua permisiune ACCESS_MEDIA_LOCATION acordată. În Android Q, aplicațiile pot controla și pe ce dispozitiv de stocare vor ateriza media interogând numele volumului său folosind getExternalVolume().
Google a impus inițial restricții de stocare cu scop pentru toate aplicațiile din Android Q, indiferent de nivelurile API-țintă ale acestora, dar după feedback, compania este oferind dezvoltatorilor mai mult timp pentru a face ajustări. Detaliile complete despre modificările de stocare în domeniul de aplicare pot fi găsite Pe aceasta pagina, și puteți afla mai multe despre recomandările Google privind cele mai bune practici pentru stocarea partajată de către urmărind acest Google I/O vorbi.
Avertismente pentru aplicațiile care vizează nivelul API < 23
Restricțiile de permisie nu se termină aici, totuși. Instalarea unei aplicații care vizează un nivel API mai mic de 23 (Android Lollipop sau mai vechi) va face ca sistemul de operare să afișeze un avertisment utilizatorului dacă respectiva aplicație solicită permisiuni sensibile la instalare. Înainte de instalare, utilizatorii vor avea posibilitatea de a specifica manual ce permisiuni doresc să acorde aplicației înainte de a continua. Astfel, Android Q nu mai permite aplicațiilor să ocolească permisiunile de rulare.
Eventual SYSTEM_ALERT_DEPRECATION în favoarea API-ului Bubbles
Bubbles API în acțiune. Sursa: Google.
Permisiunea de suprapunere (SYSTEM_ALERT_WINDOW) nu mai poate fi acordată pentru aplicațiile care rulează pe Android Q (Go Edition). Pentru dispozitivele care nu sunt Go Edition, Google împinge dezvoltatorii către noul API Bubbles. Bubbles API este o caracteristică introdusă în Android Q Beta 2 care permite funcționalități similare capetelor de chat ale Facebook Messenger. Notificările de la aplicații apar ca mici bule la marginile ecranului, care se extind atunci când sunt atinse de utilizator. În bule, o aplicație poate afișa o Activitate.
Această modificare a fost necesară deoarece permiterea aplicațiilor să deseneze liber suprapuneri peste alte aplicații prezintă riscuri evidente de securitate. Infamul"Manta și Pumnal" exploit a folosit această slăbiciune pe scară largă. Funcționalitatea API-ului de suprapunere a fost restricționată încă din Android Oreo, dar acum ediția Go a Android Q a eliminat complet accesul la API cu o lansarea viitoare pentru a-l deprecia complet.
Restricții de lansare a activității de fundal
Aplicațiile din fundal nu mai pot lansa automat o activitate în timp ce telefonul este deblocat, indiferent de nivelul API-țintă al acestora. Există o listă întreagă de condiții în care aplicațiile pot lansa acum activități, pe care le puteți citi Aici. Aplicațiile de fundal care nu îndeplinesc aceste condiții și doresc să lanseze urgent o activitate vor trebui acum să informeze utilizatorul printr-o notificare. Dacă notificarea este creată cu o intenție în așteptare pe ecran complet, atunci intenția este lansată imediat dacă ecranul este oprit - util pentru alarme sau apeluri primite.
Restricție de acces la Clipboard de fundal
Accesul la clipboard de fundal este nu mai este posibil. Orice aplicație care nu este în prim-plan sau setată ca metodă de introducere implicită nu va putea citi clipboard-ul în niciun fel. Acest lucru afectează în mod deosebit aplicațiile precum managerii de clipboard. Google spune că această modificare afectează numai aplicațiile care vizează exclusiv Android Q, dar testele noastre indică faptul că restricția nu discriminează; orice aplicație pe care am încercat-o nu a putut vedea clipboard-ul.
Această schimbare, desigur, are sens. Copiăm adesea informații sensibile în clipboard - lucruri precum parolele și detaliile cărților de credit - dar este totuși păcat să vezi administratorii clipboard-ului să se piardă.
Acces la locație numai când o aplicație este în uz
O nouă setare activată de utilizator permite aplicațiilor să ajungă la locația dvs. numai în timp ce aplicația este în uz. Cel mai recent Android Q beta a adăugat, de asemenea, o notificare care vă reamintește dacă ați acordat unei aplicații acces permanent la locație.
Roluri
A fost adăugat un nou API „Roluri”. Rolurile sunt în esență grupuri cu acces la permisiuni prestabilite. De exemplu, aplicațiile cu rolul de galerie ar putea avea acces la folderele dvs. media, în timp ce aplicațiile cu rolul de apelare ar putea fi capabile să gestioneze apelurile. Aplicațiile cărora le este acordat un anumit rol de către utilizator trebuie să aibă și componentele necesare. Aplicațiile cu rol de galerie, de exemplu, trebuie să aibă filtrul de intenție de acțiune android.intentie.acțiune.PRINCIPAL și filtrul de intenție de categorie android.intent.category. APP_GALERY pentru a apărea ca aplicație de galerie în setări.
Senzori Off Setări rapide
Există o nouă țiglă de setări rapide „Senzori dezactivați”, care oprește citirile de la toate senzori (accelerometru, giroscop etc.) de pe dispozitivul dvs. pentru confidențialitate reală. Această țiglă Setări rapide este ascunsă în mod implicit, dar poate fi activată accesând „tiglele pentru setări rapide” din Opțiuni pentru dezvoltatori.
Restricții la /proc/net
Aplicațiile nu mai pot acces proc/net, făcând ca serviciile precum netstat să nu mai fie viabile. Acest lucru protejează utilizatorii de aplicațiile rău intenționate care monitorizează site-urile web și serviciile la care se conectează. Aplicațiile care necesită acces continuu, cum ar fi VPN-urile, trebuie să utilizeze NetworkStatsManager și ConnectivityManager clase.
Adrese MAC randomizate
Adresa dvs. MAC este un identificator unic pe care rețelele îl folosesc pentru a-și aminti ce dispozitiv este care. În Android Q, de fiecare dată când vă conectați la o nouă rețea, dispozitivul dvs. va folosi o adresă MAC nouă, randomizată. Ca urmare, rețelele nu vă pot urmări locația potrivind rețelele WiFi la care vă conectați cu adresa MAC a telefonului dvs. Adresa MAC reală din fabrică a dispozitivului poate fi încă obținută de aplicații prin intermediul getWifiMacAddress() comanda.
Întărirea platformei în Android Q
O singură eroare în Android nu înseamnă că atacatorii au acum acces complet la sistemul de operare sau că pot ocoli orice sisteme de securitate. Acest lucru se datorează parțial unui număr de măsuri de protecție, cum ar fi izolarea procesului, reducerea suprafeței de atac, descompunerea arhitecturală și atenuarea exploatării. Aceste garanții fac vulnerabilitățile mai dificil sau chiar imposibil de exploatat. Ca rezultat, atacatorii au nevoie de obicei de o multitudine de vulnerabilități înainte de a-și putea atinge obiectivele. În trecut, am văzut atacuri precum DRAMMER care funcționează prin înlănțuirea mai multor exploit-uri împreună.
Android Q ia măsuri de siguranță precum acestea și le aplică în zone mai sensibile, cum ar fi media și componentele Bluetooth, împreună cu nucleul. Acest lucru aduce unele îmbunătățiri semnificative.
- Un sandbox restrâns pentru codecuri software.
- Utilizarea sporită în producție a dezinfectanților pentru a atenua clase întregi de vulnerabilități în componentele care procesează conținut neîncrezat.
- Shadow Call Stack, care oferă integritatea fluxului de control (CFI) la marginea din spate și completează protecția frontală oferită de CFI-ul LLVM.
- Protejarea randomizării spațiului de adrese (ASLR) împotriva scurgerilor utilizând memoria eXecute-Only Memory (XOM).
- Introducerea alocătorului întărit Scudo care face mai dificil de exploatat o serie de vulnerabilități legate de heap.
Acesta este o mulțime de jargon software. Concluzia este că, mai întâi, codecurile software rulează acum în sandbox-uri care au mai puține privilegii, ceea ce înseamnă că este mai puțin probabil ca software-ul rău intenționat să poată rula comenzi care ar putea dăuna dispozitivului dvs., cum ar fi în cazul de Emoții de scenă încă din 2015.
În al doilea rând, Android verifică acum accesul la matrice în afara limitelor în mai multe locuri, precum și depășirile. Prevenirea depășirilor și instruirea proceselor să eșueze în siguranță scade semnificativ procentul de vulnerabilități ale spațiului utilizatorului. Ceea ce înseamnă aceasta este că, dacă un program rău intenționat încearcă să provoace blocarea unui lucru, încercând în mod deliberat obțineți acces la date care nu există, Android va recunoaște acum acest lucru și va ieși din program, în loc de prăbușindu-se.
În al treilea rând, Shadow Call Stack protejează adresele de retur prin stocarea lor într-o stivă umbră separată, făcându-le inaccesibile pentru programele obișnuite. Adresele de retur sunt de obicei indicatoare către funcții, așa că protejarea acestor adrese este importantă pentru a vă asigura că atacatorii nu pot accesa funcții pe care nu ar trebui să le poată face.
În al patrulea rând, ASLR este o metodă de protecție care randomizează unde programele sunt stocate în memorie, făcându-l mai greu de dat seama unde programele sunt stocate în memorie în funcție de locația altora programe. Memoria eXecute-only întărește acest lucru făcând codul de necitit.
În cele din urmă, Scudo este un alocator dinamic de heap care gestionează în mod proactiv memoria într-un mod care face vulnerabilitățile bazate pe heap mult mai greu de exploatat. Puteți citi mai multe despre el Aici.
Autentificare
Actualizări la BiometricPrompt în Android Q
Google a introdus noul API BiometricPrompt în urmă cu peste un an, în Previzualizare pentru dezvoltatori Android P 2. Acesta a fost intenționat să fie un prompt Android generic pentru metodele de deblocare biometrică. Ideea este că dispozitivele care acceptă mai mult decât scanarea amprentelor digitale, de ex. Scanarea irisului pe linia Galaxy S a Samsung va putea folosi aceste metode atunci când aplicațiile solicită verificarea.
Android Q adaugă suport robust pentru verificarea feței și a amprentei, precum și extinderea API-ului pentru a accepta autentificarea implicită. Autentificarea explicită necesită ca utilizatorul să se autentifice într-un fel înainte de a continua, în timp ce implicit nu mai are nevoie de nicio interacțiune cu utilizatorul.
În plus, aplicațiile pot verifica acum dacă un dispozitiv acceptă autentificarea biometrică printr-un simplu apel de funcție, permițându-le să nu piardă timpul invocând un BiometricPrompt pe dispozitivele care nu o fac susține-l. O utilizare ideală pentru aceasta ar fi dacă aplicațiile doresc să ofere o setare „Activați conectarea biometrică” în funcție de faptul dacă un dispozitiv acceptă sau nu autentificarea biometrică.
Elementele de bază pentru suportul pentru identificarea electronică
La începutul acestui an, am descoperit dovezi că Google este lucrează la suport pentru ID-urile electronice în Android. La I/O, Google ne-a informat cu privire la progresul caracteristicii. Google spune că lucrează cu ISO pentru a standardiza implementarea permiselor de conducere mobile, cu pașapoarte electronice în lucru. Pentru dezvoltatori, Google va oferi o bibliotecă Jetpack, astfel încât aplicațiile de identitate să poată începe să fie create.
Linia principală a proiectului în Android Q
Proiectul Mainline este o întreprindere majoră a Google pentru a reduce fragmentarea anumitor module și aplicații de sistem. Google va controla actualizările pentru aproximativ 12 componente ale sistemului prin Magazin Play. Am vorbit în detaliu despre Project Mainline într-un articol anterior dacă ești interesat să citești mai mult.
Concluzie
Securitatea a fost întotdeauna o parte esențială a dezvoltării Android. Google a făcut o treabă impresionantă de a menține Android-ul la zi cu cele mai recente funcții de securitate, precum și de a face unele inovații proprii. Ei continuă acest proces de dezvoltare cu Android Q, împachetându-l cu funcții de securitate care sunt create pentru a se asigura că datele dvs. sunt mai sigure decât oricând.
Sursa 1: Ce este nou în Android Q Security [Google]
Sursa 2: Securitate pe Android: Ce urmează [Google]
Sursa 3: puneți în coadă îmbunătățirile de întărire [Google]
Cu contribuția lui Mishaal Rahman și Adam Conway.