Android: aplikacje „mental health” z 14,7 mln instalacji z istotnymi lukami bezpieczeństwa — co wykryto i jak się bronić

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja luki

Aplikacje wspierające zdrowie psychiczne (trackery nastroju, CBT, czaty terapeutyczne, „AI companions”) przetwarzają dane, które dla atakujących bywają cenniejsze niż klasyczne dane finansowe: transkrypcje rozmów, wpisy o samopoczuciu, wskaźniki samouszkodzeń, leki, epizody, kontekst życiowy. Według cytowanego przez badaczy komentarza, rekordy terapii mają osiągać na czarnym rynku bardzo wysokie ceny.

W tym kontekście „zwykłe” błędy mobilne (złe Intenty, słabe RNG, niebezpieczne przechowywanie lokalne) przestają być akademickie — stają się ryzykiem ujawnienia najbardziej wrażliwych informacji.

W skrócie

  • Zespół Oversecured przeskanował 10 aplikacji z kategorii „mental health” i naliczył 1 575 problemów bezpieczeństwa (w tym 54 o wysokiej istotności).
  • Łączna liczba instalacji tych aplikacji wg obserwacji BleepingComputer to ponad 14,7 mln.
  • Przykładowe klasy problemów: podatne Intenty / URI parsing, ekspozycja wewnętrznych komponentów, niebezpieczne przechowywanie danych lokalnie, hardcoded endpointy/Firebase URL, użycie java.util.Random do tokenów/kluczy, brak wykrywania root.
  • Nazw aplikacji nie ujawniono (proces responsible disclosure w toku).

Kontekst / historia / powiązania

Oversecured opisuje scenariusze, w których inna aplikacja na tym samym urządzeniu (np. pozornie „niewinna” latarka/kalkulator) może przechwytywać dane przesyłane przez podatną aplikację terapeutyczną — bez widocznych objawów dla użytkownika.

Co ważne, literatura naukowa od lat wskazuje, iż aplikacje zdrowotne (w tym mental health) są szczególnie wrażliwe reputacyjnie i społecznie, a użytkownicy mają wobec nich podwyższone oczekiwania prywatności.

Analiza techniczna / szczegóły luk

Poniżej najistotniejsze kategorie podatności opisane w materiale badaczy i w omówieniu BleepingComputer:

A) Intenty i niebezpieczne przetwarzanie URI

BleepingComputer przytacza przypadek aplikacji, która używa Intent.parseUri() na zewnętrznie kontrolowanym ciągu i uruchamia wynikowy Intent bez walidacji celu/komponentu. To może umożliwić wymuszenie otwarcia wewnętrznych aktywności (nawet tych nieprzeznaczonych do wywołań z zewnątrz), co bywa drogą do przejęcia tokenów/sesji i dostępu do danych terapii.

B) „Podsłuch” danych przez inne aplikacje (komunikacja między komponentami)

Oversecured opisuje mechanikę Androida, w której podatna aplikacja może wysyłać dane „zbyt szeroko” (np. broadcast bez precyzyjnego adresata), a złośliwa aplikacja rejestruje się jako odbiorca i przechwytuje komunikaty. To szczególnie groźne w przypadku czatów/CBT, bo „wycieka” nie tylko identyfikator, ale treść rozmowy.

C) Niebezpieczne przechowywanie lokalne

Wskazano przypadki przechowywania danych lokalnie w sposób, który daje innym aplikacjom na urządzeniu możliwość odczytu. jeżeli w local storage są wpisy terapeutyczne, notatki CBT czy wyniki testów, to mamy klasyczny „privacy breach” bez potrzeby ataku sieciowego.

D) „Sekrety” i konfiguracje w APK

W analizie pojawia się m.in. plaintext konfiguracji: endpointy API oraz hardcoded URL do Firebase w zasobach APK. To pomaga atakującym w rekonesansie, a w skrajnych przypadkach może ułatwiać nadużycia wobec źle zabezpieczonego backendu.

E) Słabe losowanie w mechanizmach bezpieczeństwa

Wspomniano o użyciu java.util.Random do generowania tokenów sesyjnych lub kluczy — to nie jest kryptograficznie bezpieczny RNG. W praktyce może to osłabiać nie tylko „security posture”, ale i odporność na odtwarzanie tokenów.

F) Brak ochrony na urządzeniach z root

