Managerii de parole care utilizează API-ul Autofill Android Oreo sunt potențial vulnerabili la scurgerile de date

click fraud protection

Un potențial defect de securitate în API-ul Autofill Android Oreo permite managerilor de parole să scurgă date precum parole, adrese sau cărți de credit.

Completare automată este una dintre cele mai mari și mai mediatizate funcții noi introduse odată cu lansarea Android 8.0 Oreo. Multe aplicații diferite de gestionare a parolelor, cum ar fi LastPass, au implementat deja acest nou API în aplicațiile lor. Și în timp ce se poate dovedi a fi destul de imbunatatire față de implementările anterioare de completare automată care utilizează Serviciile de accesibilitate, există un potențial defect de securitate de luat în considerare. Luna trecută, a fost publicată pe GitHub o carte albă, care documentează un defect inerent al API-ului Android Oreo Autofill care ar putea poate duce la scurgerea de către managerul de parole a mai multor date personale decât pentru care i-ați dat permisiunea. Vom face o scurtă prezentare a cărții albe scrise de Mark Murphy (mai bine cunoscut ca CommonsWare) și publicat pe pagina sa GitHub pe 8 august 2017.


Potențial defect de scurgere de date în API-ul Autofill Android Oreo

Cum funcționează defectul?

Implementarea completării automate în Android Nougat (și versiunile inferioare) și browsere precum Google Chrome este ceva foarte simplu. De obicei, aplicațiile de gestionare a parolelor ar folosi Serviciile de accesibilitate pentru a scana conținutul ecranului pentru o casetă de conectare și pentru a recomanda datele de completare automată pe baza a ceea ce găsește. În timp ce a funcționat, acesta ar putea cauza un decalaj considerabil.

Pe Android Oreo, acest lucru funcționează puțin diferit, deoarece aplicațiile de parole sunt acum acceptate oficial cu API-ul Autofill. Aplicațiile de parole de la terțe părți nu mai necesită servicii de accesibilitate, deoarece acum pot îndeplini rolul unui serviciu de completare automată, comunicând cu aplicațiile prin intermediul cadrului de completare automată. Când utilizatorul se concentrează pe un widget, sistemul va împacheta câteva informații despre acel widget/formular și le va trimite în aplicația de completare automată. Aplicația returnează apoi date relevante de completare automată, cum ar fi parole, e-mailuri, carduri de credit sau orice alt tip de date sensibile. Sistemul Android acționează ca intermediar între aplicația care stochează datele și cea care le solicită.

Aplicația de completare automată în Android 8.0 Oreo

Cu toate acestea, aplicațiile rău intenționate sau programele malware pot profita de fapt de funcția de completare automată pentru a obține mai multe date pentru ele însele. O activitate rău intenționată poate solicitați introducerea datelor suplimentare de completare automată cu un widget invizibil sau ascuns. În timp ce utilizatorul este de acord să completeze unul dintre widget-urile vizibile, cum ar fi un formular de conectare sau ceva similar, widget-ul invizibil primește și date suplimentare fără ca tu să-l vezi. Acest lucru poate fi cu adevărat periculos dacă informațiile scurse sunt parola, adresa sau detaliile cardului de credit!

Capturile de ecran de mai sus prezintă o aplicație de testare rău intenționată care profită de această defecțiune de securitate.

Răspunsul Google la problemă

Potrivit CommonsWare, această problemă de securitate nu are încă o soluție publică postată de Google. Cu toate acestea, știm că Google este conștient de problemă. CommonsWare afirmă că inginerii Google au recunoscut că problema există într-un raport privat de urmărire a problemelor, dar că ar fi dificil (dacă nu imposibil) să-l corectezi sau lansați o remediere.

Dar asta nu înseamnă că completarea automată este complet nesigură de utilizat, deoarece Google adoptă o altă abordare pentru a asigura siguranța datelor. Compania este împingând pentru ca serviciile de completare automată să gestioneze problema pe partea lor și, ca atare, încearcă să sensibilizeze dezvoltatorii pentru a-și îmbunătăți furnizorii de completare automată și a-i face mai siguri. Ce se propune mai exact?

