
Régi trükk új köntösben: a Pixnapping-támadás
Egy egyetemi kutatócsoport egy évtizedes, böngészőkben már ismert adatlopási módszert porolt le, és most sikerrel alkalmazza Android mobilokon. A Pixnapping nevű technika lehetővé teszi egy rosszindulatú alkalmazás számára, hogy más alkalmazások vagy weboldalak tartalmát – például a Google Térkép (Google Maps), a Signal, a Venmo vagy akár a Gmail-fiók (mail.google.com) adatait – kikukucskálja, sőt, még a Google Hitelesítő (Google Authenticator) appban megjelenő kétfaktoros hitelesítési kódokat is ellophatja.
Hogyan működik a támadás a gyakorlatban?
A Pixnapping az úgynevezett hardveres mellékcsatornát (side channel) használja, pontosabban a grafikus processzor (GPU) megjelenítési idejét figyeli, hogy következtethessen a képernyő tartalmára. A támadó alkalmazás átlátszó overlay (áttetsző felület) ablakokat helyez a célalkalmazások fölé, és így elemzi, mennyi időbe telik a képek megjelenítése – ez alapján következtet arra, milyen színű egy-egy pixel, vagyis mi jelent meg a képernyőn. Ez a módszer valódi képernyőmentést szimulál, mindenféle külön engedély nélkül.
Figyelemre méltó, hogy a támadás nem igényel extra jogosultságokat az Android manifestben, tehát egy látszólag ártalmatlan alkalmazás is titokban alkalmazhatja. A Pixnapping főként a Google Pixel készülékeken (Pixel 6, 7, 8, 9), illetve a Samsung Galaxy S25 modelleken, az Android 13-tól a legújabb, 16-os verzióig működik. Más eszközökön sem kizárt, hiszen az alapul szolgáló architektúra, főként a Mali GPU, széles körben elterjedt.
Miért pont a GPU a kulcs?
De miért teszi mindezt lehetővé a grafikus processzor? A Mali GPU veszteségmentes tömörítési eljárásokat alkalmaz, amelyek adatfüggő tömörítési arányokat eredményeznek. Ez adott memória-sávszélesség mellett változó renderelési időket jelent. Ezekből a mikroszkopikus különbségekből lehet kikövetkeztetni, hogy a céltartalom milyen. A támadó app mindezt az Android window blur, vagyis az elmosódás effektusával kombinálja, és a VSync visszahívások mérésével hajtja végre.
A módszer korlátai és a javítási próbálkozások
Míg a támadás sokkolóan hatékony, nem villámgyors: másodpercenként mindössze 0,6–2,1 pixelnyi adat nyerhető ki, de ez bőven elegendő például egy hatjegyű Google Hitelesítő-kód kiszippantásához néhány másodperc alatt. Ez azt sugallja, hogy akár olyan érzékeny adatok is veszélybe kerülhetnek, amelyekről a felhasználók azt hitték, teljesen biztonságban vannak.
A Google már kiadott egy részleges javítást a CVE-2025-48561-es sérülékenységhez a szeptemberi Android biztonsági frissítésben, decemberben pedig egy újabb javítás is várható. Fontos megjegyezni, hogy a Google Play Áruházban egyelőre nem találtak olyan alkalmazást, amely valóban kihasználná ezt a sérülékenységet. A Google a védelem érdekében korlátozta, hogy egy alkalmazás hányszor használhatja a blur API-t, de a kutatók egy eddig nem részletezett megkerülő módszert is találtak. Saját javaslatuk szerint a leghatékonyabb védekezés az lenne, ha a támadónak nem engednék a célpixeleket manipuláló műveletek végrehajtását – hiszen az ehhez hasonló mellékcsatornák újra és újra felbukkannak, a rétegezési lehetőségeket pedig az Androidból nem valószínű, hogy valaha teljesen eltávolítják.
Egyéb aggasztó mellékhatások
A kutatók azt is kimutatták, hogy egymás után kombinált Android Intent üzenetekkel egy támadó alkalmazás az összes telepített applikáció listáját is lekérdezheti, noha papíron ez már az Android 11 óta nem volna lehetséges adatvédelmi okokból. Kontrasztként: erre a Google azt válaszolta, hogy a problémát kijavítani nem reális elvárás.
Mit hoz a jövő: még nincs végleges védelem
A Pixnapping támadás mögött álló GPU.zip mellékcsatorna kiküszöbölésére egyetlen gyártó sem jelentett be konkrét lépéseket. A Google saját fejlesztései sem hoztak még teljes körű megoldást, így a támadási felület egyelőre nyitott. Az androidos felhasználóknak ezért érdemes odafigyelniük, hogy ne telepítsenek bizonytalan forrásból származó alkalmazásokat, hiszen a láthatatlan adatlopás nap mint nap egyre rafináltabb trükkökkel fenyeget.