Ostatnio do laboratorium CERT Polska trafiła próbka nowego złośliwego oprogramowania na systemy Android o nazwie GMBot. Oprogramowanie to stara się ulepszyć obecną technikę trojanów bankowych, która składa się z dwóch części: jednej na systemy Windows i jednej na systemy Android. Zamiast tego używana jest technika o nazwie application overlay (po polsku będziemy to nazywać przesłonięciem aplikacji), która ma służyć uzyskaniu danych do logowania do konta bankowego ofiary za pomocą ataku phishingowego. Znaleźliśmy także wcześniejszy kod źródłowy tego złośliwego oprogramowania na jednej z rosyjskich stron służących do dzielenia się plikami. Przesłonięcie aplikacji w GMBot jest bardzo podobne do metody używania webinjectów w systemach z rodziny Windows. Gdy pojawił się Zeus, webinjecty szybko stały się standardem. Czy podobnie będzie z GMBotem?
Dynamiczne przesłonięcie aplikacji
Przesłonięcie aplikacji opisywaliśmy już wcześniej na naszym blogu. Jest często używane na systemach z rodziny Android, w celu podszycia się pod inną aplikację. Złośliwa aplikacja co jakiś czas sprawdza czy użytkownik uruchomił interesującą aplikację (np. bankową). Jeśli tak się stało, to aplikacja wyświetla swoje okno nad oknem właściwej aplikacji. W ten sposób udaje, ze wiadomość pochodzi od aplikacji bankowej. Użytkownik chętniej podaje swoje dane, ponieważ jest pewien, że podaje je aplikacji, którą otrzymał od banku. Jest to wersja klasycznego ataku phishingowego. Przykład nałożonych aplikacji zaprezentowano poniżej.
Do tej pory wszystkie nazwy interesujących aplikacji były zapisane na stałe w złośliwej aplikacji, razem z oknami, które miały być wyświetlone. Jednak GMBot działa trochę inaczej. Kontaktuje się z serwerem C&C w celu pobrania nazw aplikacji i odpowiadających im kodów HTML. Te kody są następnie renderowane w kontrolce WebView, która jest wyświetlana jeśli użytkownik uruchomi interesującą aplikację. Kawałek kodu, który odpowiada za realizację tych działań jest zaprezentowany poniżej.
Dokładnie w ten sposób działają Zeus, czy podobne, oparte na webinjectach, złośliwe aplikacje na system Windows. Co ciekawe, w aplikacji jest wciąż okno służące do podawania danych dotyczących karty kredytowej. Jest to pozostałość po poprzedniej wersji aplikacji, do której kodu źródłowego dotarliśmy. Autorzy wcześniej częściowo zapisywali w aplikacji interesujące ich przesłonięcia, tak jak widać na kodzie poniżej.
Z tego kodu można wywnioskować, że autorów interesowały głównie następujące aplikacje:
com.android.vending
and com.google.android.music
– Google Muzyka oraz Play w celu zdobycia danych kart kredytowych
com.whatsapp
, com.viber.voip
, com.instagram.android
, com.skype.raider
– What’s App, Viber, Instagram i Skype, phishing w celu zmiany numeru używanego do dwuskładnikowego uwierzytelniania
com.google.android.gm
– GMail, zdobycie loginu i hasła
com.commbank.netbank
, com.cba.android.netbank
– Commonwealth Bank of Australia
au.com.nab.mobile
– NAB Internet Banking
org.westpac.bank
– Westpack Bank
org.stgeorge.bank
– St.George Mobile Banking
W nowszych wersjach nie ma już tych zapisanych na stałe przesłonięć aplikacji. Pomijając tę technikę, GMBot jest standardowym koniem trojańskim używanym w bankowości mobilnej. Żąda uprawnień administratora urządzenia, aby być w stanie zresetować telefon do ustawień fabrycznych. Potrafi także przekierowywać przychodzące wiadomości SMS z hasłami jednorazowymi. Jeśli język telefonu jest ustawiony na rosyjski to koń trojański się w ogóle nie uruchamia. GMBot wysyła także podstawowe informacje o telefonie (nazwę producenta i modelu, wersję systemu, listę zainstalowanych aplikacji itd.).
Atakujący nie musi już infekować i komputera i telefonu. Zainfekowanie telefonu, użycie ataku phishingowego za pomocą przesłonięcia aplikacji oraz przekierowanie wiadomości SMS z hasłami jednorazowymi wystarcza, aby przejąć kontrolę nad kontem ofiary. Zauważmy, że w przypadku Android KitKat i nowszych wydań systemu użytkownik musi się zgodzić, aby tylko ta aplikacja obsługiwała przychodzące wiadomości. W przeciwnym wypadku użytkownik zobaczy wiadomość z hasłem jednorazowym.
Skróty kryptograficzne GMBot
e6c1621158d37d10899018db253bf7e51113d47d5188fc363c6b5c51a606be2f
ac256d630594fd4335a8351b6a476af86abef72c0342df4f47f4ae0f382543ba
62f1a06272b4db982083806c0264f74f4b1339fbd5acfe22ab5d0f0a4ef0a718