Aktualności - Komisja Nadzoru Finansowego

CSIRT KNF

Zachowaj ostrożność - telefon Twoim kluczem do finansów! [Analiza Blackrock - ProteGo Safe]

Obrazek tytułowy
Data aktualizacji:

Ciekawi Was w jaki sposób złośliwe oprogramowanie jest wykorzystywane do kradzieży środków finansowych z konta bankowego? Przygotowaliśmy krótką analizę w jaki sposób złośliwe oprogramowanie Blackrock atakuje aplikacje do bankowości internetowej i umożliwia oszustom kradzież twojego hasła i kodów jednorazowych. 

Sytuacja epidemiologiczna związania z COVID-19 dostarcza oszustom coraz to nowych pomysłów na dystrybucję złośliwego oprogramowania. W ostatnich dniach oszuści rozsyłali za pośrednictwem wiadomości SMS linki do fałszywej aplikacji mobilnej, rzekomo wykrywającej COVD-19 za pomocą nagrania kaszlu. W rzeczywistości było to złośliwe oprogramowanie Blackrock, za pomocą którego oszuści mogli uzyskać dostęp do bankowości internetowej potencjalnej ofiary. 

Przestępcy na potrzeby tego ataku przygotowali specjalnie spreparowane strony internetowe oraz zakupili domeny nawiązujące do prawdziwej aplikacji proteGo Safe np. protego-safe[.]me

1Zrzut_ekranu_ze_strony_protego-safe.me

2Opis_aplikacji_na stronie_protego-safe.me

Podobne kampanie i próby dystrybucji złośliwego oprogramowania były przygotowywane także na użytkowników z innych krajów.

Przy próbie pobrania aplikacji, użytkownik jest informowany o konieczności zmiany ustawień na telefonie tak aby możliwa była instalacja oprogramowania z nieznanych źródeł. Jest to próba obejścia zabezpieczenia urządzeń mobilnych, które w standardowej konfiguracji umożliwiają jedynie instalację aplikacji z oficjalnych i zaufanych źródeł takich jak sklep Google Play.

4Zalecane_ustawienia_telefonu_podczas_instalacji_malware

Na poniższym zrzucie obrazujemy jak wygląda modyfikacja ustawień, która umożliwia instalację oprogramowania z nieznanych źródeł. Możemy uznać, że jest to jedna z głównych przyczyn przejęcia telefonu przez złośliwe oprogramowanie oraz początek dalszych problemów na urządzeniu. Przy każdej okazji przypominamy o potencjalnych niebezpieczeństwach związanych z modyfikacją tych ustawień oraz zalecamy instalację oprogramowania tylko z oficjalnych źródeł.

5Zrzut_ekranupokazujacy_instalacje_programu_spoza_Google_Play

Po zainstalowaniu aplikacji na telefonie pojawi się ikona „COVID19”  wyglądająca identycznie jak w oryginalnej wersji aplikacji Protego Safe. To celowy zabieg ze strony oszustów, który ma na celu przekonanie ofiary o słuszności działania programu.

6Ikonamalware_COVID19.apk

Po instalacji, aby włączyć COVID19.apk należy uruchomić „usługę” – nie jest ona aktywowana automatycznie. Jeśli nie wykonamy tego kroku to aplikacja średnio co 10 sekund będzie nam o tym przypominać nieprzyjemnym pop-up’em, celowo jest to mocno uciążliwe tak aby użytkownik dla świętego spokoju uruchomił usługę.

7Popup_z_uslug_COVID19.apk

Dopiero w tym momencie nieświadoma ofiara może zezwolić aplikacji na dostęp do Accessibility Services, czyli opcji ułatwień dostępu. Funkcje te zostały przewidziane na urządzeniu mobilnym w celu ułatwienia korzystania osobom z niepełnosprawnościami, takimi jak np. słabszy wzrok lub słuch. Niestety opcja ta jest też bardzo często wykorzystywana przez oszustów, ponieważ umożliwia ona aplikacji na uzyskanie uprawnień do wielu kluczowych operacji w systemie, takich jak odczytywanie zawartości wyświetlanych okien i możliwością wejścia z nimi w interakcję. Dostęp do ustawień Ułatwień dostępu umożliwia także aplikacji samodzielne nadawanie kolejnych uprawnień na telefonie. 

8Aplikacja_prosi_o_dostep_do_uprawnien

