Skupina výzkumníků ze čtyř amerických univerzit vyvinula útočnou techniku Pixnapping (CVE-2025-48561), která umožňuje neprivilegovaným uživatelům Android- aplikace, které nevyžadují další oprávnění, mohou určovat obsah zobrazovaný jinými aplikacemi. Jako praktický příklad použití útoku je demonstrována detekce dvoufaktorových ověřovacích kódů zobrazovaných aplikací Google Authenticator. Je také ukázáno, jak lze útok použít k extrakci citlivých dat zobrazených při používání Gmailu, Signalu, Venma a Map Google.
Pro určení obsahu obrazovky byla použita metoda analýzy pixel po pixelu, poprvé popsána v roce 2013 a implementována v roce 2023 stejným týmem výzkumníků v rámci útoku postranního kanálu GPU.zip. Podstata metody spočívá v tom, že díky optimalizacím v GPU je vykreslení pixelu s barvou, která odpovídá již zobrazené barvě, rychlejší než vykreslení pixelu s jinou barvou. Posouzením rozdílu v době vykreslení pixelu je možné znovu vytvořit existující obsah obrazovky a vytvořit zdání snímku obrazovky.
Útok pixnappingem zahrnuje spuštění cílové aplikace, překrytí jejího vlastního okna a prohledávání jejího obsahu pixel po pixelu s analýzou doby provádění grafických operací na každém pixelu. Toto vyhledávání umožňuje s vysokou mírou jistoty určit, které pixely mají bílé pozadí a které se používají k zobrazení znaků. Pro skrytí manipulace s pixely před uživatelem se používají maskované vrstvy; během útoku se obsah okna aplikace, ze kterého je útok prováděn, nadále vizuálně zobrazuje na obrazovce.
Pro aktivaci napadené aplikace a získání pixelů z jejího okna do renderovacího kanálu je nutné přepínat mezi Android-aktivity využívající intent requesty. Průsvitná okna se zobrazují přes okno cílové aplikace, zvýrazňují jednotlivé pixely a spouštějí na nich grafické operace pomocí rozhraní Window Blurs API. Zpětná volání propojená s VSync se používají k měření přesné doby vykreslování pixelů.

Omezením dříve navržené metody GPU.zip byl nízký výkon. Při útoku na prohlížeč trvalo určení uživatelského jména, pod kterým se uživatel přihlásil na Wikipedii v jiné záložce, 30 minut na grafickém procesoru AMD Ryzen 7 4800U a 215 minut na grafickém procesoru Intel i7-8700 s přesností 97–98 %. Aby byl splněn 30sekundový interval obnovy kódu v aplikaci Google Authenticator, byla metoda vylepšena a optimalizována. Počet kontrol na pixel byl snížen ze 64 na 16 a zpoždění mezi zpracováním pixelů bylo sníženo z 1.5 sekundy na 70 milisekund. Skenování nebylo prováděno na celé obrazovce, ale pouze v oblasti, kde Google Authenticator zobrazuje kód.
Metoda byla testována na chytrých telefonech Pixel 6, 7, 8 a 9 s verzemi Android 13-16 pro detekci stovky šestimístných dvoufaktorových ověřovacích kódů vygenerovaných v aplikaci Google Authenticator. Přesnost detekce kódu na testovaných chytrých telefonech byla 73 %, 53 %, 29 % a 53 %, zatímco doba detekce byla 14.3, 25.8, 24.9 a 25.3 sekundy. Na chytrém telefonu Samsung Galaxy S25 se vědcům nepodařilo splnit 30sekundový časový limit kvůli šumu způsobenému jinými aplikacemi, ale zařízení demonstrovalo varianty útoku na jiných aplikacích, pro které časový limit nebyl stanoven. Mechanismy použité při útoku nejsou specifické pro jednotlivé modely chytrých telefonů a útok potenciálně ovlivňuje jakékoli Android- zařízení.
Google přidal zranitelnosti ve svých zářijových záplatách Android počáteční ochrana před útokem, založené na zakázání operace rozmazání u velkého počtu vrstev. V reakci na to vědci našli způsob, jak toto omezení obejít, takže Google plánuje v prosincové aktualizaci implementovat komplexnější ochranu. AndroidVýrobci grafických karet (GPU) zatím neoznámili žádné plány na opravu úniku, a to i přesto, že metoda útoku je známá již více než 12 let.
Zdroj: opennet.ru
