Cerberus pod lupą. Analiza popularnego malware na Androidy

Cerberus pod lupą. Analiza popularnego malware na Androidy04.11.2019 15:59

Podczas gdy skuteczność kampanii malware'u dla Windows spada (acz wciąż niewystarczająco), nowe zagrożenia celują w system Android. Najnowsza kampania, stosująca malware o nazwie Cerberus, wykorzystuje złośliwą aplikację APK. Podobnie jak Emotet, który stosuje skomplikowane metody propagacji, ale wymaga ręcznego uruchomienia makr pakietu Office, Cerberus jest nie mniej złożony, ale do uruchomienia potrzebne mu jest... wyłączenie ochrony przed aplikacjami spoza Sklepu Play.

Jest to kolejny dowód na ryzyko związane z zabiegiem tzw. rootowania telefonu: uzyskania praw administracyjnych celem głębokich modyfikacji Androida i instalacji pakietów APK z "niezaufanych źródeł", czyli w praktyce poza kontrolą Google. Choć użytkownicy mogą cieszyć się z większej swobody użytkowania i niezależności od ograniczeń producenta, muszą liczyć się z ciemnymi stronami takiego postępowania.

Cerberus jest jednym z groźniejszych malware'ów na smartfony z systemem Android obok GMBot, Marcher, czy Anubis. Zespół CERT Polska przeprowadził analizę jego działania na podstawie kampanii w Polsce podszywającej się pod InPost.

Cerberus. Analiza kampanii i działania

Dystrybucja złośliwego kodu opierała się o wysyłkę wiadomości SMS z informacją o śledzeniu przesyłki za pomocą aplikacji mobilnej, wraz z linkiem do jej pobrania. Jedną z podstawowych funkcji bota było wykradanie danych logowania do wybranych aplikacji. Na celowniku znalazły się m.in. produkty do obsługi bankowości internetowej i poczty. Złośliwe oprogramowanie po udzieleniu mu zezwolenia na korzystanie z usług ułatwień dostępu (ang. accessibility services) dokonywało samodzielnego podniesienia własnych uprawnień. Trojan przyznawał sobie m.in. możliwość odczytywania listy kontaktów, inicjowania wywołań USSD, stawał się administratorem urządzenia oraz domyślną aplikacją do obsługi SMS.

Udostępniany w modelu malware-as-a-service trojan jest silnie promowany w mediach społecznościowych. Cerberus posiada swój profil na Twitterze (@AndroidCerberus), gdzie publikowane są informacje o nowościach, ale również wiadomości kierowane do analityków bezpieczeństwa np. Lukasa Stefanko czy Trend Micro Research. W zamyśle autorów trojan miał pozwalać np. na wyłączenie Google Play Protect, przechwytywanie komunikacji SMS, uruchamianie i usuwanie zainstalowanych aplikacji, otwieranie adresów URL, wyświetlanie fałszywych powiadomień z aplikacji bankowych, unikanie analizy poprzez stosowanie technik anty-emulacji, a w niektórych wypadkach także wykradanie danych przy użyciu keyloggera. W analizowanej próbce zaobserwowano aktywne użycie tylko części funkcji.

Aby zainstalować złośliwe oprogramowanie, użytkownik musi pobrać plik z linka w SMS-ie oraz wyłączyć blokadę instalacji aplikacji spoza oficjalnego sklepu Google Play. Próbka trojana analizowana w środowisku Android 7.0 (API 24) nie domaga się przydzielania dodatkowych uprawnień na etapie instalacji. Może to spowodować uśpienie czujności użytkownika. Dopiero pierwsze uruchomienie skutkuje pojawieniem się okna, które w natarczywy sposób domaga się wyrażenia zgody na korzystanie z usług ułatwień dostępu (ang. accessibility services).

Ułatwienia dostępu, mające z założenia wspomagać obsługę systemu osobom niepełnosprawnym zostają, w przypadku Cerberusa, użyte do przejęcia kontroli nad urządzeniem. Jedną z możliwości, jakie dają Accessibility Services, jest odczytywanie zawartości wyświetlanych okien i wchodzenie z nimi w interakcję. Jeżeli użytkownik zgodzi się, aby złośliwe oprogramowanie korzystało z tej funkcjonalności, może ono samodzielnie pozyskiwać dalsze uprawnienia.

