Android jest Linuksem – ale to nie znaczy, że zagrożenia z Androida dotyczą bezpośrednio desktopowego Linuksa. RatHat pokazuje jednak coś znacznie ciekawszego: jak narzędzia kojarzone ze światem administratorów i programistów mogą zostać wykorzystane przez malware do przejęcia kontroli nad urządzeniem.
W ostatnich dniach głośno zrobiło się o nowym trojanie na Androida o nazwie RatHat. Malware zwróciło uwagę badaczy bezpieczeństwa nie tylko dlatego, że atakuje aplikacje bankowe. Jego szczególnie interesującym elementem jest połączenie mechanizmów Androida, ADB, uprawnień Accessibility oraz generatywnej sztucznej inteligencji.
Według analizy Zimperium malware może po uzyskaniu odpowiednich uprawnień samodzielnie włączyć Wireless Debugging, odczytać kod parowania ADB, a następnie połączyć się z lokalnym demonem ADB bez konieczności korzystania z komputera.
Dla użytkownika Linuksa jest to interesujący przypadek z jeszcze jednego powodu: w ataku wykorzystywane są technologie i koncepcje bardzo dobrze znane osobom pracującym z Linuksem.
Android to Linux, ale Android to nie desktopowy Linux
Na początku warto uporządkować jedną rzecz.
Android korzysta z jądra Linux, jednak cały system znacząco różni się od typowej dystrybucji desktopowej, takiej jak Debian, Fedora, Ubuntu czy Arch Linux.
Android posiada własny model uprawnień, framework aplikacji, mechanizmy izolacji procesów oraz środowisko uruchamiania aplikacji. Użytkownik aplikacji nie otrzymuje po prostu dostępu do powłoki systemowej tak jak administrator korzystający z terminala na komputerze.
To właśnie dlatego historia RatHat jest interesująca.
Malware próbuje wykorzystać legalne mechanizmy Androida w sposób, do którego nie zostały przeznaczone.
Jednym z nich jest Android Debug Bridge, czyli ADB.
Czym jest ADB?
ADB to narzędzie przeznaczone przede wszystkim dla programistów i osób zajmujących się administracją urządzeniami z Androidem.
Pozwala między innymi komunikować się z urządzeniem, instalować aplikacje, wykonywać polecenia czy analizować zachowanie systemu.
W świecie Linuksa można znaleźć podobną filozofię: administrator ma możliwość komunikowania się z systemem za pomocą narzędzi tekstowych i powłoki zamiast ograniczać się wyłącznie do graficznego interfejsu.
Problem pojawia się wtedy, gdy możliwość debugowania urządzenia trafia w ręce malware.
RatHat wykorzystuje do tego Wireless Debugging. Po uzyskaniu dostępu do usług ułatwień dostępu trojan ma być w stanie przejść przez ustawienia Androida, włączyć odpowiednią funkcję i odczytać z ekranu kod potrzebny do parowania ADB. Następnie łączy się z lokalnym demonem ADB i uzyskuje dostęp na poziomie powłoki.
To nietypowy element całego ataku.
Nie jest potrzebny klasyczny komputer podłączony przewodem USB.
Najpierw socjotechnika, później technologia
RatHat nie zaczyna jednak swojej działalności od magicznego „zhakowania Androida”.
Pierwszym etapem jest zazwyczaj użytkownik.
Według opisów kampanii malware może być rozpowszechniane poprzez wiadomości SMS, złośliwe reklamy oraz fałszywe strony oferujące aplikacje APK. W analizowanych przypadkach aplikacja może podszywać się między innymi pod popularne oprogramowanie.
To ważna lekcja również dla użytkowników Linuksa.
Często mówi się, że Linux jest bezpieczniejszy, ponieważ aplikacje są instalowane z repozytoriów, a system posiada rozbudowany model uprawnień.
To prawda – ale tylko częściowo.
Jeżeli użytkownik świadomie pobierze nieznany program, nada mu odpowiednie uprawnienia i uruchomi go z wysokimi uprawnieniami, model bezpieczeństwa systemu może zostać poważnie osłabiony.
Najlepsze mechanizmy bezpieczeństwa nie pomogą, jeżeli użytkownik sam zaakceptuje niebezpieczne działanie programu.
Accessibility jako punkt zwrotny
Jednym z kluczowych elementów RatHat jest usługa Accessibility, czyli mechanizmy ułatwień dostępu Androida.
Same w sobie nie są one niczym złym. Są potrzebne osobom korzystającym z czytników ekranu, powiększenia, alternatywnych metod sterowania oraz innych funkcji dostępności.
Problem polega na tym, że przyznanie aplikacji takich możliwości może dać jej bardzo szeroki wgląd w interfejs urządzenia.
RatHat wykorzystuje to między innymi do automatycznego poruszania się po ustawieniach telefonu.
Dla użytkownika powinno to być bardzo czytelne ostrzeżenie:
Jeżeli przypadkowo zainstalowana aplikacja prosi o uprawnienia Accessibility, warto się zatrzymać i zastanowić, dlaczego właściwie ich potrzebuje.
Jeżeli aplikacja do odtwarzania filmu, przeglądania strony czy obsługi prostego narzędzia nagle wymaga możliwości kontrolowania interfejsu całego telefonu, jest to powód do ostrożności.
AI jako operator interfejsu
Najciekawszą częścią RatHat jest jednak wykorzystanie sztucznej inteligencji.
Według Zimperium malware zbiera informacje o elementach interfejsu telefonu, zapisuje je w formie XML, a następnie przekazuje do asystenta AI. Model może pomóc określić, gdzie znajduje się konkretny element, odczytać tekst czy zdecydować o przewinięciu ekranu.
To różni się od klasycznego automatyzowania aplikacji.
Tradycyjny skrypt może zakładać:
- kliknij współrzędne X/Y,
- poczekaj,
- kliknij kolejne współrzędne,
- wpisz tekst.
Problem jest oczywisty: jeżeli aplikacja zmieni wygląd, układ przycisków albo rozdzielczość ekranu, taki skrypt może przestać działać.
AI może natomiast analizować aktualny stan interfejsu i próbować znaleźć właściwy element.
Nie oznacza to oczywiście, że malware otrzymuje magiczną „superinteligencję”. Jest to raczej kolejny mechanizm automatyzacji, który może zwiększać elastyczność ataku.
Kradzież danych bankowych to dopiero początek
RatHat jest przede wszystkim trojanem nastawionym na przejmowanie danych.
Malware może wykorzystywać nakładki na aplikacje bankowe i płatnicze, przechwytywać dane logowania, SMS-y oraz kody jednorazowe. Zidentyfikowano również mechanizm pozwalający analizować surowe dane dotyczące dotyku.
W praktyce oznacza to, że klasyczne zabezpieczenie w postaci kodu jednorazowego nie musi wystarczyć, jeśli urządzenie zostało wcześniej przejęte.
To bardzo ważna zmiana w myśleniu o bezpieczeństwie.
Nie wystarczy już pytać:
„Czy moje hasło jest bezpieczne?”
Trzeba również zapytać:
„Czy urządzenie, na którym wpisuję to hasło, jest bezpieczne?”
Co ma z tym wspólnego Linux?
Na pierwszy rzut oka niewiele.
RatHat jest zagrożeniem dla Androida, a nie typową kampanią malware atakującą Ubuntu, Debiana czy Fedory.
Jednak techniczny sposób działania pokazuje kilka zasad, które są fundamentalne również w świecie Linuksa.
1. Minimalne uprawnienia mają znaczenie
Linux od dawna opiera bezpieczeństwo na rozdzielaniu uprawnień.
Zwykły użytkownik nie powinien mieć takich możliwości jak root.
Podobna zasada obowiązuje w Androidzie, choć jest realizowana inaczej.
Każde dodatkowe uprawnienie zwiększa potencjalne możliwości aplikacji. Dlatego program powinien otrzymywać tylko takie prawa, których rzeczywiście potrzebuje.
2. Narzędzie administracyjne nie jest z natury bezpieczne
ADB jest legalnym i przydatnym narzędziem.
Podobnie jak:
- SSH,
- sudo,
- systemd,
- cron,
- Docker,
- narzędzia sieciowe,
- powłoka Bash.
Samo istnienie potężnego narzędzia nie oznacza jednak, że jego użycie jest zawsze bezpieczne.
RatHat pokazuje, że funkcja zaprojektowana dla administratora może zostać wykorzystana przez atakującego, jeżeli ten uzyska odpowiedni dostęp.
Czy użytkownicy desktopowego Linuksa powinni się bać RatHat?
Nie ma podstaw, aby traktować RatHat jako bezpośrednie zagrożenie dla typowej instalacji desktopowego Linuksa.
To malware przygotowane z myślą o Androidzie i wykorzystujące specyficzne mechanizmy tego systemu.
Jednocześnie warto potraktować je jako ciekawy przykład kierunku rozwoju współczesnych ataków.
Coraz częściej nie chodzi wyłącznie o znalezienie jednej podatności.
Atak może składać się z kilku elementów:
socjotechnika → instalacja aplikacji → uzyskanie uprawnień → automatyzacja → eskalacja możliwości → utrzymanie dostępu → kradzież danych.
RatHat łączy kilka takich etapów w jeden łańcuch. MMalwarebytes+1
A co z Linuksem i AI?
Tutaj pojawia się jeszcze ciekawszy temat.
AI może pomagać zarówno obrońcom, jak i atakującym.
Dla administratora Linuksa AI może analizować logi, pomagać wykrywać anomalie, tworzyć reguły monitorowania czy tłumaczyć komunikaty systemowe.
Dla malware AI może natomiast stać się dodatkową warstwą automatyzacji.
W przypadku RatHat model ma pomagać w rozpoznawaniu elementów interfejsu. Nie musi więc „wymyślać ataku” od zera. Wystarczy, że pomoże malware dostosować się do zmieniającego się środowiska.
To może być znacznie praktyczniejsze zastosowanie AI w cyberprzestępczości niż spektakularne wizje autonomicznych hakerów.
Co użytkownik może zrobić?
W przypadku Androida podstawowe zasady ochrony przed tego typu zagrożeniami są stosunkowo proste.
- Nie instaluj APK z przypadkowych stron.
- Uważaj na linki otrzymywane SMS-em.
- Nie przyznawaj aplikacjom Accessibility bez wyraźnego powodu.
- Nie włączaj Wireless Debugging, jeżeli nie wiesz, po co jest potrzebne.
- Aktualizuj system i aplikacje.
- Zwracaj uwagę na nietypowe zachowanie telefonu.
- Nie zakładaj, że aplikacja jest bezpieczna tylko dlatego, że wygląda jak Chrome, odtwarzacz multimedialny czy inne znane oprogramowanie.
Google Play Protect również skanuje aplikacje instalowane spoza Google Play i może ostrzegać przed szkodliwym oprogramowaniem, dlatego samo używanie sideloadingu nie oznacza automatycznie, że wszystkie zabezpieczenia Androida zostają wyłączone.
A użytkownik Linuksa?
W przypadku desktopowego Linuksa zasada jest podobna.
Warto korzystać z oficjalnych repozytoriów dystrybucji, sprawdzonych źródeł oprogramowania i mechanizmów podpisywania pakietów.
Nie należy bezrefleksyjnie uruchamiać poleceń znalezionych w internecie z sudo.
Szczególnie podejrzane powinny być instrukcje w rodzaju:
curl ... | sudo bash
Nie dlatego, że każda taka komenda jest złośliwa, ale dlatego, że użytkownik przekazuje zewnętrznemu skryptowi bardzo duże uprawnienia bez wcześniejszego sprawdzenia jego zawartości.
To dokładnie ta sama filozofia, którą widzimy w przypadku RatHat:
najważniejsze nie jest to, czy narzędzie jest „dobre” albo „złe”. Najważniejsze jest to, kto ma do niego dostęp i jakie uprawnienia otrzymuje.
RatHat pokazuje przyszłość malware
Najciekawszym elementem całej historii nie jest nawet sam Android.
Nie jest nim również ADB.
Najważniejsza jest integracja wielu legalnych mechanizmów w jeden automatyczny łańcuch ataku.
RatHat łączy socjotechnikę, Accessibility, Wireless Debugging, ADB, zdalny tunel, mechanizmy utrzymania dostępu oraz AI. Według analizy Zimperium malware posiada również rozwiązania utrudniające analizę i próby usunięcia.
To dobry przykład tego, jak zmienia się współczesne malware.
Nie zawsze potrzebuje ono jednej spektakularnej luki.
Czasami wystarczy połączenie wielu legalnych funkcji systemu w sposób, którego twórcy tych funkcji nie przewidywali.
Podsumowanie
RatHat nie jest „wirusem na Linuksa” i użytkownicy Ubuntu, Fedory czy Debiana nie powinni traktować go jako bezpośredniego zagrożenia dla swoich komputerów.
Jest jednak bardzo ciekawym studium przypadku.
Pokazuje, że Android i Linux łączy nie tylko wspólne jądro, ale również filozofia budowania systemów z wielu wyspecjalizowanych komponentów. A każdy taki komponent może stać się częścią większego łańcucha ataku, jeśli zostanie wykorzystany w niewłaściwy sposób.
Pokazuje również coś jeszcze.
AI nie musi samodzielnie „hakować systemu”, żeby stać się użytecznym narzędziem dla malware. Wystarczy, że pomoże mu lepiej rozumieć środowisko, w którym działa.
Dla użytkowników Linuksa jest to kolejny argument za stosowaniem podstawowych zasad bezpieczeństwa: ograniczaniem uprawnień, korzystaniem ze sprawdzonych źródeł oprogramowania, aktualizowaniem systemu oraz przede wszystkim – rozumieniem poleceń i programów, które uruchamiamy.
Bo niezależnie od tego, czy korzystamy z Androida, Ubuntu czy Debiana, jedna zasada pozostaje aktualna:
Największym zagrożeniem nie jest samo potężne narzędzie. Zagrożeniem jest potężne narzędzie znajdujące się w niewłaściwych rękach.