Biometria jest bezpieczniejsza – o tym jak malware okrada użytkowników Androidów

my127001.pl 9 miesięcy temu
Niniejszy wpis został zainspirowany świetną prezentacją Jana Seredynskiego z THS 2023.

Cyberbezpieczeństwo nie jest kwestią binarną – nie istnieją tutaj rozwiązania gwarantujące 100% bezpieczeństwa. W rzeczywistości chodzi bardziej o ocenę ryzyka i wybieranie rozwiązań, które są mniej podatne na ataki. Przykładem takiej oceny w kontekście bankowości jest fakt, iż potwierdzanie transakcji przez aplikacje mobilne jest bezpieczniejsze niż popularne kody SMS, chociaż i tu występują skuteczne metody ataku. Mogą to być na przykład fałszywe aplikacje, które podszywają się pod te bankowe, oraz takie, które wykorzystują exploity (np. Pegasus). Jednak jeden z ciekawszych ataków na mobilność bankową opiera się na instalacji na telefonie ofiary z pozoru niewinnej aplikacji, która nadużywa uprawnień Androida.

Schemat infekcji często rozpoczyna się tym, iż ofiara instaluje aplikację z niezaufanego źródła. Zachęcona zostaje do tego przez informacje, iż ta wersja, którą zainstaluje, posiada za darmo odblokowane funkcje premium.

Niestety, zdarza się również, iż i aplikacje w oficjalnym sklepie Google Play okazują się być złośliwe. Początkowo nie zawierają one szkodliwych funkcjonalności, ale zyskują je w kolejnych aktualizacjach. Cyberprzestępcy tworzą aplikacje o pozornie nieszkodliwym przeznaczeniu. Przykładowo prostą aplikację latarki czy też narzędzie do obsługi aparatu. Takie aplikacje proszą o uprawnienia do różnych funkcjonalności na urządzeniu. Przez kilka miesięcy działają zgodnie z deklaracjami, nie sprawiając żadnych problemów. Użytkownicy często dostarczają im pozytywne opinie, co wzmacnia reputację aplikacji i zachęca kolejnych użytkowników do jej pobrania. Jednak po jakimś czasie cyberprzestępcy modyfikują aplikację, dodając złośliwy kod lub zmieniając uprawnienia, tak aby móc wykradać dane. Takie opóźnione dodanie złośliwego kodu pozwala przestępcom na pomyślne przejście procesu weryfikacji w sklepie Google Play.

Jak działają ułatwienia dostępu i nakładki w kontekście malware?

Ułatwienia dostępu (Accessibility Services) pozwalają między innymi na odczytywanie informacji wyświetlanych na ekranie telefonu na głos oraz uzupełnianie pól w formularzach za użytkownika.

Złośliwa aplikacja, wykorzystując mechanizmy ułatwień dostępności przeznaczonych dla osób z niepełnosprawnościami, może rejestrować wszystko, co dzieje się na ekranie, uzyskując dostęp do wpisywanych kodów. Dzięki temu jest w stanie poznać hasło do aplikacji mobilnej i samodzielnie zlecić oraz potwierdzić przelew. Nadanie podejrzanych uprawnień odbywa się poprzez wykorzystanie innego sprytnego triku, jakim są nakładki ekranowe (Overlay). Użytkownik często nie jest choćby świadomy, iż akceptuje niebezpieczne uprawnienia.

Przykładem „Overlay Services” jest dymek pojawiający się z wiadomością z messengera.

W wariancie pokazanym poniżej nakładka fałszywego ekranu zakrywa część prawdziwego ekranu (ukrywając go przed wzrokiem użytkownika), a następnie prosi ofiarę o wprowadzenie informacji (zazwyczaj poufnych, takich jak dane bankowe, kody PIN lub odpowiedzi na zytania zabezpieczające). Ofiara myśli, iż podaje swoje poufne informacje w zaufanej aplikacji, ale w rzeczywistości wysyła je bezpośrednio do atakującego.

Celem tego wariantu ataków z użyciem nakładek ekranowych jest często bankowość mobilna, fintech, handel elektroniczny, gry lub aplikacje detaliczne. Gdy atakujący pozna już pin do potwierdzania transakcji, może wykorzystując ułatwienia dostępności po otworzeniu przez nas prawdziwej aplikacji bankowej automatycznie się do niej zalogować, zlecić i zatwierdzić przelew.

Przykłady realnych dotychczasowych ataków

  • BrasDex to rodzaj złośliwego systemu skoncentrowanego na atakowaniu systemów Android, ze szczególnym naciskiem na aplikacje bankowe w Brazylii. Gdy infekuje urządzenie, BrasDex identyfikuje i atakuje tylko wybrane aplikacje. Używa funkcji ułatwień dostępności Androida do monitorowania ekranu, sterowania dotykiem, obsługi klawiatury i innych złośliwych działań. Głównym celem BrasDex jest wykradanie danych logowania podczas korzystania z aplikacji bankowych i wykonywanie transakcji bez wiedzy użytkownika.
  • ERMAC 2.0 to trojan na platformę Android, służący do wykradania danych logowania użytkowników i przesyłania ich cyberprzestępcom. Złodzieje wykorzystują te dane do przejmowania kont bankowych i kryptowalutowych ofiar, a także do realizacji różnych oszustw. Typowym przykładem jego działania była podrobiona aplikacja, którą można było znaleźć na legalnej stronie dostawcy jedzenia. Ta podrobiona aplikacja żądała aż 43 uprawnień, w tym dostępu do usług ułatwień dostępności i nakładek, co pozwala na kradzież danych logowania.
  • Xenomorph to malware, który przez cały czas jest wykorzystywany w atakach, chociaż zadebiutował ponad dwa lata temu. Początkowo był rozprowadzany za pośrednictwem sklepu Google Play jako aplikacja poprawiające wydajność. Użytkownicy instalujący te aplikacje nieświadomie zarażali swoje urządzenia, myśląc, iż poprawa wydajności wymaga tak szerokich uprawnień. Xenomorph ma zdolność przechwytywania wiadomości tekstowych, co umożliwia zbieranie danych używanych do potwierdzania transakcji. Dodatkowo wykorzystuje on uprawnienia ułatwień dostępności, aby tworzyć dyskretne nakładki na ekran.

