Wykradacz haseł jednorazowych na Androida udający mobilnego antywirusa

Data publikacji: 17/12/2013, Łukasz Siewierski

malware-icon

Aplikacja E-Security pojawiła się, w wersji atakującej polskich użytkowników, na początku tego roku. W ostatnich tygodniach zauważyliśmy, że o ile sam schemat infekcji jest podobny – wciąż po zalogowaniu się do strony banku wyświetlany jest komunikat o potrzebie instalacji aplikacji mobilnej – o tyle nie jest to już „certyfikat bezpieczeństwa”, a „program antywirusowy”. Ten nowy malware, przeznaczony na systemy z rodziny Android, odznacza się znacznie większymi możliwościami niż E-Security.

Działanie aplikacji

Schemat ataku jest podobny jak w przypadku opisywanym przez nas wcześniej. Użytkownikowi, na zainfekowanym komputerze, prezentowany jest komunikat graficzny, który informuje go o tym, że jego bank prosi go o zainstalowanie nowej aplikacji na telefon. W tym przypadku był to następujący tekst:

W związku z pojawiającymi się coraz częściej przypadkami instalacji niepożądanego oprogramowania na urządzenia mobilne, między innymi z Google play i App Store, nasz Bank wspólnie z liderem oprogramowania Antywirusowego opracował aplikację antywirusową dla urządzeń mobilnych. Nasz program antywirusowy uniemożliwia zainstalowanie podejrzanego oprogramowania, jak również usuwa wszystkie mobilne wirusy, które już są zainstalowane na Twoim telefonie.
W przypadku odmowy instalacji mobilnej aplikacji antywirusowej, bank NIE ODPOWIADA za zachowanie nienaruszalności środków finansowych na koncie klienta.

Po podaniu numeru telefonu użytkownik otrzymuje link do złośliwej aplikacji, a następnie ją instaluje i instalację potwierdza przepisaniem „kodu aktywacyjnego” wyświetlonego w oknie malware. W menu naszego telefonu pojawi się wtedy pozycja „Mobile Antivirus” z ikoną taką, jak zaprezentowana na początku artykułu. Aplikacji podczas instalacji prosi o następujące uprawnienia:

READ_PHONE_STATE
ACCESS_WIFI_STATE
CHANGE_WIFI_STATE
READ_PHONE_STATE
CALL_PHONE
ACCESS_NETWORK_STATE
CHANGE_NETWORK_STATE
WRITE_EXTERNAL_STORAGE
ACCESS_NETWORK_STATE
INTERNET
RECEIVE_BOOT_COMPLETED
WRITE_SMS
READ_SMS
RECEIVE_SMS
SEND_SMS
RECEIVE_BOOT_COMPLETED
READ_CONTACTS
WRITE_CONTACTS
RECORD_AUDIO
ACCESS_FINE_LOCATION
MODIFY_AUDIO_SETTINGS

Dodatkowo, po instalacji, użytkownik jest proszony o dodanie aplikacji do administratorów urządzenia – specjalnej kategorii aplikacji, które mogą mieć szersze uprawnienia niż zwykłe aplikacje. W tym przypadku chodzi o możliwość usunięcia danych z telefonu oraz kontrolować blokadę ekranu. Okno z taką prośbą zaprezentowane jest po lewej. Warto zwrócić uwagę na uzasadnienie wymagania tych uprawnień: „Additional text explaining why this needs to be added.”

malware-icon

Różne interfejsy graficzne

Aplikacja ta udaje nie tylko program antywirusowy. Istnieją również wersje podszywające się pod aplikację konkretnych banków. Nie zaobserwowaliśmy jednak wersji skierowanej na polskie banki. W przypadku wersji skierowanej na konkretny bank, aplikacja prosi o podanie hasła, potwierdzenie go i następnie generuje – w ten sam sposób co w „zwykłej” wersji – kod aktywacyjny, który najprawdopodobniej należy podać w okienku, które zostało wyświetlone po zalogowaniu.
Aplikacja jest tak napisana, aby przełączanie pomiędzy poszczególnymi interfejsami było jak najmniej kłopotliwe. Po prawej zaprezentowano standardowy interfejs graficzny. Okno to pojawia się po „przeskanowaniu” systemy operacyjnego jako informacja o zakończeniu tego procesu.

Uwierzytelnianie botmastera

Podobnie jak w przypadku aplikacji E-Security, komunikacja za pomocą HTTP jest tylko jedną z możliwości odbierania poleceń przez tego bota. Drugim kanałem są wiadomości SMS. Wiadomości te wysyłane są albo z numeru telefonu zapisanego w aplikacji albo z innego numeru, po wcześniejszym uwierzytelnieniu. Uwierzytelnienie odbywa się poprzez wysłanie SMSa o pewnej treści pod numer telefonu, na którym nasłuchuje bot. Po takim uwierzytelnieniu botmaster może zacząć wydawać polecenia, a w tym przypadku ma z czego wybierać.
Wśród wspieranych opcji są między innymi:

    • Przesłanie informacji o stanie telefonu (połączenie z Internetem, nazwa producenta),
    • nagrywanie dźwięków za pomocą mikrofonu telefonu,
    • pobranie plików zdjęć z karty SD (pliki o rozszerzeniach jpg, jpeg, gif, png),
    • pobranie wszystkich wiadomości SMS ze skrzynki odbiorczej,
    • pobranie listy zainstalowanych aplikacji,
    • usunięcie wszystkich danych z telefonu,
    • nagrywanie rozmów telefonicznych,
    • pobranie współrzędnych geograficznych aktualnej pozycji – zarówno za pomocą GPS jak i sieci komórkowej,
    • pobranie listy kontaktów,
    • przekierowanie rozmów za pomocą kodu USSD *21*numer_telefonu#,
    • wysłanie wiadomości SMS na zadany numer,
    • zapisywanie wiadomości SMS do bazy danych, w celu przekazania ich atakującemu.

Szczegóły techniczne

Aplikacja, aby utrudnić jej usunięcie, dodaje odbiornik zdarzeń, który nasłuchuje na zdarzenia typu BOOT_COMPLETED – zakończenie procesu startu telefonu. Po otrzymaniu takiego zdarzenia uruchamiane są dwie usługi: com.soft360.iService.AService oraz com.soft360.iService.webService. Pierwsza z nich jest odpowiedzialna za ustanowienie kanału komunikacyjnego za pomocą wiadomości SMS, druga natomiast za ustanowienie kanału opartego o HTTP. Zarówno ustawienia aplikacji jak i dane przez nią wyciągane (np. przychodzące SMSy) przechowywane są w bazie SQLite o nazwie iBankDB_23.db. Kod aktywacyjny generowany jest w sposób losowy. W komunikacji HTTP bot stosuje szyfrowanie AES w trybie CBC korzystając ze standardowego API języka Java: javax.crypto.

Podsumowanie

Jak widać, polscy użytkownicy bankowości elektronicznej stają się coraz częstszym celem ataków. Atakujący używają różnych rodzajów malware’u, aby osiągnąć jeden cel – uzyskać dostęp do kont ofiar. Dodatkowo, aplikacja pozwala usunąć wszystkie dane z telefonu co uniemożliwia analizę powłamaniową.
Poniżej znajduje się skrót SHA-256 analizowanej próbki.

2dbee06d2e2fa21976e89b3ad9047802ab8e5f8d0cf24b8c4b37735ee6f02357