Android „Pixnapping”: nowy atak na piksele wykrada kody 2FA i dane z aplikacji - Security Bez Tabu

Android „Pixnapping”: nowy atak na piksele wykrada kody 2FA i dane z aplikacji

Wprowadzenie do problemu / definicja luki

Pixnapping to nowa klasa ataków na Androida pozwalająca złośliwej aplikacji „podejrzeć” zawartość ekranu innej aplikacji lub witryny – jakby robiła jej zdalny zrzut, ale bez uprawnień i bez interakcji użytkownika. Badacze pokazali, że możliwe jest m.in. odczytanie kodów 2FA z Google Authenticator, fragmentów Gmaila czy treści z aplikacji Signal i Venmo. Google przypisało podatności identyfikator CVE-2025-48561. Częściowa łatka znalazła się w biuletynie zabezpieczeń z września 2025, a pełniejsze poprawki Google zapowiada na grudzień 2025. Nie ma śladów wykorzystania „in the wild”.

W skrócie

  • Co to jest: Ramy ataku, które umożliwiają wyciek pikseli z ekranu innej aplikacji/strony poprzez zestaw legalnych API Androida i kanał boczny w GPU.
  • Na co działa: Zademonstrowano na Pixel 6–9 i Samsung Galaxy S25 (Android 13–16, do buildu BP3A.250905.014). Inne urządzenia najpewniej też są podatne.
  • Uprawnienia: Brak – złośliwa aplikacja nie potrzebuje żadnych zezwoleń w manifeście.
  • Szybkość wycieku: ~0,6–2,1 piksela/s – wystarczająco do odzyskania 6-cyfrowych kodów TOTP.
  • Status łatek: Wrzesień 2025 – częściowa, obejście istnieje; zapowiedziano kolejną w grudniu 2025.

Kontekst / historia / powiązania

Pixnapping łączy dwie linie badań:

  1. GPU.zip – kanał boczny wynikający z zależnej od danych, transparentnej dla oprogramowania kompresji graficznej w nowoczesnych GPU. Pozwala wnioskować o kolorze pikseli na podstawie czasu renderowania/pasmo pamięci.
  2. Android Custom Tabs / „Tabbed Out” – analiza modelu bezpieczeństwa komponentu Custom Tabs (IEEE S&P 2024), która zainspirowała część wektora inicjowania renderowania zawartości ofiary.

Artykuł The Register z 13 października 2025 opisuje Pixnapping i przytacza stanowisko Google o częściowej łatce (wrzesień) oraz planach na grudzień.

Analiza techniczna / szczegóły luki

Model zagrożenia. Zainstalowana aplikacja (bez specjalnych uprawnień) inicjuje sekwencję, w której:

  1. Wypycha piksele ofiary do potoku renderowania – np. uruchamia Google Authenticator/Gmail poprzez Android Intents, aby ich UI został narysowany.
  2. Nakłada półprzezroczyste „Activities” nad wybranym obszarem ekranu i indukuje operacje graficzne (użyto window blur API). Czas renderowania zależy od danych (koloru piksela).
  3. Mierzy czas (VSync callbacks) i przez kanał boczny GPU.zip odtwarza wartości pikseli – następnie OCR składa znaki (np. cyfry TOTP).

Dlaczego to działa? W GPU (np. Mali w Pixelach) bezstratna kompresja graficzna ma współczynnik kompresji zależny od danych, co przekłada się na różnice w czasie renderowania/zużyciu przepustowości – możliwe do pomiaru z aplikacji użytkownika.

Identyfikator CVE i metryki. CVE-2025-48561 opisuje ujawnienie informacji przez kanał boczny w wielu miejscach kodu, bez wymaganych dodatkowych uprawnień i bez interakcji użytkownika. NVD klasyfikuje ją obecnie (CVSS 3.x) jako MEDIUM 5.5 (ocena może ulec zmianie wraz z uzupełnieniem metadanych).

Łatki Google. Pierwsza zmiana ogranicza liczbę wywołań rozmycia (blur) akceptowanych przez system kompozytujący SurfaceFlinger („Don’t blur too many layers”, limit 10 „front-most” blurów). Badacze wskazują jednak, że znaleźli obejście – szczegóły pod embargiem. Kolejne poprawki zapowiedziano na grudzień 2025.