Ze względu na szeroki zakres uprawnień, opcje Ułatwień dostępu są bardzo często wykorzystywane przez złośliwe oprogramowanie. Dobrą praktyką jest, więc weryfikacja czy na naszym urządzeniu uprawnienia te nie zostały przypisane do nieznanej nam aplikacji. 

UWAGA: Ustawienia mogą się różnić w zależności od urządzenia.

Aby sprawdzić, które z aplikacji wykorzystują Ułatwienia dostępu należy przejść do: Ustawienia -> Ułatwianie dostępu. Na pierwszym obrazku widzimy domyślne ustawienia, gdzie żadna aplikacja nie wymaga od nas otrzymania takowych uprawnień.

9Ustawienia_Ulatwienia_Dostepu

Na następnym zrzucie z ekranu naszego testowego urządzenia możemy zobaczyć, co dzieje się w ustawieniach kiedy pozwolimy aplikacji COVID19 na uprawnienia do Ułatwień dostępu.

10COVID19.apk_chce_otrzymac_dostep_do_ulatwien_dostep

Poniżej przedstawiamy pozostałe uprawnienia dostępu, jakie wymaga od nas złośliwe oprogramowanie Blackrock w aplikacji COVID19.apk:

11Jakie_uprawnienia_dostepu_wymaga_COVID19.apk
 

Złośliwa aplikacja posiada także szereg mechanizmów, które utrudniają jej zamknięcie lub odinstalowanie. Przy próbie deinstalacji oprogramowania zamyka ono samoistnie okienko ustawień. Po zamknięciu aplikacji uruchamia się ona samoczynnie działając w tle przechwytując wszystko, co w danym momencie widzimy na ekranie. W tym wiadomości SMS, e-mail, komunikatory społecznościowe.

12Brak_mozliwosci_zamkniecia_aplikacji

No dobrze, ale co z aplikacjami bankowymi?

Jednym z głównych celów przestępców instalujących złośliwe oprogramowanie na urządzeniach mobilnych jest kradzież naszych haseł do skrzynek pocztowych, mediów społecznościowych oraz systemów bankowości internetowej. W tym celu stosowana jest technika przesłaniania ekranu za pomocą specjalnie przygotowanych nakładek (ang. Overlay). Po uruchomieniu aplikacji standardowe okno przykrywane jest podstawionym przez oszustów spreparowanym formularzem tak aby użytkownik myśląc, że loguje się do prawdziwej aplikacji przekazał oszustom swój login i hasło.

Uruchomiliśmy kilka przykładowych aplikacji bankowości internetowej na zainfekowanym urządzeniu, w celu zobrazowania tego zjawiska. Jak widać standardowe okno aplikacji przykrywane jest fałszywym formularzem do logowania, tak aby zmusić użytkownika do wprowadzeniu loginu i hasła do bankowości elektronicznej. Po wprowadzeniu tych danych oczywiście trafiają one bezpośrednio do oszustów.

13Ekran_logowania_do_aplikacji_IKO_bez_malware_oraz_z_malware_na_telefonie


 14Ekran_logowania_do_aplikacji_Alior_oraz_ING_bez_malware_oraz_z_malware_na _elefonie

Uwaga: Powyższe obrazy stanowią wyłącznie przykładową aplikację, złośliwe oprogramowanie atakuje praktycznie każdą aplikację do bankowości internetowej. W części technicznej raportu przygotowaliśmy więcej przykładów fałszywych formularzy.

A co z hasłami jednorazowymi?

W kolejnym kroku po kradzieży loginu i hasła do bankowości internetowej oszuści realizują próby kradzieży środków finansowych z konta ofiary. Jednak na przeszkodzie staje im jeszcze zabezpieczenie związane z koniecznością potwierdzenia transakcji bankowych z wykorzystaniem kodów jednorazowych lub potwierdzeń w aplikacji. Tutaj z pomocą przychodzą im kolejne funkcjonalności złośliwego oprogramowania Blackrock związane z przechwytywaniem i przesyłaniem dalej wiadomości SMS.

Wszystkie wiadomości SMS, w tym kody jednorazowe mogą być na zainfekowanym urządzeniu przesyłane bezpośrednio do oszustów. W tym momencie przestępcy mają już komplet danych – login i hasło do bankowości internetowej oraz kody potwierdzające. Jeżeli doszli do tego etapu to najprawdopodobniej uda im się wyprowadzić środki finansowe z naszego konta.

Co jeszcze potrafi robić Blackrock?

Overlaying: Dynamic – „przykrywanie” prawdziwych aplikacji podstawionymi formularzami w celu kradzieży loginów i haseł.