Uprawnienia żądane przez aplikację obejmują m.in:android.permission.BIND_ACCESSIBILITY_SERVICE – ułatwienia dostępu (pobieranie zawartości okien i samodzielne nadawanie uprawnień).android.permission.READ_SMS – odczytywanie SMS.android.permission.RECEIVE_SMS – odbiór wiadomości tekstowych.android.permission.SEND_SMS – wysyłanie wiadomości SMS.android.permission.INTERNET – dostęp do internetu.android.permission.CALL_PHONE – wykonywanie połączeń.android.permission.READ_CONTACTS – odczytywanie kontaktów.android.permission.READ_PHONE_STATE – odczytywanie informacji o stanie urządzenia (m.in. numer telefonu użytkownika, status połączeń telefonicznych, dane dot. sieci komórkowej, lista kont korzystających z menedżera połączeń).android.permission.BIND_DEVICE_ADMIN – przydzielenie uprawnień administratora urządzenia.

Korzystając z techniki przysłaniania ekranu za pomocą nakładek (ang. overlay), złośliwe narzędzie wykrada dane logowania do popularnych aplikacji. Overlay’e są pobierane z zewnętrznego serwera w trakcie działania trojana – warunek stanowi zainstalowana na urządzeniu aplikacja, na którą przestępcy posiadają przygotowaną nakładkę.

Złośliwe oprogramowanie posiada funkcjonalność dynamicznego ładowania modułów kodu, co utrudnia analizę i ewentualne wykrycie złośliwych działań – można zaobserwować to w pliku AndroidManifest.xml, zawierającym opis ładowanych klas (np. linia 20 – adult.weapon.shop…), których nie widać w dostarczonej próbce (drzewo po lewej stronie).

Pozostała część kodu znajduje się w zasobach aplikacji, podszywając się pod plik JSON. Moduł szyfrowany jest przy użyciu RC4, stałym kluczem o wartości: PUPn.

Ładowanie osadzonego w aplikacji kodu następuje po odszyfrowaniu za pomocą funkcji trophyalone() widocznej na poniższym zrzucie ekranu:

Fragment zdekompilowanego modułu po odszyfrowaniu:

Załadowany moduł dodatkowo szyfruje łańcuchy znakowe. Pierwotnie są one przechowywane w postaci {12-znakowy-klucz-RC4}

Cerberus poza kodem “ukrytym” w aplikacji, pobiera dodatkowy moduł z serwera dostawców oprogramowania. Ponownie, część programu jest szyfrowana za pomocą algorytmu RC4 (tym razem kluczem o wartości: ojsghOSFogewghdgsg widocznym powyżej). Interesującym faktem jest, że klucz jest osadzony pomiędzy łańcuchami znakowymi wykorzystywanymi przez złośliwe oprogramowanie i mogącymi wskazywać na jego potencjalne funkcjonalności.

Aplikacja komunikuje się z serwerem zarządzającym pod adresem badabinglalaland[.]com. Początkowa wymiana danych to rejestracja w botnecie. Dalsza komunikacja przebiega cyklicznie i złośliwe oprogramowanie przesyła dane identyfikujące ofiarę: wygenerowany identyfikator, numer telefonu (jeśli uda się go pozyskać), nazwę operatora GSM, model telefonu, wersję systemu Android, listę zainstalowanych aplikacji, kraj oraz wykradzione loginy i hasła.

Poufność danych płynących do serwerów przestępców jest gwarantowana przez algorytm RC4, który korzysta z tej samej wartości klucza (ojsghOSFogewghdgsg), która była wykorzystana przy pobieraniu z sieci dodatkowego modułu.

Po odszyfrowaniu bot przesyłał następujące dane w postaci JSON:

{„id”:”CERTPL”,”idSettings”:”CERTPL”,”number”:”+48CERTPL”,”statAdmin”:”1”,”statProtect”:”0”,”statScreen”:”0”,”statAccessibilty”:”1”,”statSMS”:”0”,”statCards”:”0”,”statBanks”:”1”,”statMails”:”1”,”activeDevice”:”0”,”timeWorking”:”688”,”statDownloadModule”:”1”,”batteryLevel”:”100”,”locale”:”pl”}

Podczas analizy aplikacji, nie została zaobserwowana komunikacja sieciowa dotycząca wykradania SMS-ów, kontaktów oraz działania keyloggera.

Zapobieganie infekcjiAplikacja, z uwagi na sposób dystrybucji poza sklepem Google, domyślnie nie powinna zainstalować się na urządzeniu. Standardowe polityki bezpieczeństwa w systemie Android nie zezwalają na instalację pakietów pochodzących z niezaufanych źródeł. Użytkownik może świadomie zrezygnować z tego mechanizmu, stanowczo jednak odradzamy takiego rozwiązania.

Nie można wykluczyć prób umieszczania tego typu złośliwych aplikacji w oficjalnych kanałach dystrybucji. W związku z tym, pobierając i instalując aplikacje warto zachować ostrożność i weryfikować, czy nie wymagają od użytkownika przydzielenia niebezpiecznych lub nieadekwatnych uprawnień. Również natarczywe domaganie się przydzielenia któregoś z dostępów powinno być odebrane jako sygnał alarmowy.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.