Morebitna varnostna napaka v API-ju za samodejno izpolnjevanje sistema Android Oreo upraviteljem gesel omogoča uhajanje podatkov, kot so gesla, naslovi ali kreditne kartice.
Samodejno izpolnjevanje je ena največjih in najbolj oglaševanih novih funkcij, uvedenih z izdajo Androida 8.0 Oreo. Veliko različnih aplikacij za upravljanje gesel, kot je LastPass, je že implementiralo ta novi API v svoje aplikacije. In čeprav se lahko izkaže, da je kar izboljšanje v primerjavi s prejšnjimi izvedbami samodejnega izpolnjevanja, ki uporabljajo storitve dostopnosti, je treba upoštevati morebitno varnostno napako. Prejšnji mesec je bila na GitHubu objavljena bela knjiga, ki dokumentira inherentno napako v Android Oreo Autofill API, ki bi lahko potencialno povzroči, da vaš upravitelj gesel izda več vaših osebnih podatkov, kot ste mu dovolili. Na hitro bomo pregledali belo knjigo, ki jo je napisal Mark Murphy (bolj znan kot CommonsWare) in objavljen na njegovi strani GitHub 8. avgusta 2017.
Možna napaka pri uhajanju podatkov v API-ju za samodejno izpolnjevanje Android Oreo
Kako deluje napaka?
Implementacija samodejnega izpolnjevanja v sistemu Android Nougat (in nižjih različicah) in brskalnikih, kot je Google Chrome, je nekaj zelo preprostega. Običajno bi aplikacije za upravljanje gesel uporabljale storitve dostopnosti za skeniranje vsebine zaslona za polje za prijavo in priporočile podatke za samodejno izpolnjevanje na podlagi tega, kar najdejo. Medtem ko je delovalo, je lahko povzroči precejšen zaostanek.
V sistemu Android Oreo to deluje nekoliko drugače, saj so aplikacije za gesla zdaj uradno podprte z API-jem za samodejno izpolnjevanje. Aplikacije za gesla tretjih oseb ne potrebujejo več storitev dostopnosti, saj lahko zdaj opravljajo vlogo storitve samodejnega izpolnjevanja in komunicirajo z aplikacijami prek ogrodja za samodejno izpolnjevanje. Ko se uporabnik osredotoči na gradnik, bo sistem zapakiral nekaj informacij o tem gradniku/obrazcu in jih poslal aplikaciji za samodejno izpolnjevanje. Aplikacija nato vrne ustrezne podatke za samodejno izpolnjevanje, kot so gesla, e-pošta, kreditne kartice ali katere koli druge vrste občutljivih podatkov. Sistem Android deluje kot posrednik med aplikacijo, ki shranjuje podatke, in tisto, ki jih zahteva.
Vendar lahko zlonamerne aplikacije ali zlonamerna programska oprema dejansko izkoristijo funkcijo samodejnega izpolnjevanja, da pridobijo več podatkov zase. Zlonamerna dejavnost lahko zahtevajte dodatne podatke za samodejno izpolnjevanje, ki se vnesejo z nevidnim ali skritim pripomočkom. Medtem ko se uporabnik strinja z izpolnitvijo enega od vidnih gradnikov, kot je obrazec za prijavo ali kaj podobnega, nevidni gradnik prav tako dobi dodatne podatke, ne da bi jih vi videli. To je lahko zelo nevarno, če so ti razkriti podatki vaše geslo, naslov ali podatki o kreditni kartici!
Zgornji posnetki zaslona prikazujejo zlonamerno testno aplikacijo, ki izkorišča to varnostno napako.
Googlov odgovor na problem
Glede na CommonsWare ta varnostna težava še nima javne rešitve, ki bi jo objavil Google. Vemo pa, da se Google zaveda težave. CommonsWare navaja, da so Googlovi inženirji potrdili, da težava obstaja v zasebnem poročilu sledilnika težavam, vendar bi ga bilo težko (če ne nemogoče) dejansko popraviti ali uvesti popravek.
Ampak to ne pomeni, da je uporaba samodejnega izpolnjevanja popolnoma nevarna, saj Google ubira drugačen pristop k zagotavljanju varnosti podatkov. Podjetje je si prizadeva, da bi storitve samodejnega izpolnjevanja rešile težavo na svoji strani in kot tak poskuša dvigniti zavest razvijalcev, da izboljšajo svoje ponudnike samodejnega izpolnjevanja in jih naredijo varnejše. Kaj točno se predlaga?
Najprej ponudniki samodejnega izpolnjevanja morajo razdeliti svoje podatke. Namesto da bi vse podatke o samodejnem izpolnjevanju hranili v enem samem bazenu, bi morali razvijalci uporabniške podatke, shranjene v particijah, razdeliti. Na primer particija za naslov/telefon, particija za kreditno kartico, particija za geslo/uporabniško ime itd. Storitev samodejnega izpolnjevanja bi morala vrniti samo podatke ene particije naenkrat glede na izbrani gradnik. To je eden od javno dostopnih straneh o aplikacijah za samodejno izpolnjevanje, ki se zaščitijo pred uhajanjem podatkov v nevidne pripomočke.
Razvijalci upraviteljev gesel bi morali po mnenju Googlovih inženirjev storiti tudi nekaj drugih stvari. Ponudnik samodejnega izpolnjevanja bi moral na primer podatke vrniti samo določeni aplikaciji, ki jih je najprej posredovala. To storite tako, da preverite ime paketa in javni podpis aplikacije, tako da tudi spremenjeni APK ne more dostopati do njega. Druga stvar bi bila, da aplikacije za samodejno izpolnjevanje zahtevajo preverjanje pristnosti, preden dejansko zagotovijo podatke, z ta dejavnost preverjanja pristnosti, ki obvešča uporabnika, kakšni podatki bodo zagotovljeni aplikaciji, ki jih zahteva. Ta nasvet ima dejansko veliko napak, najpomembnejša pa je ta, da Google teh nasvetov dejansko ne izvaja.
Upoštevajte, da je veliko zgornjih predlogov vzetih iz zasebnega poročila sledilnika težav CommonsWare in ne s katere koli uradne Googlove strani z dokumentacijo. Za nadaljnjo, bolj tehnično razčlenitev, kako se lahko aplikacije, ki uporabljajo API za samodejno izpolnjevanje, zaščitijo pred tovrstnim napadom, toplo priporočamo, da preberete popolna bela knjiga CommonsWare.
Katere aplikacije so varne pred to napako?
Glede te ranljivosti smo se obrnili na razvijalce 1Password, Enpass in LastPass, varnostne ekipe, ki stojijo za temi tremi aplikacijami, pa so trdil da so varno, čeprav teh trditev še nismo preverili.
Kot lahko vidimo v zgornjih izjavah, 1Password od uporabnika zahteva avtentikacijo pred izpolnjevanjem podatkov, prav tako jih predhodno obvesti, kateri podatki bodo izpolnjeni. To pomaga tudi pri težavi s tihim polnjenjem, saj se bo pojavno okno za preverjanje pristnosti pojavilo za vsako dejavnost, ki zahteva podatke za samodejno izpolnjevanje.
Enpass aplikaciji, ki zahteva, ne bo nikoli razkril celotnega obeska ključev, ne glede na to, ali je zlonamerna ali pristna. Uporabniku bodo predstavljeni samo shranjeni elementi, ki se ujemajo z imenom paketa aplikacije, ki zahteva. Potrdili so tudi, da bodo po Googlovih nasvetih uvedli več ukrepov.
Poleg tega nam je LastPass potrdil, da čeprav niso vedeli za težavo pred izdajo Android Oreo, njihova aplikacija uporablja particioniranje podatkov za zaščito uporabnikov, skupaj z drugimi preverjanji, da se prepričate, da LastPass polni samo aplikacijo, povezano z vnosom.
Čeprav pri uporabi teh 3 aplikacij ne bi smelo biti nobenih težav, če želite ostati popolnoma jasni, onemogočite popolnoma samodejno izpolnite v telefonu, dokler ne potrdite z razvijalcem upravitelja gesel, da je njihova aplikacija varna pred to vrstico napad. Na srečo lahko to preprosto storite tako, da odprete Nastavitve > Sistem > Jeziki in vnos > Napredno in poiščete nastavitev »Autofill service«, se je dotaknete in izberete »Brez«.
Kot smo povedali zgoraj, ni znano, ali lahko Google dejansko ponudi popravek za to, zato je uporaba zaupanja vrednih aplikacij ali preprosto onemogočanje funkcije edini način, da ostanete varni. Če želite prebrati več o tem vprašanju in vseh podrobnostih, povezanih z njim, morate prebrati izvirnik bela knjiga, ki to dokumentira na GitHubu.
Ta članek je bil posodobljen 13. septembra 2017, da bi natančneje odražal posledice odzivov LastPass, Enpass in 1Password.