Keylogging – odczytywanie znaków bezpośrednio wprowadzanych przez użytkownika na klawiaturze urządzenia.

SMS harvesting – odczytywanie i przesyłanie dalej otrzymanych wiadomości SMS.

Self-protection – uniemożliwienie usunięcia, ukrywanie ikony aplikacji.

Device info collection – zbieranie informacji o urządzeniu..

Notifications collection – zbieranie informacji z powiadomień aplikacji.

AV detection – wykrywanie oprogramowania antywirusowego na urządzeniu.

Spam_on_contacts – rozsyłanie SPAMu do wszystkich kontaktów z książki telefonicznej.

Change_SMS_Manager – zmiana standardowej aplikacji do obsługi wiadomości SMS.

Start_clean_Push – ukrywanie powiadomień.


Uprawnienia żądane przez aplikację obejmują m.in.:


 15Uprawnienia_zadane_przez_COVID19.apk

Co zrobić aby nie dać się zainfekować?

Aby ustrzec się przed potencjalną instalacją złośliwego oprogramowania zalecamy stosowanie poniższych dobrych praktyk:

  1. Instaluj oprogramowanie tylko z zaufanych źródeł.
  2. Zwróć szczególną uwagę na to jakie uprawnienia nadajesz poszczególnym aplikacjom na urządzeniu mobilnym.
  3. Zweryfikuj czy w opcjach ułatwień dostępu nie znajdują się aplikacje, których nie powinno tam być.
  4. Uważaj na podejrzane linki przesyłane w wiadomościach SMS oraz e-mail.

Analiza na podstawie próbki:
Nazwa aplikacji: Covid19.apk
SHA256 aplikacji: 83bbcba4e12bab2f093b61008eaac83c50d8a222cc8a3b777b8222e135a5bd82
Serwer C&C: hxxp://91.214.124.196

Analiza techniczna złośliwego oprogramowania Blackrock
Jeżeli interesuje Was działanie złośliwego oprogramowania bardziej od strony technicznej to zapraszamy do dalszej lektury.
Wybrane fragmenty kodu aplikacji
W pliku AndroidManifest.xml widzimy, że debugowanie aplikacji jest już włączone - parametrem android:debuggable="true" w <application/>.
16Podglad_pliku_AndroidManifest.xml_pochodzacy_z_COVID19.apk
 
Widzimy także liczne odwołania do klas z folderu trade.eyebrow. Tego folderu nie ma jednak w pliku .apk - co oznacza, że te klasy są najprawdopodobniej ładowane dynamicznie w trakcie działania programu. Komunikacja sieciowa prowadzi nas do adresu IP 91.214.124.196, który jest serwerem C2 aplikacji:
17Komunikacja_sieciowa_z_adresem_91.214.124.196
Wysyłanie danych na serwer C2 odbywa się w klasie trade.eyebrow.f. 
18Klucz_AES
Funkcja pobiera dane zebrane przez aplikacje i wysyła je najpierw do funkcji szyfrującej
b(String paramString1, String paramString2) z klasy trade.eyebrow.a
Dane są szyfrowane za pomocą AES i wysyłane na adres C2 hxxp://91.214.124.196/gate.php
Klucz AES: 26kozQaKwRuNJ24t
19Wysylka_do_funkcji_szyfrujacej
Komunikacja z C&C – pobieranie paczek z fałszywymi formularzami - Overlay
Program pobiera paczki .zip z plikami zawierającymi kody źródłowe stron podszywających się pod strony logowania/wprowadzania danych znanych aplikacji.  W środku znajdują się pliki .html, .css, .js i obrazy z logami.  Pliki .zip pobierane są z serwera C2 według szablonu: domena/public_image/nazwa.aplikacji.zip, np. hxxp://91.214.124.196/public_image/com.google.android.gm.zip
20Pobieranie_nakladek_overlay
W przypadku polskich banków w paczkach znajdują się przeważnie dwa pliki – obraz .png, oraz plik .html, w którym są zawarte skrypty JavaScript oraz opisy styli, często znajdujące się w plikach .css.
Co ciekawe, obrazy wykorzystywane w nakładkach także są zawarte w plikach .html – po prostu są zakodowane jako Base64. Poniżej przykłady innych nakładek, które mogą być pobrane przez złośliwe oprogramowanie.
21Nakladka_logowania_do_banku_PKO.png   22_Nakladka_logowania_do_bankuSantander.png 
23_Nakladka_logowani_do_banku_Millennium.png   24Nakladka_logowania_do_banku_Mbank.png
25_Nakladka_logowania_do_banku_envelo.png   26Nakladka_logowania_do_banku_ING.png
27_Nakladka_logowania_do_banku_GetIn.png   32_Nakladka_logowania_do_banku_BNPParibas.png
28_Nakladka_logowania_do_banku_CreditAgricole.png   29_Nakladka_logowania_do_banku_CreditAgricole2.png

