Nowości z laboratorium wirusów

Złośliwe aplikacje dostępne w Google Play wykradają dane logowania do Facebooka.

Alena Nohová 30 sty 2018

Aplikacje typu downloader dostępne w Google Play rozprzestrzeniają złośliwe oprogramowanie, które wykrada dane logowania do Facebooka

Firma Avast odkryła, że wiele „downloaderów” dostępnych w Google Play może pobierać złośliwe oprogramowanie, które następnie wykrada dane logowania do Facebooka

W Google Play pojawiło się wiele złośliwych aplikacji, które pobierają kolejne złośliwe aplikacje na zainfekowane urządzenia. Są to tzw. „downloadery”. Pobierane przez nie aplikacje mogą podszywać się pod aplikacje systemowe, a niektóre z nich wykradają nawet dane logowania do Facebooka. Twórcy tych złośliwych aplikacji korzystają z socjotechniki, by nakłonić użytkowników do dobrowolnego podania danych.

Wykryte przez nas niebezpieczne programy podszywają się pod różne aplikacje z kategorii „Rozrywka” i „Styl życia” — są to skanery kodów kreskowych, rejestratory głosu, a nawet gra w szachy. Ataki są wymierzone w użytkowników urządzeń z systemem Android w wietnamskiej i angielskiej wersji językowej. Znaleźliśmy też inne downloadery, które zostały przesłane do Sklepu Play przez innych deweloperów i są adresowane wyłącznie do użytkowników z Wietnamu. Firma Avast zgłosiła takie aplikacje firmie Google, a konta tych deweloperów zostały zablokowane.

MPlus_Developer_GooglePlay_Downloaders.png

Aplikacje te mają wprawdzie niektóre funkcje, które powinny zawierać zgodnie ze swoim opisem, ale większość z nich wyświetla mnóstwo reklam i zawiera kod pobierający dodatkowe złośliwe aplikacje, które mogą wyłudzać od użytkowników dane logowania do Facebooka.

Jedna z tych aplikacji — HayLive autorstwa Mplus Group — nie jest złośliwa. Różni się od pozostałych aplikacji, ma nieco więcej użytkowników oraz własną stronę internetową, a struktura pakietu APK nie przypomina pozostałych aplikacji. Możemy przypuszczać, że deweloper pierwotnie utworzył tylko zwykłą aplikację HayLive, a gdy zyskała ona pewną popularność, postanowił ją wykorzystać. W celu zwiększenia swoich zysków rozpoczął promowanie złośliwych aplikacji w sekcji „Więcej aplikacji tego dewelopera”.

Pobieranie downloaderów

Same downloadery przesłane do Google Play nie zawierają żadnych złośliwych funkcji. Dlatego właśnie udało im się przejść kontrolę bezpieczeństwa prowadzoną przez Google. Jedynym problemem w ich przypadku jest natarczywe wyświetlanie reklam. Istnieje jednak pewien haczyk — downloadery mogą podczas swojego działania pobierać na urządzenie fragmenty kodu, a nawet całe aplikacje.

W tym celu łączą się z serwerem skonfigurowanym przez napastników, a następnie pobierają listę dostępnych serwerów i wysyłają żądanie do jednego z nich. Serwer przekazuje downloaderowi pakiet do pobrania na zainfekowane urządzenie. Pakiet ten jest złośliwy, a po usunięciu może pobrać się ponownie lub zostać zastąpiony innym.

Uzyskiwanie uprawnień administratora

Pobrane złośliwe aplikacje proszą o przyznanie im uprawień administratora urządzenia. Jeśli ich nie otrzymają, zaczynają wyświetlać fałszywe okna informujące o awarii, kiedy tylko użytkownik spróbuje otworzyć dowolną aplikację na telefonie. W oknie znajduje się zwykle informacja o tym, że otwierana aplikacja uległa awarii, a usługi Google Play zostały wyłączone. Ma to na celu przekonanie użytkownika, by przyznał uprawnienia administratora usługom Google Play, co ma „zapobiec niechcianym błędom”.

Aplikacja, którą użytkownik próbuje otworzyć, wcale się jednak nie zawiesiła. Działa normalnie, ale fałszywe okno informujące o awarii znajduje się na wierzchu i zakrywa aplikację — nie widać więc, że coś jest nie tak. Prawdopodobnie właśnie przez to okno użytkownik decyduje się w końcu przyznać uprawnienia administratora aplikacji, ponieważ nie podejrzewa, że jest ona złośliwa. Chce po prostu normalnie korzystać ze swojego telefonu.

Kiedy aplikacja otrzyma uprawnienia administratora, ostrzegawcze okna znikają, a na serwer zostaje wysłana stosowna informacja (/manager/update_state.php).

Śledzenie lokalizacji

