
Aktualizacja aplikacji może po cichu poszerzyć jej uprawnienia na Androidzie — badanie 19,3 mln APK ujawnia problem „cichej zgody”
Aktualizacja aplikacji zwykle kojarzy się z poprawkami błędów, nowymi funkcjami albo łatką bezpieczeństwa. Problem zaczyna się wtedy, gdy wraz z nową wersją program dostaje dodatkowe możliwości dostępu do danych, a użytkownik nie widzi żadnego nowego pytania o zgodę.
Badanie „Silent Consent, Persistent Risk”, przygotowane przez Olawale’a Amosa Akanjiego, Manuela Egele i Gianlucę Stringhiniego z Boston University, pokazuje skalę zjawiska na podstawie 19 324 760 plików APK, reprezentujących 5 965 583 różnych aplikacji z repozytorium AndroZoo. Materiał obejmował wersje aplikacji z lat 2013–2025. Spośród 2 244 575 aplikacji, dla których dostępnych było kilka wersji, 381 026, czyli 17%, przynajmniej raz rozszerzyło zestaw uprawnień w obrębie grupy, którą użytkownik wcześniej już zaakceptował.
Nie oznacza to, że 17% aplikacji wykradało dane ani że każda aktualizacja automatycznie stanowi zagrożenie. Problem jest bardziej podstawowy: zgoda udzielona wcześniej może w praktyce obejmować więcej, niż użytkownik widział w chwili jej udzielania.
Jedna zgoda może otworzyć drogę do kolejnego uprawnienia
Android od lat grupuje powiązane uprawnienia. Z punktu widzenia obsługi telefonu ma to sens — gdyby system pytał o każdą drobną operację osobno, użytkownik szybko zacząłby bezmyślnie klikać „Zezwól”. Ta wygoda ma jednak swoją cenę.
Jeżeli aplikacja ma już zaakceptowane uprawnienie należące do określonej grupy, późniejsza aktualizacja może dodać kolejne uprawnienie z tej samej grupy bez wyświetlenia nowego okna zgody. Autorzy badania sprawdzili to eksperymentalnie na Androidzie 16, testując wszystkie dziewięć analizowanych grup niebezpiecznych uprawnień. Nowo dodane uprawnienia były przyznawane automatycznie — bez komunikatu podczas aktualizacji i bez osobnego ostrzeżenia użytkownika.
Najłatwiej zobaczyć problem na przykładzie. Aplikacja może początkowo potrzebować jednej funkcji związanej z SMS-ami. Użytkownik świadomie ją akceptuje. Kolejna wersja programu może jednak dodać inne uprawnienie należące do tej samej grupy. Z punktu widzenia człowieka zakres działania aplikacji właśnie się zmienił; z punktu widzenia mechanizmu grupowania wcześniejsza zgoda może wystarczyć.
Podobny problem dotyczy zdjęć i filmów. Android wprowadzał w kolejnych wersjach coraz dokładniejsze mechanizmy kontroli dostępu do multimediów, ale ustawienia systemowe nie zawsze dają użytkownikowi równie precyzyjną możliwość późniejszego wycofania pojedynczego elementu zgody. W praktyce bywa więc tak, że system dokładniej pyta niż później pozwala zarządzać udzielonym dostępem.
Skala historycznych przypadków pokazuje, gdzie zjawisko występowało najczęściej. W całym analizowanym zbiorze badacze zarejestrowali 928 452 przypadki rozszerzenia uprawnień. Największy udział miały:
- pamięć i multimedia — 677 705 przypadków, 73,0% całości,
- lokalizacja — 140 541, czyli 15,1%,
- telefon — 58 976, czyli 6,4%,
- kontakty — 30 591, czyli 3,3%,
- SMS — 11 463, czyli 1,2%,
- urządzenia w pobliżu — 7 775, czyli 0,8%.
Łącznie trzy pierwsze grupy — pamięć, lokalizacja i telefon — odpowiadały za 94,5% analizowanych rozszerzeń.
Sama liczba nie mówi jeszcze, czy konkretna zmiana była szkodliwa. Aktualizacja aplikacji nawigacyjnej może dostać nowe uprawnienie lokalizacyjne z całkowicie uzasadnionego powodu. Problem polega na tym, że użytkownik nie dostaje w tym momencie nowej decyzji do podjęcia.
Malware korzysta z tego częściej, ale problem nie dotyczy wyłącznie złośliwych aplikacji
Autorzy zestawili zmiany uprawnień z wynikami VirusTotal. Za główny próg przyjęli sytuację, w której co najmniej 20 silników antywirusowych oznaczało przynajmniej jedną wersję aplikacji jako złośliwą.
W tej klasyfikacji aplikacje oznaczone jako malware częściej rozszerzały uprawnienia wewnątrz już zaakceptowanych grup. Wyliczony odds ratio wyniósł 1,35, a zależność była istotna statystycznie. W grupie aplikacji wymagających szczególnie wielu uprawnień — co najmniej 24 — różnica była jeszcze wyraźniejsza: OR wyniósł 2,06.
Nie należy jednak czytać tych liczb jako „aplikacja dodała uprawnienie, więc jest wirusem”. Wręcz przeciwnie. Przy przyjętym progu VirusTotal 98,37% aplikacji, w których stwierdzono takie rozszerzenie, nie należało do kategorii oznaczonej jako malware. Mechanizm jest więc cechą całego ekosystemu, a nie sztuczką zarezerwowaną dla szkodliwego oprogramowania.
Ciekawy jest natomiast rozkład ryzyka. W grupach związanych z komunikacją udział aplikacji oznaczonych przez VirusTotal był wyjątkowo wysoki: 72,6% dla SMS i 54,3% dla rejestru połączeń. To właśnie tutaj rozszerzenie możliwości aplikacji powinno zapalać najmocniejszą lampkę ostrzegawczą. Dostęp do zdjęć używany przez edytor fotografii i możliwość wysyłania SMS-ów uzyskana przez aplikację, która dotychczas tylko je odczytywała, to dwa zupełnie różne poziomy ryzyka.
Dlatego przy ręcznym przeglądzie telefonu priorytet powinien być prosty. Najpierw sprawdzamy aplikacje mające dostęp do SMS-ów, telefonu, kontaktów, lokalizacji, mikrofonu i danych finansowych, a dopiero później zajmujemy się mniej wrażliwymi kategoriami.
Drugi problem jest mniej widoczny: własne uprawnienia aplikacji
Badanie nie kończy się na standardowych uprawnieniach Androida. Autorzy przeanalizowali również tzw. custom permissions, czyli własne uprawnienia definiowane przez twórców aplikacji.
To mechanizm potrzebny między innymi wtedy, gdy kilka aplikacji lub komponentów ma komunikować się ze sobą. Problem pojawia się przy poziomie ochrony normal. Takie uprawnienie może zostać przyznane automatycznie, bez komunikatu dla użytkownika.
W analizowanym zbiorze znaleziono 2 630 134 różne nazwy własnych uprawnień. Zdecydowana większość — 90,4% — była chroniona poziomem signature, ograniczającym dostęp zasadniczo do aplikacji podpisanych odpowiednim kluczem. Jednak 246 958, czyli 9,4%, miało poziom normal.
Badacze skupili się następnie na przypadkach, w których takie uprawnienie zabezpieczało dostawcę danych, czyli content provider. Znaleźli 307 par aplikacji pochodzących od różnych deweloperów, w których własne uprawnienie umożliwiało przepływ wrażliwych danych pomiędzy programami.
W 39 przypadkach mechanizm został dodatkowo sprawdzony dynamicznie na urządzeniu z Androidem 16. Wśród danych możliwych do uzyskania znalazły się między innymi:
- kontakty,
- dane uwierzytelniające,
- informacje identyfikujące użytkownika,
- lokalizacja,
- wiadomości,
- ścieżki do plików,
- dane finansowe,
- dokumentacja medyczna i zdrowotna.
Badacze wskazali również, że znaczna część możliwych do przypisania wywołań pochodziła nie z głównego kodu aplikacji, lecz z zewnętrznych bibliotek i SDK dołączonych do programu. To ważny szczegół praktyczny. Deweloper może dobrze pilnować własnego kodu, a jednocześnie wprowadzić problem bezpieczeństwa razem z biblioteką reklamową, analityczną albo integracyjną.
Nie każdy taki przepływ danych musi oznaczać celowy atak. Część może wynikać z zamierzonej integracji pomiędzy aplikacjami albo ze zwykłego błędu projektowego. Z perspektywy użytkownika efekt pozostaje jednak ten sam: dane mogą przekroczyć granicę jednej aplikacji bez pojawienia się standardowego ekranu zgody Androida.
Co może zrobić właściciel telefonu? Największy efekt daje kilka konkretnych działań.
Po pierwsze: nie wyłączaj automatycznych aktualizacji tylko dlatego, że aktualizacja może rozszerzyć uprawnienia. To byłaby zła wymiana. Aktualizacje zamykają również podatności bezpieczeństwa, więc pozostawienie starej wersji aplikacji często zwiększa ryzyko zamiast je zmniejszać.
Po drugie: okresowo przejrzyj uprawnienia aplikacji w Ustawieniach Androida, szczególnie po większych aktualizacjach programów bankowych, komunikatorów, aplikacji społecznościowych, narzędzi do zdjęć i programów instalowanych spoza Google Play. Interfejs różni się między producentami telefonów, ale najczęściej odpowiednie opcje znajdują się w sekcji Prywatność lub Menedżer uprawnień.
Po trzecie: oceniaj dostęp w kontekście funkcji programu. Komunikator potrzebujący mikrofonu jest normalnym przypadkiem. Kalkulator, prosta latarka czy aplikacja do skanowania kodów QR wymagająca stałej lokalizacji, kontaktów i SMS-ów zasługuje już na sprawdzenie.
Po czwarte: jeżeli aplikacja po aktualizacji przestaje działać po odebraniu nieoczywistego uprawnienia, nie przywracaj go automatycznie. Najpierw ustal, która funkcja rzeczywiście go wymaga. Jeśli zależność nie ma sensu, rozsądniejszą decyzją może być zmiana aplikacji.
Autorzy badania pokazali też, że da się poprawić przejrzystość bez przebudowy całego Androida. Przygotowany przez nich prototyp monitorujący aktualizacje działał przez 96 dni na Pixelu 7 z Androidem 16 i 214 zainstalowanymi aplikacjami. W tym czasie wykrył 23 przypadki cichego rozszerzenia uprawnień w 13 aplikacjach, czyli średnio mniej więcej jedno zdarzenie na cztery dni. Wśród dotkniętych programów były również aplikacje z ponad miliardem instalacji. Autorzy nie ujawnili ich nazw ze względu na trwający proces odpowiedzialnego zgłaszania problemów.
To zarazem ważne ograniczenie badania. Test prototypu obejmował jedno urządzenie i jeden zestaw aplikacji, więc nie pozwala wyliczyć, jak często przeciętny użytkownik w Polsce zobaczyłby podobne zdarzenie. Duża analiza APK pokazuje skalę mechanizmu w ekosystemie, ale nie daje podstaw do stwierdzenia, że dokładnie 17% aplikacji obecnie zainstalowanych na konkretnym telefonie właśnie w ten sposób zwiększy swoje uprawnienia.
W praktyce najrozsądniejsza decyzja nie brzmi więc „przestań aktualizować Androida”. Jest odwrotna: aktualizuj, ale nie traktuj raz udzielonej zgody jako decyzji obowiązującej bezterminowo. Przy następnym większym przeglądzie telefonu zacznij od aplikacji mających dostęp do SMS-ów, kontaktów, lokalizacji, telefonu i multimediów. To tam konsekwencje niepotrzebnie szerokich uprawnień są największe.
FAQ
Czy aktualizacja aplikacji na Androidzie może dostać nowe uprawnienie bez nowego pytania?
Tak. Badacze potwierdzili na Androidzie 16 automatyczne przyznawanie nowych uprawnień dodawanych w obrębie grupy, której element użytkownik wcześniej już zaakceptował.
Czy 17% oznacza, że co szósta aplikacja na moim telefonie potajemnie pobiera dane?
Nie. Wskaźnik 17% dotyczy 381 026 spośród 2 244 575 wielowersyjnych aplikacji z analizowanego zbioru i oznacza wystąpienie rozszerzenia uprawnień w ich historii. Nie dowodzi złośliwego wykorzystania nowego dostępu.
Czy najlepiej wyłączyć automatyczne aktualizacje aplikacji?
Nie. Stare wersje mogą zawierać naprawione już luki bezpieczeństwa. Lepszą praktyką jest aktualizowanie aplikacji i okresowy przegląd ich uprawnień.
Które uprawnienia sprawdzić w pierwszej kolejności?
Najpierw SMS-y, rejestr połączeń i funkcje telefonu, kontakty, lokalizację, mikrofon oraz dostęp do zdjęć i innych danych użytkownika. Odbieraj przede wszystkim te zgody, których nie potrafisz powiązać z konkretną funkcją aplikacji.
Czy problem dotyczy tylko aplikacji spoza Google Play?
Nie. Badanie obejmowało aplikacje z wielu źródeł, a autorzy wskazują, że zjawisko występowało również w oprogramowaniu szeroko rozpowszechnionym i preinstalowanym. Spośród 307 wykrytych par związanych z własnymi uprawnieniami 102 aplikacje udostępniające dane były w momencie analizy dostępne w Google Play i zostały zgłoszone zespołowi bezpieczeństwa Androida.
Czy Android pokazuje historię każdego nowego uprawnienia dodanego po aktualizacji?
Nie w sposób odpowiadający mechanizmowi przedstawionemu w badaniu. Właśnie dlatego autorzy zbudowali prototyp, który po aktualizacji wykrywa zmianę i informuje użytkownika, że aplikacja uzyskała nowe uprawnienie. W 96-dniowym teście wykrył 23 takie zdarzenia.
Co zrobić jako pierwsze?
Wejdź w Ustawienia → Prywatność → Menedżer uprawnień lub odpowiadającą mu sekcję w telefonie Samsunga, Xiaomi, Motoroli czy Google Pixel i przejrzyj aplikacje z dostępem do najbardziej wrażliwych danych. Zacznij od programów, których nie używasz regularnie. Jeżeli aplikacja ma uprawnienie, którego jej funkcja nie uzasadnia, odbierz je; jeśli po tym nie działa prawidłowo, dopiero wtedy zdecyduj, czy przywrócić dostęp, czy zastąpić program innym.