30_Nakladka_logowania_do_banku_Pekao.png   31_Nakladka_logowania_do_banku_Pekao_2.png
33_Nakladka_logowania_do_banku_Pekao24.png   34_Nakladka_logowania_do_banku _eoPay242.png
35Nakladka_logowania_do_banku_Alior.png   36_Nakladka_logowania_do_banku_BPS.png
Analiza wybranych fragmentów kodu
W pliku .apk w folderze "assets" znajduje się zaszyfrowany plik "yRaGc.json".
Jest on deszyfrowany, po czym ładowany w funkcji: "velvet.twice.rib.HOhIdRaBpXjNuCcTeNpKtTzBrUuNeQeRuYfEfMdJjHnIhMwJyTiZrHl.absurdalbum".
37_Analiza_pliku_yRaGc.json.png
Odszyfrowany plik przed załadowaniem znajduje się w lokalizacji: "/data/user/0/velvet.twice.rib/app_DynamicOptDex/yRaGc.json".
Po jego "magic bytes" możemy założyć, że jest to plik DEX.
64 65 78 0A 30 33 35 00 - dex.035.
38yRaGc.json_jako_plik_dex.png
Jak widać, po przekonwertowaniu na plik .jar, jest to poprawny plik .dex.
39Prawidlowy_plik_dex.png
W środku są przede wszystkim klasy z folderu trade.eyebrow, do których odwołania widzieliśmy wcześniej w pliku AndroidManifest.xml. Jedną z nich jest trade.eyebrow.MainActivity.
40_Przyznanie_aplikacji_dostepu_douslug_Ulatwien_Dostepu.png
Widzimy, że uruchamia ona klasę CommandService. Łańcuchy znaków nie są zaszyfrowane - ułatwia nam to analizę kodu. W klasie CommandService znajduje się klasa wewnętrzna - a, mająca funkcję run(), w której budowane i wyświetlane jest powiadomienie o przyznaniu aplikacji dostępu do usług Ułatwień dostępu - "Włączyć Covid19".
W przeciążonej metodzie trade.eyebrow.CommandService.a() widzimy wybór pierwszego słowa komunikatu w zależności od języka urządzenia.
41_Aplikacja_wykrywa_jezyk_na_urzadzeniu.png
W pliku trade.eyebrow.d widzimy adres IP C2 oraz trzy tablice z listami aplikacji.

42_Lista aplikacji do ktorych przygotowane sa Overlaye
43_ Lista_aplikacji_do_ktorych_przygotowane_sa_Overlaye2.png
Dostępne komendy można zobaczyć w pliku trade.eyebrow.g w metodzie a(String paramString):
44 Komendy jakich aplikacja COVID19.apk uzywa podczas dzialania.png
Poniżej przedstawiamy listę wszystkich komend z tej metody:
  • Send_SMS
  • Flood_SMS
  • Download_SMS
  • Spam_on_contacts
  • Change_SMS_Manager
  • Run_App
  • StartKeyLogs
  • StopKeyLogs
  • StartPush
  • StopPush
  • Hide_Screen_Lock
  • Unlock_Hide_Screen
  • Admin
  • Profile
  • Start_clean_Push
  • Stop_clean_Push
Kod pobierający paczki .zip z nakładkami jest w metodzie trade.eyebrow.g.a(String… paramVarArgs)
45Kod_pobierajacy_plik_zip_z_nakladkami
W klasach trade.eyebrow.Inject oraz trade.eyebrow.InjectCC widzimy funkcje odpowiedzialne za wyświetlanie nakładek na aplikacje.  W pliku AndroidManifest.xml klasy te mają parametr android:excludeFromRecents=”true” , który oznacza, że te aktywności nie powinny być wyświetlana na liście ostatnio używanych aplikacji.
46_Funkcjaodpowiedzialna_za_wyswietlanie_nakladek.png
Nazwa: velvet.twice.rib
C2:  hxxp://91.214.124.196/gate.php
SHA1: A70E014B3651B42E08DF14081714BA5272955E02
SHA256: 83BBCBA4E12BAB2F093B61008EAAC83C50D8A222CC8A3B777B8222E135A5BD82