Un grup de cercetători de la patru universități americane a dezvoltat o tehnică de atac numită Pixnapping (CVE-2025-48561), care permite aplicațiilor Android neprivilegiate, ce nu cer permisiuni suplimentare, să determine conținutul afișat pe ecran de către alte aplicații. Ca exemplu de aplicare practică a atacului, a fost demonstrată identificarea codurilor de autentificare cu doi factori afișate de aplicația Google Authenticator. De asemenea, a fost arătat cum poate fi folosit atacul pentru a extrage date confidențiale afișate pe ecran în timpul utilizării Gmail, Signal, Venmo și Google Maps.
Pentru a determina conținutul de pe ecran a fost folosită o metodă de analiză pe pixeli, implementată în 2023 de aceeași echipă de cercetători în atacul prin canale secundare GPU.zip, descrisă pentru prima dată în 2013. Esența metodei este că, din cauza optimizărilor prezente în GPU, redarea unui pixel cu o culoare ce repetă deja culoarea afișată pe ecran se realizează mai rapid decât a unui pixel cu o altă culoare. Evaluând diferența de timp pentru redarea pixelilor, este posibil să se recreeze conținutul deja existent pe ecran și să se formeze o simulare a unui screenshot.
Atacul Pixnapping constă în apelarea aplicației țintă, afișarea deasupra ferestrei acesteia a unei feronier și executarea unei verifications pixel cu pixel, analizând timpul de execuție al operațiunilor grafice pentru fiecare pixel. O astfel de verificare permite determinarea, cu o probabilitate ridicată, a pixelilor care au culoarea albă de fundal și a celor care participă la afișarea caracterelor. Pentru a ascunde manipularea pixelilor de la utilizator, se aplică suprapuneri de straturi cu măști - în timpul atacului, conținutul ferestrei aplicației atacate continuă să fie vizualizat pe ecran.
Pentru a activa aplicația atacată și a transporta pixelii din fereastra acesteia în pipeline-ul de redare, se efectuează comutări între activitățile Android prin intermediul cererilor intent. Deasupra ferestrei aplicației atacate se afișează feronieri semi-transparente care evidențiază pixelii individuali și inițiază execuția operațiunilor grafice cu ei prin intermediul API Window Blurs. Pentru a măsura timpul exact de redare a pixelului, se utilizează apeluri de callback legate de VSync.

O limitare a metodei propuse anterior pentru GPU.zip a fost performanța scăzută — în timpul atacului asupra browserului, identificarea numelui sub care utilizatorul s-a autentificat în Wikipedia pe un alt tab a durat 30 de minute pe GPU AMD Ryzen 7 4800U și 215 minute pe GPU Intel i7-8700, cu o precizie de 97-98%. Pentru a se încadra în intervalul de 30 de secunde pentru actualizarea codurilor în Google Authenticator, metoda a fost îmbunătățită și optimizată. Numărul de verificări pentru fiecare pixel a fost redus de la 64 la 16, iar întârzierea între procesarea pixelilor a fost diminuată de la 1.5 secunde la 70 de milisecunde. S-a scanat nu întreaga ecran, ci doar zona în care Google Authenticator afișează codul.
Metoda a fost testată pe smartphone-uri Pixel 6, 7, 8 și 9 cu versiunile Android 13-16 pentru a determina cele 106 coduri de șase cifre pentru autentificarea în doi pași generate în Google Authenticator. Precizia identificării codurilor pe smartphone-urile indicate a fost de 73%, 53%, 29% și 53%, iar timpul de identificare a fost de 14.3, 25.8, 24.9 și 25.3 secunde, respectiv. Pe smartphone-ul Samsung Galaxy S25, cercetătorii nu au reușit să se încadreze în intervalul de 30 de secunde din cauza zgomotului generat de funcționarea altor aplicații, dar pe dispozitiv au fost prezentate opțiuni de atac asupra altor aplicații pentru care nu existau restricții de timp. Mecanismele folosite în atac nu sunt specifice modelelor individuale de smartphone-uri și atacul afectează potențial orice dispozitive Android.
Compania Google, în patch-urile din septembrie pentru vulnerabilități, a introdus în Android o protecție inițială împotriva atacului, bazată pe interzicerea aplicării operației de blur asupra unui număr mare de straturi. Ca răspuns, cercetătorii au găsit o modalitate de a ocoli această limitare, astfel încât Google plănuiește să implementeze o protecție mai completă în actualizarea din decembrie a Android. Producătorii de GPU nu au anunțat deocamdată intenția de a elimina canalul de scurgere, în ciuda faptului că metoda de atac este cunoscută de mai bine de 12 ani.
Sursa: opennet.ro