Według badaczy większość analizowanych aplikacji nie miała żadnej formy wykrywania roota, co na urządzeniach z podniesionymi uprawnieniami zwiększa ryzyko eksfiltracji danych lokalnych.

Praktyczne konsekwencje / ryzyko

Najbardziej realne skutki dla użytkowników i organizacji:

  • Ujawnienie treści rozmów (AI chatbot/terapia tekstowa), dzienników nastroju, historii epizodów, planów leków.
  • Profilowanie i szantaż — dane o zdrowiu psychicznym bywają używane do wymuszeń, reputacyjnych kampanii lub „targeted social engineering”.
  • Ryzyko wtórne: przejęcie sesji, tokenów, dostęp do konta użytkownika i ewentualnie danych powiązanych w chmurze (jeśli aplikacja źle separuje uprawnienia).

Rekomendacje operacyjne / co zrobić teraz

Dla użytkowników (dzisiaj)

  1. Zaktualizuj aplikację i system Android; w artykule zwrócono uwagę, iż część aplikacji była aktualizowana rzadziej niż w ostatnich tygodniach.
  2. Wejdź w Google Play → karta aplikacji → sprawdź sekcję „Data safety / Bezpieczeństwo danych” (co zbierają, czy szyfrują, czy udostępniają). To nie gwarantuje bezpieczeństwa, ale pomaga ocenić dojrzałość dostawcy.
  3. Zrób „permission hygiene”: ogranicz uprawnienia do minimum, wyłącz „niepotrzebne” dostępy (lokalizacja, kontakty itp.), jeżeli nie są wymagane.
  4. Unikaj instalowania „dodatkowych” aplikacji z nieznanych źródeł na tym samym telefonie — scenariusz Oversecured zakłada współistnienie podatnej aplikacji i „podsłuchującej” aplikacji.

Dla zespołów developerskich / product security

  • Zmapuj wymagania na OWASP MASVS i potraktuj je jako minimalny baseline (m.in. storage, crypto, platform interaction).
  • Zrób przegląd „platform interaction”: Intent/deeplink/URI parsing, exported components, PendingIntent, broadcast receivers — oraz dodaj walidację docelowych komponentów i danych wejściowych.
  • Usuń sekrety z klienta: endpointy są OK, ale tokeny/sekrety nie; zabezpiecz Firebase/Backend regułami i autoryzacją serwerową.
  • Zamień RNG na kryptograficzny (SecureRandom) tam, gdzie wchodzi w grę tokenizacja/klucze.
  • Dodaj mechanizmy obronne dla danych lokalnych: szyfrowanie, sandboxing, poprawne tryby dostępu do plików, unikanie „world-readable”.
  • Przygotuj proces disclosure i komunikacji: patch notes, rollout, monitoring nadużyć.

Różnice / porównania z innymi przypadkami

To, co wyróżnia „mental health apps”, to wrażliwość danych (treści rozmów i kontekst) oraz fakt, iż część ryzyk może materializować się bez ataku na sieć — wystarczy złośliwa aplikacja na tym samym urządzeniu + błędy w komunikacji między komponentami (Intenty).
W klasycznych finansowych scenariuszach celem jest zwykle przelew lub karta; tutaj „celem” bywa sama informacja.

Podsumowanie / najważniejsze wnioski

  • Skala problemu jest istotna: 1 575 podatności w 10 aplikacjach i 14,7 mln+ instalacji w tej próbce.
  • Najgroźniejsze są te klasy błędów, które umożliwiają przechwytywanie danych przez inne aplikacje lub otwieranie wewnętrznych komponentów bez walidacji.
  • Dla użytkowników: aktualizacje, ograniczanie uprawnień, weryfikacja deklaracji w Google Play (Data Safety).
  • Dla producentów: MASVS jako baseline + rygorystyczny przegląd komunikacji między komponentami, storage i kryptografii.

Źródła / bibliografia

  • BleepingComputer — omówienie wyników skanów, statystyki, przykłady klas podatności. (BleepingComputer)
  • Oversecured Blog — kontekst ataku, scenariusze, odpowiedzialne ujawnianie. (News, Techniques & Guides)
  • OWASP — Mobile App Security / MASVS (baseline dobrych praktyk). (owasp.org)
  • Google Play Help — „Data safety section” (co to jest i jak to czytać). (Google Help)
  • Publikacje naukowe dot. prywatności aplikacji mental health (kontekst ryzyk i oczekiwań użytkowników). (PMC)
Idź do oryginalnego materiału