hamburger

(jeśli zgłaszasz przypadek phishingu, zapisz mail (przesuń go z programu pocztowego na pulpit komputera lub wybierz opcję plik/zapisz jako), a następnie załącz)

Podejrzany SMS prześlij na nr 508 700 900

Jeśli zgłoszenie dotyczy bezpieczeństwa dzieci, zgłoś je również pod http://www.dyzurnet.pl
@CERT_OPL

Flubot po now(sz)emu

Mobilny malware Flubot to jeden z najczęstszych „wsadów” w SMSach, które trafiają do nas w ostatnich tygodniach. Używający Flubota przestępcy są wyjątkowo skrupulatni. Niczym w przypadku rzetelnego oprogramowania… wersjonują swoją aplikację. Ostatnio opisywaliśmy wersję 3.2 – tym razem przyjrzymy się wersji 4.0.

Po drodze pojawiło się kilka nowych iteracji opisywanego malware’u, różniących się drobnymi zmianami (głównie powiększeniem liczby obsługiwanych języków). Co ciekawe, autorzy akurat wtedy nie zmieniali numeru wersji, więc poniższa numeracja podwersji jest naszego autorstwa:

DOH – DNS over HTTPS

W porównaniu do wersji 3.2 wzrosła liczba zezwoleń, których żąda aplikacji (w pliku AndroidManifest.xml). Nowe zezwolenia na końcu listy, tłustym drukiem:

  • android.permission.INTERNET
  • android.permission.READ_CONTACTS
  • android.permission.WRITE_SMS
  • android.permission.READ_SMS
  • android.permission.SEND_SMS
  • android.permission.RECEIVE_SMS
  • android.permission.READ_PHONE_STATE
  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.WAKE_LOCK
  • android.permission.FOREGROUND_SERVICE
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • android.permission.CALL_PHONE
  • android.permission.REQUEST_DELETE_PACKAGES
  • android.permission.KILL_BACKGROUND_PROCESSES
  • android.permission.ACCESS_NETWORK_STATE

W nowej wersji aplikacja może więc dodatkowo uzyskać informacje o stanie sieci oraz zatrzymywać procesy działające w tle.

Po zainstalowaniu, podobnie jak starej wersji, aplikacja prosi o zgodę na dostęp do Ułatwień Dostępu/Accessibility Services. Tym razem jednak rozszerzona zgoda wymaga również dostępu do powiadomień:

Aplikacja jest spakowana i niezmiennie rozpakowuje się do pliku pod nazwą „classes-v1.bin”. Zmieniły się natomiast nazwy klas i poszczególnych metod. Wcześniej wszystkie klasy miały nazwy, z których można było wywnioskować jakie pełnią funkcje, teraz niektóre zostały nazwane pojedynczą literą:

nazwy klas ver. 3.2

nazwy klas ver. 4.0

Obfuskacja łańcuchów niezmiennie wykonywana jest za pomocą https://github.com/MichaelRocks/paranoid/blob/master/core/src/main/java/io/michaelrocks/paranoid/DeobfuscatorHelper.java jednak nazwa paczki zamiast „io.michealrocks.paranoid” została zmieniona na „c.a.a”.

Komunikacja z Command&Control

Algorytm do generowania domen uległ modyfikacji, wygenerowane ziarno zależy teraz od języka ustawionego w systemie infekowanego urządzenia.

Wartości jakie może przyjąć zmienna f4828d przedstawione zostały w tabeli powyżej.

Sam algorytm DGA nie uległ zmianie, z tą różnicą, że w nowej wersji generowane jest 5000 domen (w wersji 3.2 – 2000), w TLD „ru”, „su” (zastąpiło „com”) oraz „cn”.

W wersji 4.0, by doszło do połączenia z serwerem Command and Control, domena jest najpierw rozwiązywana na adres IP. W podwersji a używany jest tylko serwer DNS, w kolejnych pojawił się dodatkowo DNS over HTTPS (DOH). Wybór pomiedzy DOH, a zwykłym DNS jest losowy. Generowana jest cyfra od 0 do 9 i jeśli jest większa bądź równa 8 – użyty zostaje DOH. Daje to odpowiednio 80% szans na użycie zwykłego DNS, a 20% dla DOH. Dalej cała komunikacja przebiega już tylko po rozwiązanym wcześniej adresie IP. Dodawany jest nagłówek Host do zapytania HTTP z nazwą domeny, która rozwiązana została na adres IP. Poniżej metoda, rozwiązująca adres IP domeny i inicjująca połączenie. W tym przypadku nie ma zmiany w odniesieniu do wersji 3.2. Malware wysyła polecenie PREPING i jeśli otrzymana jest odpowiedź, która poprawnie się deszyfruje, adres zostaje serwerem Command and Control.

Metoda inicjująca połączenie z serwerem Command and Control

Metoda rozwiązywania adresu IP domeny za pomocą DNS over HTTPS (przy użyciu cloudflare-dns.com)

Nakładki (overlays)