Praktyczne konsekwencje / ryzyko

  • Wykradanie kodów 2FA (TOTP) z aplikacji wyświetlających je wprost (np. Google Authenticator). To realnie obniża skuteczność MFA opartego wyłącznie na TOTP na podatnych urządzeniach.
  • Podgląd treści komunikatorów i e-maili, jeśli ekran aplikacji jest renderowany w momencie ataku.
  • Fingerprinting aplikacji zainstalowanych w systemie – badacze wskazują wektor ominięcia mechanizmów prywatności listy aplikacji (Google ocenił „won’t fix (infeasible)”).
  • Brak uprawnień → potencjalnie większa skala dystrybucji w razie pojawienia się malware’u wykorzystującego exploit (choć Google deklaruje, że na Play nie wykryto takich aplikacji).

Rekomendacje operacyjne / co zrobić teraz

Dla zespołów SecOps / MDM (organizacje):

  1. Wymuś aktualizacje systemu – natychmiast instaluj poprawki z września 2025 i egzekwuj instalację po grudniowym biuletynie. Ustal wskaźniki zgodności (compliance) na poziomie floty.
  2. Tymczasowe zasady aplikacyjne:
    • Ogranicz użycie lokalnych aplikacji TOTP na urządzeniach o wysokim ryzyku; preferuj FIDO2/WebAuthn/klucze sprzętowe lub push-MFA z potwierdzeniem kontekstowym. (Wniosek na podstawie ryzyka opisanego przez badaczy).
    • W politykach EDR/MDM monitoruj nietypowe nakładanie Activities i intensywne wywołania blur (heurystyka na wzorzec PoC). (Wniosek na podstawie patcha i opisu ataku).
  3. Hardening przeglądarki/aplikacji biznesowych: Włączaj tryby ograniczające osadzanie (X-Frame-Options/CSP frame-ancestors) oraz przegląd konfiguracji Custom Tabs (np. Ephemeral Tabs, jeśli dostępne). (Kontekst badań „Tabbed Out”).

Dla deweloperów Android:

  • Minimalizuj ekspozycję wrażliwych danych na UI (maskowanie, ukrywanie kodów TOTP, skrócone okno wyświetlania). To nie eliminuje luki systemowej, ale zmniejsza powierzchnię ataku. (Wniosek na podstawie modelu wycieku pikseli).
  • Wykrywaj nakładki/„draw over” i nietypowe przełączanie się Activities nad Twoją aplikacją; w razie detekcji ukrywaj wrażliwe elementy UI. (Heurystyka defensywna wynikająca z opisu PoC).
  • Rozważ weryfikację kontekstu przed renderowaniem sekretów (np. wymuszenie interakcji, dodatkowy unlock, brak aktywnych nakładek). (Wniosek na podstawie wektora ataku).

Dla użytkowników:

  • Aktualizuj Androida jak tylko pojawi się poprawka; ogranicz instalację aplikacji spoza Google Play. Google deklaruje, że nie wykryto aplikacji wykorzystujących CVE-2025-48561 w Play.
  • Preferuj MFA odporne na podsłuch (klucze bezpieczeństwa/FIDO2) tam, gdzie to możliwe. (Rekomendacja wynikająca z natury ataku na TOTP).

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

  • Klasyczne ataki iframe/timing (2013) zostały w dużej mierze zmitigowane w przeglądarkach. Pixnapping wskrzesza ideę „kradzieży pikseli”, ale poza przeglądarką – na poziomie stosów UI Androida + kanału GPU.
  • GPU.zip (2023/2024) pokazał, że kompresja graficzna sama w sobie jest kanałem bocznym. Pixnapping wykorzystuje podobną obserwację, lecz łączy ją z nakładaniem Activities i blur API, co daje praktyczny wyciek z natywnych aplikacji mobilnych.

Podsumowanie / kluczowe wnioski

Pixnapping (CVE-2025-48561) to realny, choć niskoprzepustowy, wektor boczny na Androidzie, zdolny do kradzieży kodów 2FA i fragmentów danych aplikacji bez uprawnień. Częściowe łatanie po stronie Androida (limitowanie wywołań „blur”) nie zamyka jeszcze problemu – badacze wskazują obejście, a pełniejsze poprawki są w drodze. Organizacje powinny przyspieszyć patchowanie oraz ograniczyć zależność od TOTP na urządzeniach mobilnych wysokiego ryzyka, preferując FIDO2.

Źródła / bibliografia

  1. Strona projektu Pixnapping (paper, Q&A, timeline). (pixnapping.com)
  2. The Register: „Android ‘Pixnapping’ attack can capture app data like 2FA codes” (13.10.2025). (The Register)
  3. NVD: wpis CVE-2025-48561 (opis, metryki). (NVD)
  4. Android AOSP / googlesource: commit „Don’t blur too many layers” (ograniczenie wywołań blur). (Android Git Repositories)
  5. GPU.zip – strona i preprint (kanał boczny kompresji graficznej). (hertzbleed.com)