Ułatwienia dostępu są niezbędne użytkownikom; ryzyko wynika z nieuzasadnionego przyznawania dostępu i jego nadużywania.
Złośliwe oprogramowanie nie zawsze musi łamać szyfrowanie wiadomości. Jeśli uzyska dostęp do danych przetwarzanych przez urządzenie w celu wyświetlania lub wprowadzania, może zobaczyć treść przed szyfrowaniem lub po odszyfrowaniu. Nadużywanie ułatwień dostępu i okna nakładkowe to dwa przykłady, ale mechanizmy ich działania nie są takie same.
Nie każda aplikacja z ułatwieniami dostępu lub pływającym oknem jest też złośliwa. Czytniki ekranu i narzędzia wspomagające są niezbędne wielu użytkownikom. Celem jest świadome przyznawanie dostępu i ograniczanie nadużyć, a nie eliminowanie ułatwień dostępu.
Trzy zagrożenia, których nie należy mylić
| Metoda | Co robi atakujący? | Czego nie należy zakładać? |
|---|---|---|
| Fałszywe okno lub formularz | Nakłania użytkownika do wpisania informacji w interfejsie przypominającym prawdziwą aplikację | Nie każda nakładka automatycznie odczytuje tekst okna pod nią |
| Kradzież kliknięć, czyli tapjacking | Oszukuje użytkownika, aby dotknął innego elementu sterującego | Obecność przezroczystej warstwy nie oznacza rejestrowania wszystkich klawiszy |
| Nadużywanie usługi ułatwień dostępu | Wykorzystuje dozwolone możliwości usługi do obserwowania lub wykonywania działań | Dostęp do wszystkich widoków nie jest jednakowy we wszystkich wersjach |
Oficjalny poradnik dotyczący tapjackingu rozróżnia całkowite i częściowe zasłonięcie interfejsu. Na wynik wpływają typ okna, wersja Androida i ustawienia aplikacji.
Jak ułatwienia dostępu mogą dotrzeć do wrażliwych danych?
Usługa ułatwień dostępu może, w zakresie swoich możliwości, odbierać informacje o interfejsie lub wykonywać czynność za użytkownika. Złośliwa usługa może nadużyć tych samych możliwości. Dlatego włączenie jej dla aplikacji bez jasnego uzasadnienia nie jest błahą decyzją.
Jednak twierdzenie, że „każda usługa może odczytać cały tekst każdej aplikacji”, jest zbyt kategoryczne. Znaczenie mają struktura widoków, sposób udostępniania danych i ograniczenia systemu operacyjnego. Android udostępnia funkcje takie jak accessibilityDataSensitive dla wrażliwych widoków; ich użycie i zachowanie należy przetestować na docelowej wersji. Zobacz wyjaśnienie Google dotyczące ochrony danych przed złośliwymi usługami.
Co robi FLAG_SECURE, a czego nie robi?
FLAG_SECURE służy do ograniczania zrzutów ekranu i wyświetlania treści na niezabezpieczonych wyjściach. Ta flaga sama w sobie nie kontroluje zasad dostępu dla ułatwień dostępu, fałszywych formularzy ani wszystkich sposobów wydobywania tekstu. Fotografowanie ekranu innym urządzeniem to również osobny problem.
Android udostępnia aplikacjom także inne narzędzia, takie jak HIDE_OVERLAY_WINDOWS, do ograniczania okien nakładkowych. Żadnego z nich nie należy przedstawiać jako „przycisku antyszpiegowskiego” bez sprawdzenia zgodności, ograniczeń wersji i wpływu na użytkowników potrzebujących ułatwień dostępu. Zobacz poradnik ochrony wrażliwych aktywności.
Lista kontrolna użytkownika do sprawdzania dostępu
- W ustawieniach urządzenia osobno przejrzyj aplikacje z ułatwieniami dostępu, możliwością wyświetlania nad innymi aplikacjami i dostępem do powiadomień. Nazwy ścieżek zależą od producenta i wersji.
- Dla każdej pozycji zapytaj, jaka konkretna funkcja wymaga tego dostępu. Dostęp zaufanego czytnika ekranu to nie to samo co dostęp nieznanej aplikacji latarki.
- Pilną prośbę o włączenie dostępu po instalacji nieznanego pliku potraktuj jako sygnał do dokładniejszego sprawdzenia; sama prośba o uprawnienie nie dowodzi złośliwości.
- Jeśli wygląd strony logowania budzi podejrzenia, nie wpisuj wrażliwych informacji. Otwórz aplikację w zwykły sposób i sprawdź adres lub źródło instalacji.
- Po odebraniu zbędnego dostępu przetestuj działanie potrzebnych narzędzi wspomagających. Bezpieczeństwo nie powinno czynić urządzenia bezużytecznym dla jego właściciela.
Jeżeli podejrzewasz, że hasło lub sesja zostały już ujawnione, samo odebranie uprawnienia nie wystarczy. Z zaufanego urządzenia sprawdź aktywne sesje i sposoby odzyskiwania konta oraz zmień zagrożone hasła.
Co powinien przetestować programista?
Osobno oceń ekrany logowania, potwierdzania operacji i wyświetlania wrażliwych informacji. Przetestuj dotknięcia zasłoniętych elementów i częściowe zasłonięcie; sam test zrzutu ekranu nie wystarczy. Następnie sprawdź tę samą ścieżkę z rzeczywistym czytnikiem ekranu i narzędziem wspomagającym, aby zabezpieczenia nie blokowały uzasadnionego dostępu.
W raporcie z testu zapisz wersję Androida i aplikacji, typ usługi, uprawnienia oraz dane, które faktycznie były widoczne. Na podstawie jednego ograniczonego testu nie można wyciągać wniosków dotyczących wszystkich urządzeń.
Granica szyfrowania komunikatora
Model zagrożeń Livara wyłącza z gwarancji ochrony treści urządzenia zainfekowane lub odblokowane. Nazwa algorytmu ani postkwantowy charakter wymiany kluczy nie chronią więc przed wszystkimi nadużyciami interfejsu użytkownika. Ochronę drogi wiadomości, integralność urządzenia i kontrolę uprawnień traktuj jako trzy osobne obszary sprawdzania.