În primul rând, furnizorii de completare automată ar trebui să-și parționeze datele. În loc să păstreze toate datele de completare automată într-un singur pool, dezvoltatorii ar trebui să împartă datele utilizatorului stocate în partiții. De exemplu, o partiție pentru adresă/telefon, o partiție pentru card de credit, o partiție pentru parolă/nume de utilizator etc. Serviciul de completare automată ar trebui să predea numai datele unei partiții la un moment dat, pe baza widgetului focalizat. Acesta este unul dintre pagini disponibile public pe aplicațiile de completare automată care se protejează de scurgerile de date către widget-uri invizibile.

Există și alte lucruri pe care dezvoltatorii de manageri de parole ar trebui să le facă, potrivit inginerilor Google. De exemplu, furnizorul de completare automată ar trebui să predea datele numai către aplicația specifică care le-a furnizat în primul rând. Acest lucru ar trebui făcut prin verificarea numelui pachetului și a semnăturii publice a aplicației, astfel încât nici măcar un APK modificat să nu îl poată accesa. Un alt lucru ar fi că aplicațiile de completare automată necesită autentificare înainte de a furniza efectiv datele, cu acea activitate de autentificare informând utilizatorul ce fel de date vor fi furnizate aplicației care le solicită. Acest sfat are de fapt multe greșeli, cea mai importantă fiind că aceste sfaturi nu sunt efectiv aplicate de Google.

Rețineți că multe dintre propunerile de mai sus au fost preluate din raportul de urmărire a problemelor private al CommonsWare și nu din nicio pagină oficială de documentație Google. Pentru o detaliere suplimentară, mai tehnică, a modului în care aplicațiile care utilizează API-ul Autofill se pot proteja de acest tip de atac, vă recomandăm insistent să citiți Cartea albă completă de CommonsWare.

Ce aplicații sunt ferite de acest defect?

Am contactat dezvoltatorii 1Password, Enpass și LastPass despre această vulnerabilitate, iar echipele de securitate din spatele acestor 3 aplicații au pretins ca ei sunt sigur, deși nu am verificat încă aceste afirmații.

După cum putem vedea în declarațiile de mai sus, 1Password necesită autentificarea utilizatorului înainte de a completa datele, notificându-l și despre ce date vor fi completate în prealabil. Acest lucru ajută, de asemenea, la problema umplerii silențioase, deoarece va apărea o fereastră pop-up de autentificare pentru fiecare activitate care solicită date de completare automată.

Enpass nu va dezvălui niciodată întregul breloc aplicației solicitante, indiferent dacă este rău intenționat sau autentic. Numai articolele salvate care se potrivesc cu numele pachetului aplicației solicitante vor fi prezentate utilizatorului. Ei au confirmat, de asemenea, că vor avea mai multe măsuri în vigoare în urma sfatului Google.

În plus, LastPass ne-a confirmat că, deși nu știau despre problemă înainte de lansarea Android Oreo, aplicația lor folosește partiționarea datelor pentru a proteja utilizatorii, împreună cu alte verificări pentru a vă asigura că LastPass completează numai aplicația asociată cu intrarea.

Deși nu ar trebui să existe absolut nicio problemă cu utilizarea acestor 3 aplicații, dacă doriți să rămâneți complet în clar, ar trebui să dezactivați completați automat complet pe telefon până când puteți confirma cu dezvoltatorul managerului de parole că aplicația lor este protejată de această linie de atac. Din fericire, acest lucru se poate face cu ușurință accesând Setări > Sistem > Limbi și introducere > Avansat și găsind preferința „Serviciul de completare automată”, atingând-o și selectând „Niciuna”.

După cum am spus mai sus, nu se știe dacă Google poate de fapt să remedieze acest lucru, așa că utilizarea aplicațiilor de încredere sau pur și simplu dezactivarea funcției este singura modalitate prin care puteți rămâne în siguranță. Dacă doriți să citiți mai multe despre această problemă și despre toate detaliile asociate cu aceasta, ar trebui să citiți mai multe despre original hârtie albă care o documentează pe GitHub.


Acest articol a fost actualizat la 9/13/17 pentru a reflecta mai precis implicația răspunsurilor LastPass, Enpass și 1Password.