W ostatnim czasie do CERT-owego laboratorium trafiła próbka złośliwego oprogramowania typu iBanking podszywającego się pod mobilną aplikację skanera antymalware’owego Trusteer Rapport. Scenariusz ataku nie jest niczym nowym, był wielokrotnie wykorzystywany w przeszłości, jednak w ostatnim czasie zauważamy wzrost ataków tego typu wymierzonych w Polskich użytkowników bankowości elektronicznej. Analizowana aplikacja okazała się dużo trudniejsza w usunięciu, a jej kod o wiele lepiej zaciemniony niż wcześniejsze programy tego typu.
Scenariusz ataku:
Początkowo scenariusz ataku niczym nie różni się od opisywanych przez nas wcześniej przypadków. Komputer ofiary zostaje zainfekowany złośliwym oprogramowaniem mającym możliwość modyfikacji treści witryn internetowych po stronie użytkownika. Jest to możliwe dzięki specjalnie przygotowanemu, unikalnemu dla każdego banku, fragmentowi kodu JavaScript. Jest on pobierany z serwera zarządzającego a następnie wykonywany po wejściu na stronę serwisu transakcyjnego. W tym przypadku przestępcy postanowili wyłudzić od użytkownika nie tylko dane dostępowe do bankowości elektronicznej ale także przejąć kontrolę nad jego telefonem komórkowym w celu zdobycia haseł jednorazowych.
W przypadku tego ataku zainfekowanemu klientowi, po wejściu na stronę banku, wyświetla się komunikat z prośbą o wybranie modelu oraz wprowadzenie numeru telefonu. Po wpisaniu danych złośliwy kod sprawdza poprawność wpisanego numeru w dość śmieszny sposób – sprawdzając czy nie znajduje się on na poniższej liście numerów zakazanych, zapisanej w kodzie skryptu webinjecta:
var bad_numbers = [
'111111111','222222222','333333333',
'444444444','555555555','666666666',
'777777777','888888888','999999999',
'000000000','123456789','987654321',
'123456789','987654321','911111111',
'922222222','933333333','944444444',
'955555555','966666666','977777777',
'988888888','999999999','900000000',
'123123123','321321321','111222333'
];
W momencie gdy wpisany numer zostanie uznany za poprawny, co jak widać nie jest zbyt trudne, serwer wysyła smsa do klienta z prośbą o instalację aplikacji z linka podanego w treści wiadomości. Wszystko to, zgodnie z informacją na stronie internetowej, ma zapewnić bezpieczeństwo telefonu. Użytkownik dostaje także “unikalny” sześciocyfrowy kod aktywacyjny, który następnie musi podać po instalacji, w celu aktywacji aplikacji. Oczywiście kod generowany jest losowo.
generateReqCode: function () {
var min = 10000;
var max = 99999;
var part1 = Math.ceil(Math.random() * (max - min) + min);
var str = part1.toString();
var n1 = parseInt(str.substr(0, 1)) * 10 + parseInt(str.substr(3, 1));
var n2 = parseInt(str.substr(1, 1)) * 10 + parseInt(str.substr(4, 1));
var check = (n1 + n2) * parseInt(str.substr(2, 1));
check = check.toString();
check = check.substr(check.length - 1);
return str + check;
Po instalacji, aplikacja wygląda jak Trusteer Rapport, popularny program antymalware dla urządzeń z systemem Android. Nie jest to pierwszy przypadek, gdy przestępcy podszywają się pod znaną markę aby uśpić czujność ofiary i przejąć kontrolę nad jej urządzeniem.
To co powinno od razu nas zaniepokoić to fakt, że aplikacja prosi o nadanie praw administratora oraz przyznanie następujących uprawnień:
- czytanie/pisanie/wysyłanie/otrzymywanie wiadomości SMS
- czytanie listy kontaktów
- blokowanie ekranu
- wykonywanie/przekierowywanie połączeń
- czytanie logów telefonu
- czytanie danych z karty SD oraz pamięci telefonu
- przechwytywanie informacji o obecnie uruchomionych aplikacjach
- zabijanie działających procesów
Po wpisaniu kodu aktywacyjnego, otrzymujemy kod zwrotny, który należy podać na stronie banku. W ten sposób numer telefonu zostaje powiązany z konkretnym użytkownikiem bankowości elektronicznej.
Po zweryfikowaniu faktu instalacji złośliwej aplikacji, na stronie banku wyświetlane jest okno logowania, a po wpisaniu danych, wysyłane są one na serwery C&C przestępcy. W ten sposób udało się wyłudzić nie tylko login i hasło ale też przejąć kontrolę nad telefonem. Tym samym zyskać dostęp do kodów jednorazowych.
Możliwości aplikacji mobilnej
Na pierwszy rzut oka aplikacja nie różni się od typowego skanera antywirusowego. W rzeczywistości jej głównym zadaniem jest przesyłanie wszystkich wykradzionych danych na numer telefonu przestępcy, zapisany w bazie danych wykorzystywanej przez aplikację. Ponadto zaraz po instalacji “skaner” zabija procesy wszystkich zewnętrznych aplikacji służących do obsługi sms (GoogleTalk, GoSMS) zmuszając telefon do korzystania ze standardowej aplikacji. Dzięki temu w prosty sposób zyskuje kontrolę nad przychodzącymi/wychodzącymi wiadomościami.
Jak odinstalować aplikację?
Twórcy postarali się o to, żeby odinstalowanie aplikacji nie było łatwe. W związku z tym, że przy instalacji nadaliśmy jej uprawnienia administratora, musimy je najpierw odebrać. Pomimo ostrzeżeń i samoistnego blokowania się ekranu co chwilę, okazuje się to dosyć proste. Problem zaczyna się przy próbie odinstalowania “skanera”. Bez względu na to, czy próbujemy to zrobić ze standardowego okna zarządzania aplikacjami w ustawieniach telefonu czy też przy użyciu zewnętrznej aplikacji, program uniemożliwia to wyświetlając ekran z prośbą o ponowne nadanie uprawnień administratora. Wyskakujące okno przykrywa wszystkie zainstalowane na telefonie aplikacje oraz komunikaty.
Aplikacja dodaje także odbiornik zdarzeń, nasłuchujący na android.intent.action.BOOT_COMPLETED, dzięki czemu, zaraz po starcie systemu uruchamia prośbę o nadanie uprawnień. Usunięcie aplikacji z menu telefonu może w tej sytuacji okazać się niemożliwe. Co możemy zrobić w aby powstrzymać się przed ostatecznością czyli resetem fabrycznym?
Z pomocą może tu przyjść popularne narzędzie służące do zarządzania telefonem z poziomu wiersza poleceń komputera: ADB (Android Debug Bridge). Po włączeniu opcji programistycznych w telefonie i odebraniu złośliwej aplikacji praw administratora wystarczy podpiąć telefon do komputera i z konsoli uruchomić narzędzie adb.
Na początku, aby móc odinstalować aplikację, musimy sprawdzić jak się nazywa. Służy do tego polecenie:
adb shell 'pm list packages -3'
Wylistuje ono nazwy wszystkich aplikacji niesystemowych zainstalowanych na telefonie. Kolejnym i ostatnim krokiem jest odinstalowanie odpowiedniego pakietu przez:
adb uninstall com.truster.secure
Podsumowanie
Ataki na telefony komórkowe stają się co raz bardziej popularną formą zdobycia pełnych dostępów do banku. W tej konkretnej sytuacji ofiara musiała mieć zainfekowany zarówno komputer jak i telefon. Musimy jednak pamiętać o tym by w przypadku instalacji każdej aplikacji dokładnie przeanalizować uprawnienia o które żąda i jeżeli wydają się one podejrzane to zrezygnować z instalacji. W razie jakichkolwiek wątpliwości, należy natychmiast skontaktować się ze swoim bankiem.
Skróty próbek malware:
aa6f87e50e9df2a88fc2146ba477abe8099459012ed1b9d4f6c03ec54ed2f754
30f75776b1ea0df28186e0e6a141c039e50089e80becb62918915643249fb726