Downloader zbiera informacje o urządzeniu — takie jak jego unikatowy identyfikator, lokalizacja, język czy parametry ekranu. Lokalizacja jest ustalana na podstawie adresu IP używanego podczas łączenia się z usługami online, które umożliwiają geolokalizację adresów IP. Aplikacja używa następujących usług:

s-com.main.MainActivity.jpg

freegeoip.net

s-com.tencent.qa.ACS.jpg

ip-api.com

Ta metoda nie wymaga, by aplikacja miała uprawnienia dostępu do przybliżonej lub dokładnej lokalizacji urządzenia, ale działa tylko wtedy, gdy urządzenie jest połączone z Internetem. Jeśli użytkownik korzysta z sieci VPN, wykryta zostanie tylko lokalizacja urządzenia końcowego, z którym urządzenie jest połączone przez VPN.

Informacje te są wysyłane na serwer (/manager/insert_device.php, manager/get_facebook_ads_manager_v4.8.php). Dane dotyczące lokalizacji są często aktualizowane na serwerze, dzięki czemu można śledzić użytkownika, kiedy jego urządzenie jest połączone z Internetem.

Wykradanie danych logowania do Facebooka

Złośliwe aplikacje posuwają się jeszcze dalej — wykradają dane logowania do Facebooka. Nie wykradają jednak loginu i hasła z samej aplikacji Facebook ani nie wykorzystują żadnych luk w zabezpieczeniach systemu czy też aplikacji. Zamiast tego nakłaniają użytkownika do podania danych logowania, podszywając się pod usługi Google Play lub inne popularne i cieszące się zaufaniem aplikacje.

message.png

s-com.tencent.qa.FGA.jpg

Złośliwa aplikacja wyświetla okna, które informują, że wystąpiły problemy z kontem użytkownika na Facebooku — np. ktoś próbował się na nie włamać i konto zostało zawieszone lub serwer jest niedostępny. Chodzi w tym wszystkim o zaniepokojenie użytkownika.

Złośliwe aplikacje szybko otwierają mobilną stronę internetową Facebooka, by „sprawdzić” problem. Wtedy też emulowany jest nawet oficjalny ekran ładowania Facebooka. Jest to prawdziwy ekran powitalny tego serwisu w wersji dla urządzeń mobilnych (m.facebook.com), który obejmuje formularz logowania. Strona ta jest jednak wyświetlana w złośliwej aplikacji jako obiekt WebView, przez co aplikacja może arbitralnie wstawić na stronie kod JavaScript. Kiedy użytkownik wpisze dane logowania do Facebooka, aplikacja je wykradnie. W rzeczywistości sytuacja wygląda tak, że zarówno konto, jak i serwer działają prawidłowo. Ostrzegawcze okna mają jedynie zaniepokoić użytkownika i przekonać go do zalogowania się.

Ta metoda wykradania danych logowania do Facebooka zyskuje coraz większą popularność. Przyczyną może być tendencja deweloperów do używania w aplikacjach wbudowanych przeglądarek internetowych (WebView, WebChromeClient) zamiast otwierania strony internetowej w zewnętrznej przeglądarce. Ta metoda jest tak popularna, że coraz częściej pojawiają się exploity wykorzystujące funkcje przeglądarek wbudowanych (np. wstrzykiwanie kodu JavaScript). Taka możliwość istniała od zawsze, ale teraz jest wykorzystywana także w złośliwy sposób, ponieważ ze względu na swoją popularność funkcja ta nie budzi żadnych podejrzeń. Jeśli tylko jeden deweloper używałby przeglądarki WebChromeClient i wstawiał złośliwe oprogramowanie za pomocą kodu JavaScript, takie działanie dość szybko zostałoby wykryte i odpowiednio napiętnowane. Trudniej jest jednak wychwycić złośliwe zachowania, kiedy z funkcji tej korzysta bardzo wielu deweloperów.

sharedPreferences.png

Powyżej widać plik XML SharedPreferences złośliwej aplikacji, który jest tworzony, gdy użytkownik loguje się na stronie Facebooka. Hasło i adres e-mail zostają zapisane wraz z informacjami otrzymanymi z serwera, które obejmują listę pakietów do pobrania.

Wykradzione dane logowania zostają zapisane w pliku SharedPreferences złośliwej aplikacji i wysłane na serwer zdalny. Połączenie z serwerem zdalnym odbywa się przy użyciu nieszyfrowanego protokołu HTTP, co oznacza, że jeśli ktoś akurat je monitoruje, może wykraść poświadczenia użytkownika, ponieważ są one przesyłane jako zwykły tekst.

request.png

Dane logowania są wysyłane na serwer przez nieszyfrowany kanał.