Porady dla programistów dotyczące obrony przed złośliwym oprogramowaniem wykorzystującym usługi ułatwień dostępności:

  • Zablokuj wszystkie usługi ułatwień dostępności: Ta opcja jest najmniej przyjazna dla użytkowników z różnymi niepełnosprawnościami, ale jest jednym z najprostszych sposobów, aby chronić się przed nadużywaniem uprawnień.
  • Zezwalaj tylko na usługi z białej listy: Przyjaźniejsze podejście do ułatwień dostępności, które wykorzystuje API do listowania wszystkich Accessibility Services, identyfikuje ich identyfikatory pakietów i pozwala na uruchamianie tylko pewnych zaufanych usług przez aplikację. Jednak aplikacje instalowane z zewnątrz mogą naśladować dowolny identyfikator pakietu, więc ta obrona chroni tylko przed zagrożeniami pochodzącymi ze sklepu Google Play.
  • Zezwalaj na usługi z rozsądnymi uprawnieniami: Możesz wykorzystać flagę (android:importantForAccessibility), która identyfikuje ważne elementy interfejsu użytkownika dla ułatwień dostępności. Ustaw ją na „false” dla wszystkich wrażliwych pól w twojej aplikacji i ogranicz ułatwienia dostępności, które deklarują zainteresowanie odczytywaniem nieważnych pól. Możesz to zrobić, sprawdzając adekwatność flagi usługi i weryfikując FLAG_INCLUDE_NOT_IMPORTANT_VIEWS.
  • Wykorzystaj biometrię i dialogi systemowe: Wymaganie i stosowanie biometrycznej autentykacji do ważnych transakcji może pomóc zapobiec korzystaniu przez cyberprzestępców z ułatwień dostępności do przeprowadzania nieautoryzowanych transakcji w aplikacji użytkownika. Wymaganie również przeprowadzania transakcji przez aplikację dzięki dialogów systemowych może skutecznie blokować nakładki. Nowe wersje Androida nie pozwalają na działanie nakładek na oknach systemowych.
  • Skorzystaj z Android API 34: Aktualizacja ta zapewnia, iż tylko zweryfikowane usługi dostępności mogą widzieć i uzyskiwać dostęp do wrażliwych informacji w aplikacji.

Zalecenia dotyczące wykrywania nakładek

Google wprowadziło kilka użytecznych API, aby pomóc w wykrywaniu i przeciwdziałaniu atakom złośliwego systemu wykorzystującego nakładki:

  • API 9: Gdy włączona jest opcja filtrowania dotyku (setFilterTouchesWhenObscured(boolean)), system ignoruje dotknięcia użytkownika, gdy okno widoku jest zasłonięte przez nakładkę. W tym przypadku chodzi o inne widoczne okno (lub komunikat/toast/dialog) znajdujące się w miejscu dotknięcia.
  • API 29: Ta aktualizacja umożliwia dokładniejsze wykrywanie częściowo zasłoniętych dotknięć dzięki flagi (FLAG_WINDOW_IS_PARTIALLY_OBSCURED), która wskazuje, kiedy okno otrzymuje zdarzenie ruchu, które jest częściowo lub całkowicie zasłonięte przez inne widoczne okno. Ważne jest, aby zauważyć, iż zdarzenie jest oznaczone flagą, jeżeli ruch nie przechodzi bezpośrednio przez nakładkę.
  • API 31: Ta aktualizacja zapewnia deweloperom opcję setHideOverlayWindows(true), która ukrywa i automatycznie usuwa nakładki nienależące do systemu. w tej chwili jest to najbardziej skuteczne i efektywne podejście.

Jako przeciętny użytkownik, warto wiedzieć, iż usługi ułatwień dostępu (Accessibility Services) nie mają dostępu do danych biometrycznych i nie są w stanie ich podrobić. Z tego względu zaleca się używania metod biometrycznych zamiast tradycyjnych kodów PIN/haseł. Logowanie do aplikacji dzięki odcisku palca lub rozpoznawania twarzy, a także potwierdzanie transakcji tymi metodami, jest znacznie bezpieczniejsze. Biometria dodaje dodatkową warstwę zabezpieczeń, ponieważ jest unikalna dla wszystkich użytkownika i trudniejsza do skopiowania czy wyłudzenia niż tradycyjne hasła lub kody PIN. Dlatego, zwłaszcza w kontekście operacji finansowych i dostępu do ważnych aplikacji, wykorzystanie technologii biometrycznych jest zdecydowanie lepszym rozwiązaniem.

Idź do oryginalnego materiału