Ono što smo mi u XDA-i jednom zamislili kao dokaz sigurnosne ranjivosti koncepta sada su potvrdili računalni znanstvenici na Georgia Institute of Technology u Atlanti. Tim opisuje kako se zove "ogrtač i bodež" eksploatacije koje mogu preuzeti UI većine verzija Androida (uključujući 7.1.2). S obzirom na njegovu prirodu, teško ga je popraviti, a također ga je teško otkriti.
Cloak and Dagger je exploit koji iskorištava dva dopuštenja kako bi preuzeo kontrolu nad korisničkim sučeljem, a da korisniku ne da priliku da primijeti zlonamjernu aktivnost. Napad koristi dvije dozvole: SYSTEM_ALERT_WINDOW ("nacrtati na vrhu") i BIND_ACCESSIBILITY_SERVICE ("a11y") koje se vrlo često koriste u Android aplikacijama.
Imamo zacrtao ovo u prošlosti, ali ono što čini ovu ranjivost tako akutnom je činjenica da aplikacije koje zahtijevaju SYSTEM_ALERT_WINDOW automatski dobivaju ovo dopuštenje kada se instaliraju putem Google Play Storea. Što se tiče omogućavanja usluge pristupačnosti, zlonamjerna aplikacija je u stanju vrlo lako društveno inžinjerirati korisnika da je odobri. Zlonamjerna aplikacija mogla bi čak biti postavljena da koristi uslugu pristupačnosti u polulegitimne svrhe, kao što je praćenje kada su određene aplikacije otvorene za promjenu određenih postavki.
Nakon što se dodijele ove dvije dozvole, broj napada koji se mogu dogoditi je velik. Moguća je krađa PIN-ova, dvofaktorskih tokena za autentifikaciju, lozinki ili čak napadi uskraćivanjem usluge. To je zahvaljujući kombinaciji preklapanja koja prevari korisnika da misli da je u interakciji s legitimna aplikacija i usluga pristupačnosti koja se koristi za presretanje teksta i unosa dodirom (ili prijenos vlastitog ulazni).
Teoretizirali smo takvu ranjivost prije nekoliko mjeseci, u kojoj bismo stvorili aplikaciju za dokaz koncepta koja koristi SYSTEM_ALERT_WINDOW i BIND_ACCESSIBILITY_SERVICE kako biste nacrtali sloj preko zaslona za unos lozinke u aplikaciji XDA Labs i presreli unos tipki za prevlačenje lozinke. Ova aplikacija koju smo zamislili bila bi aplikacija za upravljanje automatskom rotacijom koja bi koristila preklapanje u svrhu crtanja nevidljivog okvira na zaslonu za kontrolirati rotaciju (umjesto zahtjeva WRITE_SETTINGS koji bi podigao zastavice) i uslugu pristupačnosti koja korisniku omogućuje kontrolu automatskog rotiranja profila za svaku aplikaciju osnova. U teoriji, ovo bi bio jedan primjer aplikacije koja koristi "plašt i bodež". Međutim, nitko iz našeg tima nije bio spreman riskirati svoje račune razvojnih programera izazivanjem Googleovih automatiziranih sustava za skeniranje aplikacija kako bi vidjeli hoće li naše iskorištavanje dokaza koncepta biti dopušteno na Playu Store.
U svakom slučaju, ovi su istraživači odradili posao i predali testne aplikacije kako bi dokazali da korištenje ova dva dopuštenja doista može biti veliki sigurnosni problem:
Kao što vidite, napadi su nevidljivi korisnicima i omogućuju potpunu kontrolu nad uređajem. Trenutno su sve verzije Androida počevši od Androida 5.1.1 do Androida 7.1.2 ranjive na ovo exploit, s obzirom na činjenicu da iskorištava dva dopuštenja koja se inače koriste za potpuno legitimne svrhe.
Ne očekujte da će pravo rješenje za ovaj problem uskoro doći na vaš uređaj, iako treba napomenuti da promjene napravljene u SYSTEM_ALERT_WINDOW u Androidu O djelomično će riješiti ovaj nedostatak tako što će zlonamjernim aplikacijama onemogućiti potpuno crtanje preko cijelog zaslona. Nadalje, Android O sada putem obavijesti upozorava ako aplikacija aktivno crta preklapanje. Uz ove dvije promjene, manja je vjerojatnost da će se zlonamjerna aplikacija izvući s iskorištavanjem ako korisnik je pažljiv.
Kako se zaštititi na verzijama prije Androida O? Kao i uvijek, instalirajte samo aplikacije kojima vjerujete iz izvora kojima vjerujete. Provjerite jesu li dopuštenja koja traže usklađena s onim što očekujete.
Što se tiče stotina milijuna redovnih korisnika, prema Googleovom glasnogovorniku Play Store Protect također će pružiti potrebne popravke za sprječavanje napada ogrtačem i bodežom. Kako će to točno postići nije jasno, ali nadamo se da uključuje neki način otkrivanja kada se ove dvije dozvole koriste zlonamjerno. Sumnjam da bi mogao otkriti sve takve slučajeve, pa je u svakom slučaju najbolje da pratite koja su dopuštenja dana svakoj aplikaciji koju instalirate.