Co prawda Facebook wykrywa i blokuje próby logowania, jeśli istnieje podejrzenie, że poświadczenia zostały wykradzione (zwykle ma to miejsce, jeśli poświadczenia użytkownika nagle zostają użyte po drugiej stronie świata). Jednak omawiana sytuacja prawdopodobnie nie wzbudzi żadnych podejrzeń, ponieważ logowanie następuje z typowej lokalizacji i z tego samego urządzenia.

Sprzedawanie kliknięć

Działanie kodu JavaScript w złośliwej aplikacji polega najczęściej na klikaniu przycisków „Udostępnij” w imieniu użytkownika oraz uzyskiwaniu dostępu do listy znajomych na Facebooku.

Aplikacja sprawia, że część adresu URL będąca identyfikatorem strony na Facebooku zostaje wysłana z serwera na urządzenie (/manager/get_push.php). W ten sposób deweloper może oferować udostępnienia, polubienia, a nawet komentarze innym firmom lub użytkownikom potrzebującym szybkiej promocji ze strony prawdziwych użytkowników. Są to autentyczni użytkownicy, więc mechanizm kontrolny Facebooka nie oznacza ich jako fałszywe konta. Tacy użytkownicy mają dużo wyższą wartość na rynku reklamowym. Uzyskanie dostępu do listy znajomych i zaakceptowanie wszystkich zaproszeń od znajomych oraz dodanie wszystkich sugerowanych znajomych może dodatkowo zwiększyć atrakcyjność takich kont, ponieważ zwiększa zasięg publikowanych udostępnień. Udostępnienia można wtedy sprzedawać drożej.

Reklamy i niewychwycone wyjątki

Omawiane aplikacje zawierają kilka platform reklamowych, które umożliwiają wyświetlanie reklam (także wideo). Mają również funkcję, która umożliwia aplikacji samoczynne klikanie wyświetlanych w niej reklam. Aplikacje manipulują blokadą klawiatury urządzenia, włączając ekran i przyciemniając go, by użytkownik nie zorientował się, że złośliwa aplikacja potajemnie klika reklamy w jego imieniu.

Jeśli w aplikacji wystąpi niewychwycony wyjątek lub problem, zostaje pobrany pełen ślad stosu (kompletny raport). Jest on następnie wysyłany na serwer, aby umożliwić deweloperowi rozwiązanie problemu.

Celem ataku są użytkownicy korzystający z wietnamskiej i angielskiej wersji językowej

Aplikacje rozrywkowe i dotyczące stylu życia, które na początku wykryliśmy, były kierowane do użytkowników systemu Android w wietnamskiej i angielskiej wersji językowej.

Wszystkie ostrzeżenia i komunikaty w downloaderach i pobranych przez nie aplikacjach są wyświetlane zarówno w języku angielskim, jak i wietnamskim. Aplikacje te próbują ustalić lokalizację użytkownika, sprawdzając lokalizację urządzenia, język ustawiony na telefonie oraz operatora komórkowego. W zależności od wyniku powyższych działań aplikacje wyświetlają informacje w języku wietnamskim lub angielskim.

Aplikacje te trafiły do użytkowników na całym świecie najprawdopodobniej dlatego, że są dostępne w języku angielskim.

Podejrzewamy jednak, że osoby stojące za tymi złośliwymi aplikacjami to Wietnamczycy. Oprócz tego, że większość tych aplikacji jest dostępnych w języku wietnamskim, kolejną wskazówką jest fakt, że pobrane aplikacje mają pakiety o nazwach przypominających popularne wietnamskie aplikacje.

Wszystko wskazuje na to, że kolejne downloadery pochodzące z innych kont deweloperów, które wykryliśmy później, zostały przesłane przez tę samą osobę lub grupę co w przypadku pierwotnie zidentyfikowanego przez nas oprogramowania. Aplikacje kontaktują się z tym samym serwerem i zawierają niemal identyczny kod. Niektóre downloadery kontaktują się z innym serwerem, ale ma on jednak identyczny interfejs i zawiera takie same skrypty.

Jak chronić się przed downloaderami i innymi złośliwymi aplikacjami:

  • Pobierz antywirus, taki jak Avast Mobile Security, który wyłapuje zagrożenia i chroni Cię przed działaniem złośliwych aplikacji.

  • Pobieraj aplikacje bezpośrednio ze źródła, kiedy tylko jest to możliwe. Firmy często promują swoje aplikacje we własnych witrynach i można je stamtąd pobrać.
  • Zanim pobierzesz aplikację, przeczytaj opinie użytkowników — zarówno pozytywne, jak i negatywne. Nawet jeśli aplikacja zbiera pozytywne recenzje, często można zorientować się, że nie są one do końca prawdziwe. Podejrzane opinie to znak, że aplikacji nie warto ufać.
  • Uważnie sprawdź, jakich uprawnień potrzebuje aplikacja. Jeśli jakieś uprawnienia są bezsensowne lub nieuzasadnione, zastanów się dobrze, czy na pewno chcesz pobrać tę aplikację.