Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY 4 sierpnia 2014 r. W dniach 1 do 4 sierpnia 2014 r. poddaliśmy analizie oprogramowanie złośliwe podszywające się pod aplikację antywirusową Kaspersky, skierowaną na klientów bankowości internetowej w Polsce użytkowników urządzeń mobilnych z systemem Android. Niniejszy dokument zawiera wyniki technicznej analizy oprogramowania rozsyłanego do użytkowników w ramach kampanii mającej na celu infekcję urządzeń użytkowników. Oprogramowanie to było rozsyłane za pośrednictwem wiadomości e-mail, jako załącznik kaspersky.apk do zainstalowania na urządzeniu mobilnym ofiary. Nazwa aplikacji: com.zero1.sandrorat Wersja aplikacji: 1.5.2 Suma kontrolna MD5 aplikacji (paczka instalacyjna): 6DF6553B115D9ED837161A9E67146ECF Aplikacja została utworzona na platformę Android 4.2, minimalna wersja systemu na którym aplikacja się uruchomi to Android 2.2. Kod źródłowy aplikacji został napisany w języku Java oraz został poddany zaciemnianiu. Nie stwierdzono, aby aplikacja korzystała z przywilejów root a, lub przeprowadzała próby rootowania urządzenia. Ze względu na możliwość instalacji dodatkowych aplikacji nie można jednak wykluczyć, że intruz może próbować doinstalować aplikacje, których celem będzie eskalacja uprawnień. Lista uprawnień wymaganych przez aplikację: PREVENITY 2014 Strona 1
Aplikacja tworzy trzy usługi systemowe: oraz uruchamia się wraz ze startem systemu Android (BOOT_COMPLETED) lub przy każdorazowej zmianie stanu połączenia z siecią Internet (CONNECTIVITY_CHANGED): Po uruchomieniu aplikacja wyświetla użytkownikowi ekran z jednym przyciskiem, natomiast w tle uruchamia usługę com.zero1.sandrorat.controller. Następnie, po odbiorze jednego z wymienionych wyżej zdarzeń (BOOT_COMPLETED lub CONNECTIVITY_CHANGED), aplikacja działa w następujący sposób (w uproszczeniu): 1) Jeżeli zostało otrzymane zdarzenie BOOT_COMPLETED, wówczas uruchamiana jest usługa com.zero1.sandrorat.controller, 2) W dalszych krokach, niezależnie od powyższego, jeżeli kontekst aplikacji jest dostępny (paramcontext!= false), wówczas uruchamiana jest usługa Controller (j.w.), w przeciwnym razie jest wysyłane żądanie HTTP POST (http://winrar.nstrefa.pl/path/devicemanager.php) z poleceniem func=unregisterdevice wraz z identyfikatorem urządzenia. 3) Odczytywana jest konfiguracja aplikacji z pliku SQLite (SandroRat_Configuration_Database): a. MASTER_IP <- adres IP serwera C&C b. MASTER_PORT <- nr portu serwera C&C Jeżeli nie można odczytać w/w informacji, wówczas przyjmowane są domyślne (winrar.dns.net:1800). 4) Aplikacja rejestruje się do odbioru komunikatów PHONE_STATE, 5) Aplikacja inicjuje klasy do rejestrowania rozmów telefonicznych, odczytu książki adresowej, zakładek i historii wbudowanej przeglądarki WWW, tworzenia lokalnych baz danych, odczytu lokalizacji użytkownika na podstawie GPS. Analiza statyczna wykazała, że funkcjonalności te PREVENITY 2014 Strona 2
nie są uruchamiane/wykorzystywane od razu po instalacji aplikacji, natomiast czekają one na realizację do czasu otrzymania komendy/polecenia z serwera C&C. Funkcje aplikacji inicjuje klasa Controller na podstawie otrzymywanych komend (identyfikatory int) oraz parametrów w postaci tablicy bajtów. Zidentyfikowano ok. 40 poleceń sterujących aplikacją, między innymi następujące polecenia: Zmiana adresu MASTER_IP, Zmiana portu MASTER_PORT, Włączenia/wyłączenia przechwytywania wiadomości SMS i odczytu skrzynki nadawczej/wysłanych wiadomości, Wysyłania wiadomości SMS, Odczytu danych kontaktowych, Odczytu zakładek i historii wbudowanej przeglądarki WWW, Włączenia/wyłączenia rejestrowania rozmów telefonicznych i otoczenia telefonu, Śledzenia informacji o realizowanych rozmowach telefonicznych, Enumeracji kont obecnych w systemie (com.google), Śledzenia lokalizacji użytkownika na podstawie danych z sensora GPS, Deszyfrowania wiadomości WhatsApp przechowywanych na urządzeniu, Pobrania i inicjacji instalacji dodatkowego oprogramowania z karty SD, Wymiany danych pomiędzy urządzeniem ofiary a serwerem C&C. Każde z poleceń jest potwierdzane przez aplikację odpowiedzią Ack (poprawne wykonanie) lub NAck (niepoprawne wykonanie/wystąpienie wyjątku). Przykładowo, po uruchomieniu aplikacja rejestruje się do odbioru następujących informacji: - wiadomości SMS - informacji o odbieranych lub wykonywanych połączeniach telefonicznych Analiza statyczna wykazała obecność następującego kodu do przechwytywania wiadomości SMS: PREVENITY 2014 Strona 3
Aplikacja tworzy bazę danych przechwyconych wiadomości SMS: Oraz bazę danych kontaktów: PREVENITY 2014 Strona 4
Rejestruje również aktualną lokalizację ofiary: Aplikacja nagrywa również pliki dźwiękowe (najprawdopodobniej rozmowy telefoniczne do potwierdzenia): Oraz śledzi wykonywane rozmowy telefoniczne: PREVENITY 2014 Strona 5
Aplikacja odczytuje zakładki oraz historię wbudowanej w systemie Android przeglądarki WWW: Które zapisuje w bazie danych: PREVENITY 2014 Strona 6
Oraz jest w stanie pobrać i zainicjować instalację dodatkowej aplikacji, którą uruchamia następnie z karty SD pod nazwą update.apk : Można było zidentyfikować, że w/w kod bazuje na kodzie udostępnionym w serwisie StackOverflow: http://stackoverflow.com/questions/4967669/android-install-apk-programmatically Podsumowując powyższe, wykryto co najmniej następujące bazy danych tworzone przez aplikację: Wykryto obecne co najmniej dwa zaszyte w aplikacji adresy serwerów: Do pierwszego z wymienionych adresów (winrar.ddns.net, port 1800) tworzone jest połączenie socketowe. PREVENITY 2014 Strona 7
Na drugi z wymienionych adresów (http://winrar.nstrefa.pl/path/) nawiązywana jest większość komunikacji, po protokole HTTP. W aplikacji wykryto zaszyte następujące klucze szyfrujące: Analiza aplikacji wykazała, że są one wykorzystywane przez malware do deszyfrowania wiadomości komunikatora Whatsapp, jeżeli są one przechowywane na urządzeniu użytkownika (/mnt/sdcard/whatsapp/databases/msgstore.db.crypt5). Podsumowując, przeanalizowana próbka jest typowym oprogramowaniem złośliwym typu koń trojański z rozbudowaną funkcjonalnością dostępu zdalnego do urządzenia ofiary. PREVENITY 2014 Strona 8