Ceea ce noi cei de la XDA am imaginat cândva ca o dovadă a vulnerabilității de securitate a conceptului a fost acum confirmat de informaticienii de la Institutul de Tehnologie Georgia din Atlanta. Echipa detaliază ceea ce ei numesc "mantie și pumnal" exploit-uri care pot prelua interfața de utilizare a majorității versiunilor de Android (inclusiv 7.1.2). Având în vedere natura sa, este dificil de reparat și, de asemenea, dificil de detectat.
Cloak and Dagger este un exploit care profită de două permisiuni pentru a prelua controlul asupra interfeței de utilizare fără a oferi utilizatorului șansa de a observa activitatea rău intenționată. Atacul folosește două permisiuni: SYSTEM_ALERT_WINDOW ("desenează deasupra") și BIND_ACCESSIBILITY_SERVICE ("a11y"), care sunt foarte frecvent utilizate în aplicațiile Android.
Avem a subliniat acest lucru în trecut, dar ceea ce face această vulnerabilitate atât de acută este faptul că aplicațiilor care solicită SYSTEM_ALERT_WINDOW li se acordă automat această permisiune atunci când sunt instalate prin Magazinul Google Play. În ceea ce privește activarea unui serviciu de accesibilitate, o aplicație rău intenționată este capabilă să determine destul de ușor din punct de vedere social un utilizator să îl acorde. Aplicația rău intenționată ar putea fi configurată chiar să utilizeze un serviciu de accesibilitate într-un scop semi-legitim, cum ar fi monitorizarea când anumite aplicații sunt deschise pentru a modifica anumite setări.
Odată ce aceste două permisiuni au fost acordate, numărul de atacuri care ar putea apărea este numeroase. Furtul de coduri PIN, jetoane de autentificare cu doi factori, parole sau chiar atacuri de refuzare a serviciului sunt toate posibile. Acest lucru se datorează combinației de suprapuneri pentru a păcăli utilizatorul să creadă că interacționează cu a aplicația legitimă și Serviciul de accesibilitate sunt utilizate pentru a intercepta textul și introducerea tactilă (sau pentru a transmite propria aplicație intrare).
Am teoretizat o astfel de vulnerabilitate în urmă cu câteva luni, în care am crea o aplicație de dovadă a conceptului care folosește SYSTEM_ALERT_WINDOW și BIND_ACCESSIBILITY_SERVICE pentru a desena o suprapunere peste ecranul de introducere a parolei din aplicația XDA Labs și a intercepta introducerea tastei pentru a glisa parolele. Această aplicație pe care am imaginat-o ar fi o aplicație de gestionare a rotației automate care ar folosi o suprapunere în scopul de a desena o casetă invizibilă pe ecran pentru controlează rotația (în loc să solicite WRITE_SETTINGS care ar ridica steaguri) și un serviciu de accesibilitate pentru a permite utilizatorului să controleze profilurile cu rotire automată pe o aplicație bază. În teorie, acesta ar fi un exemplu de aplicație care folosește „pelerina și pumnalul”. Cu toate acestea, niciunul dintre echipa noastră nu a fost dispus să-și riște conturi de dezvoltator, provocând sistemele automate de scanare a aplicațiilor Google pentru a vedea dacă exploatarea noastră de dovadă a conceptului ar fi permisă pe Play Magazin.
În orice caz, acești cercetători au făcut munca și au trimis cereri de testare pentru a demonstra că utilizarea acestor două permisiuni poate fi într-adevăr o problemă majoră de securitate:
După cum puteți vedea, atacurile sunt invizibile pentru utilizatori și permit controlul deplin asupra dispozitivului. În prezent, toate versiunile de Android începând de la Android 5.1.1 la Android 7.1.2 sunt vulnerabile la acest lucru exploit, dat fiind faptul că profită de două permisiuni folosite altfel pentru complet legitime scopuri.
Nu vă așteptați ca o remediere adevărată a acestei probleme să apară pe dispozitivul dvs. în curând, deși trebuie remarcat faptul că modificările aduse la SYSTEM_ALERT_WINDOW în Android O va rezolva parțial acest defect, interzicând aplicațiile rău intenționate să deseneze complet pe întregul ecran. În plus, Android O alertează acum printr-o notificare dacă o aplicație desenează în mod activ o suprapunere. Cu aceste două modificări, este mai puțin probabil ca o aplicație rău intenționată să scape cu exploit dacă utilizatorul este atent.
Cum te protejezi pe versiunile anterioare Android O? Ca întotdeauna, instalați numai aplicații în care aveți încredere din surse în care aveți încredere. Asigurați-vă că permisiunile pe care le solicită sunt aliniate cu ceea ce vă așteptați.
În ceea ce privește sutele de milioane de utilizatori obișnuiți, potrivit unui purtător de cuvânt al Google Play Store Protect va oferi, de asemenea, remediile necesare pentru a preveni atacurile de mantie și pumnal. Cum se va realiza exact acest lucru nu este clar, dar sperăm că implică o modalitate de a detecta când aceste două permisiuni sunt utilizate în mod rău intenționat. Mă îndoiesc că ar fi capabil să detecteze toate astfel de cazuri, așa că, în orice caz, cel mai bine este să monitorizați ce permisiuni sunt acordate fiecărei aplicații pe care o instalați.