Potencijalni sigurnosni propust u API-ju za automatsko popunjavanje sustava Android Oreo omogućuje upraviteljima lozinki curenje podataka poput lozinki, adresa ili kreditnih kartica.
Automatsko popunjavanje jedna je od najvećih i najobjavljenijih novih značajki predstavljenih izdanjem Androida 8.0 Oreo. Mnoge različite aplikacije za upravljanje lozinkama, kao što je LastPass, već su implementirale ovaj novi API u svoje aplikacije. I dok se može pokazati prilično poboljšanje U usporedbi s prethodnim implementacijama automatskog popunjavanja koje koriste usluge pristupačnosti, postoji potencijalni sigurnosni propust koji treba razmotriti. Prošlog mjeseca na GitHubu je objavljena bijela knjiga koja dokumentira inherentnu grešku u Android Oreo Autofill API-ju koja bi mogla potencijalno dovesti do toga da vaš upravitelj lozinki otkrije više vaših osobnih podataka nego što ste mu dopustili. Napravit ćemo brzi pregled bijelog papira koji je napisao Mark Murphy (poznatiji kao CommonsWare) i objavljen na njegovoj GitHub stranici 8. kolovoza 2017.
Nedostatak potencijalnog curenja podataka u Android Oreo API-ju za automatsko popunjavanje
Kako mana radi?
Implementacija automatskog popunjavanja u Androidu Nougat (i nižim verzijama) i preglednicima poput Google Chromea je nešto stvarno jednostavno. Obično bi aplikacije za upravljanje lozinkama koristile usluge pristupačnosti za skeniranje sadržaja zaslona u potrazi za okvirom za prijavu i preporučile podatke za automatsko popunjavanje na temelju onoga što pronađu. Dok je radio, to može uzrokovati znatno kašnjenje.
Na Androidu Oreo ovo funkcionira malo drugačije jer su aplikacije za zaporke sada službeno podržane s Autofill API-jem. Aplikacije za lozinke trećih strana više ne zahtijevaju usluge pristupačnosti jer sada mogu ispuniti ulogu usluge automatskog popunjavanja, komunicirajući s aplikacijama putem okvira za automatsko popunjavanje. Kada se korisnik fokusira na widget, sustav će pakirati neke informacije o tom widgetu/formi i poslati ih aplikaciji za automatsko popunjavanje. Aplikacija zatim vraća relevantne podatke za automatsko popunjavanje kao što su lozinke, e-pošta, kreditne kartice ili bilo koje druge vrste osjetljivih podataka. Sustav Android djeluje kao posrednik između aplikacije koja pohranjuje podatke i one koja ih traži.
Međutim, zlonamjerne aplikacije ili zlonamjerni softver zapravo mogu iskoristiti značajku automatskog popunjavanja kako bi dobili više podataka za sebe. Zlonamjerna aktivnost može zatražite unos dodatnih podataka za automatsko popunjavanje pomoću nevidljivog ili skrivenog widgeta. Dok korisnik pristaje ispuniti jedan od vidljivih widgeta, poput formulara za prijavu ili nečeg sličnog, nevidljivi widget također dobiva dodatne podatke, a da ih vi ne vidite. To može biti jako opasno ako su te informacije koje su procurile vaša lozinka, adresa ili podaci o kreditnoj kartici!
Gornje snimke zaslona prikazuju zlonamjernu testnu aplikaciju koja iskorištava ovaj sigurnosni propust.
Googleov odgovor na problem
Prema CommonsWareu, ovaj sigurnosni problem još nema javno rješenje koje je objavio Google. Međutim, znamo da je Google svjestan problema. CommonsWare navodi da su Googleovi inženjeri priznali da problem postoji u privatnom izvješću praćenja problema, ali da bilo bi teško (ako ne i nemoguće) to zapravo zakrpati ili izbacite popravak.
Ali to ne znači da je Automatsko popunjavanje potpuno nesigurno za korištenje, jer Google ima drugačiji pristup osiguravanju sigurnosti podataka. Tvrtka je tražeći da usluge automatskog popunjavanja riješe problem sa svoje strane i kao takav pokušava podići svijest kod programera kako bi poboljšali svoje pružatelje usluga automatskog popunjavanja i učinili ih sigurnijima. Što se točno predlaže?
Prije svega, pružatelji usluga automatskog popunjavanja trebaju podijeliti svoje podatke. Umjesto držanja svih podataka automatskog popunjavanja u jednom skupu, programeri bi trebali podijeliti korisničke podatke pohranjene u particije. Na primjer, particija adresa/telefon, particija kreditne kartice, particija lozinka/korisničko ime itd. Usluga automatskog popunjavanja trebala bi vraćati samo podatke jedne po jedne particije na temelju fokusiranog widgeta. Ovo je jedan od javno dostupnih stranica na aplikacijama za automatsko popunjavanje koje se štite od curenja podataka u nevidljive widgete.
Postoje i neke druge stvari koje bi programeri upravitelja lozinkama trebali učiniti, prema Googleovim inženjerima. Na primjer, pružatelj usluge automatskog popunjavanja trebao bi vratiti podatke samo određenoj aplikaciji koja ih je isporučila. To bi trebalo biti učinjeno provjerom naziva paketa i javnog potpisa aplikacije kako mu čak ni modificirani APK ne bi mogao pristupiti. Druga stvar bi bila da aplikacije za automatsko popunjavanje zahtijevaju autentifikaciju prije stvarnog pružanja podataka ta aktivnost provjere autentičnosti koja obavještava korisnika koji će podaci biti dostavljeni aplikaciji koja ih zahtijeva. Ovaj savjet zapravo ima mnogo grešaka, a najvažnija je da Google zapravo ne provodi ove savjete.
Imajte na umu da su mnogi od gornjih prijedloga preuzeti iz CommonsWareovog privatnog izvješća o praćenju problema, a ne s bilo koje službene Google stranice s dokumentacijom. Za daljnju, detaljniju tehničku analizu načina na koji se aplikacije koje koriste API za automatsko popunjavanje mogu zaštititi od ove vrste napada, preporučujemo da pročitate full white paper by CommonsWare.
Koje su aplikacije sigurne od ovog propusta?
Obratili smo se programerima 1Password, Enpass i LastPass u vezi ove ranjivosti, a sigurnosni timovi koji stoje iza ove 3 aplikacije su tvrdio da su oni siguran, iako još nismo provjerili te tvrdnje.
Kao što možemo vidjeti u gornjim izjavama, 1Password zahtijeva autentifikaciju od korisnika prije popunjavanja podataka, također ih obavještavajući o tome koji će podaci biti ispunjeni prije. Ovo također pomaže kod problema s tihim punjenjem, budući da će se za svaku aktivnost pojaviti skočni prozor za provjeru autentičnosti koji traži podatke za automatsko popunjavanje.
Enpass nikada neće otkriti cijeli privjesak ključeva aplikaciji koja zahtijeva, bilo da je zlonamjerna ili originalna. Korisniku će se prikazati samo spremljene stavke koje odgovaraju nazivu paketa aplikacije koja zahtijeva. Također su potvrdili da će primijeniti dodatne mjere prema Googleovim savjetima.
Nadalje, LastPass nam je potvrdio da, iako nisu znali za problem prije izdanja Androida Oreo, njihova aplikacija koristi particioniranje podataka radi zaštite korisnika, zajedno s drugim provjerama kako bi se osiguralo da LastPass ispunjava samo aplikaciju povezanu s unosom.
Iako ne bi trebalo biti apsolutno nikakvih problema s korištenjem ove 3 aplikacije, ako želite ostati potpuno čisti, trebali biste onemogućiti potpuno automatsko popunjavanje na vašem telefonu dok ne potvrdite s programerom upravitelja zaporki da je njihova aplikacija sigurna od ove linije napad. Srećom, to se može jednostavno učiniti ako odete na Postavke > Sustav > Jezici i unos > Napredno i pronađete postavku "Usluga automatskog popunjavanja", dodirnete je i odaberete "Ništa".
Kao što smo rekli gore, nije poznato može li Google zaista izbaciti popravak za ovo, tako da je korištenje pouzdanih aplikacija ili jednostavno onemogućavanje značajke jedini način na koji možete ostati sigurni. Ako želite pročitati više o ovom pitanju i svim detaljima povezanim s njim, trebali biste pročitati izvornik bijeli papir koji to dokumentira na GitHubu.
Ovaj je članak ažuriran 13. rujna 2017. kako bi točnije odražavao implikacije odgovora LastPassa, Enpassa i 1Passworda.