Główną metodą wykradania danych użytkownika jest stosowanie tzw. nakładek (overlay). Uruchamiana przez użytkownika aplikacja jest przesłonięta przez okno, które zwykle prosi go o podanie danych logowania. Flubot podszywa się pod konkretne aplikacje oraz posiada ogólny komunikat z informacją o konieczności podania danych karty płatniczej, w celu rzekomego sprawdzenia wieku ofiary. Obie metody były także wykorzystywane w wersji 3.2, dla drugiej nadal nie została przetłumaczona treść wiadomości z języka angielskiego na polski). Lista aplikacji, dla których malware dysponuje nakładkami, jest pobierana z serwera Command and Control, przy uruchamianiu aplikacji lub po otrzymaniu polecenia RELAOD_INJECTS. Aby otrzymać taką listę muszą zostać wysłane aktualnie zainstalowane aplikacje, a w odpowiedzi są odsyłane nazwy tych dla których może być przeprowadzony atak. Następnie pobierane są pliki HTML z treścią nakładki (przesłonięcie wykonywane jest przez Androidowy silnik do renderowania stron „Webview”). Samo przesłonięcie jest realizowane przez sprawdzenie czy dla aktualnie otwieranej aplikacji atak może zostać wykonany, realizuje to metoda:

Dla każdego z obsługiwanych języków są zwracane przez serwer Comand and Control inne aplikacje dla których wykonywane jest przesłonięcie, charakterystyczne dla użytkowników z danego kraju/używających danego języka:

Nazwy atakowanych aplikacji, które udało się potwierdzić (stan na 24 kwietnia). To głównie aplikacje bankowe, kryptowalutowe oraz Gmail:

Dla języków polski, niderlandzki, duński, fiński, szwedzki, norweski:

  • pl.aliorbank.aib – alior mobile
  • com.finanteq.finance.ca – CA24 Mobile
  • pl.bzwbk.bzwbk24 – Santander mobile
  • com.google.android.gm – gmail
  • pl.ing.mojeing – Moje ING Mobile
  • com.binance.dev – binance exchange
  • piuk.blockchain.android – blockchain.com wallet
  •  pl.pkobp.iko – PKO bank
  • com.coinbase.android – coinbase bitcoin wallet
  • softax.pekao.powerpay – Bank pekao peopay

Dla języków hiszpański, kataloński, galicyjski, baskijski:

  • com.bankinter.launcher – bankitier
  • com.bbva.bbvacontigo – bbva espana
  • com.binance.dev – binance exchange
  • com.cajasur.android – cajasur
  • com.coinbase.android – coinbase bitcoin wallet
  • com.google.android.gm – gmail
  • com.grupocajamar.wefferent – grupo cajamar
  • com.imaginbank.app – imagin
  • com.kutxabank.android – kutxabank
  • com.tecnocom.cajalaboral – banca movil laboral kutxa
  • es.cm.android – bankia
  • es.evobanco.bancamovil – evo banko
  • es.ibercaja.ibercajaapp – ibercaja
  • es.liberbank.cajasturapp – banka digital liberbank
  • es.openbank.mobile – openbank
  • es.pibank.customers – pibank
  • es.univia.unicajamovil – unicamovil
  • piuk.blockchain.android – blockchain.com wallet
  • www.ingdirect.nativeframe – ING espana

Dla języka niemieckiego:

  • com.binance.dev – binance exchange
  • com.coinbase.android – coinbase bitcoin wallet
  • com.google.android.gm – gmail
  • piuk.blockchain.android – blockchain.com wallet

Dla języka angielskiego:

  • com.binance.dev – binance exchange
  • com.coinbase.android – coinbase bitcoin wallet
  • com.google.android.gm – gmail
  • piuk.blockchain.android – blockchain.com wallet

Podsumowanie

Polecenia wysyłane przez serwer Command and Control

RETRY_INJECT – ponowne wykonanie przesłonięcia dla aplikacji dla której było to już zrobione

GET_CONTACTS – wysłanie do serwera Command&Control listy kontaktów ofiary

SEND_SMS – wysłanie sms

RELOAD_INJECTS – ponowne wysłanie listy zainstalowanych aplikacji

DISABLE_PLAY_PROTECT – próba wyłączenia google play protect

RUN_USSD – wykonanie kodu ussd

OPEN_URL – otworzenie url

UPLOAD_SMS – wysłanie sms zapisanych na telefonie ofiary

SOCKS – otwarcie połączenia z proxy

BLOCK – zablokowanie wyświetlania powiadomień na telefonie ofiary

CARD_BLOCK – wyświetlenie formularza z prośbą podanie danych karty płatniczej

UNINSTALL_APP – odinstalowanie aplikacji na telefonie

Nowe polecenia względem wersji 3.2

NOTIF_INT_TOGGLE – wyłączenie/włączenie przechwytywania powiadomień z telefonu ofiary

SMS_INT_TOGGLE – wyłączenie/włączenie przechwytywania przychodzących sms na telefon ofiary

Porównując wersje 3.2 i 4.0 możemy zaobserwować dodanie rozwiązywania domeny przez DOH, obsługę przechwytywania SMS oraz powiadomień, a także komunikację po samym IP, co w połączeniu z rozwiązywaniem domeny przez DOH utrudnia stosowanie mechanizmu sinkholowanie. Znacznie zwiększyła się liczba obsługiwanych języków z 7 dla podwersji a, do 14 dla podwersji d (w ciągu 8 dni!). Dodając do tego fakt, iż atakowane aplikacje są zależne od języka na zaatakowanym urządzeniu, wskazuje to na dość szybką chęć europejskiej ekspansji autorów Flubota.


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Zobacz także