Pracownicy z QuardSquare opisują nową podatność w systemie Android, która dotyczy wersji 5.1.1 do 8.0 włączanie. Zgłoszona luka w lipcu została już oznaczona identyfikatorem CVE-2017-13156 i po uruchomieniu instalatora APK pozwala modyfikować dowolną zainstalowaną aplikację (nawet systemową!) bez wpływu na integralność podpisu cyfrowego. Łatki zabezpieczające trafiły do grudniowych aktualizacji bezpieczeństwa Google. Oczywiście otrzymają je tylko nieliczni (ale to na pewno już wiecie). Tak naprawdę, podatność „Janus” dotyczy aż 74% smartfonów na runku i jest w podobnym stopniu krytyczna z punktu bezpieczeństwa, co podatność Blueborne, Stagefright, Metaphor lub Quadrooter.
Janus — plik APK nie jest tym za co się podaje
Badacze wyjaśniają, że aplikacje na Androida w rzeczywistości są plikami „ZIP” z rozszerzeniem „.APK” (Android Package Kit), więc da się je rozpakować za pomocą popularnych programów do dekompresji, np. WinRAR lub 7-ZIP. Podatność wynika z możliwości wprowadzenia dodatkowych bajtów dla pliku DEX (Dalvik Executable) w pliku APK.
Plik DEX da się wprowadzić do pliku APK bez wpływu na cyfrowy podpis. System Android „akceptuje” taką operację jako aktualizację wcześniejszej wersji aplikacji. Atakujący może to wykorzystać do ukrycia niebezpiecznego ładunku — który niestety nie będzie traktowany jako szkodliwy — lub do zaktualizowania aplikacji bez wiedzy dewelopera.
Skoro plik APK jest traktowany jako archiwum ZIP, to możliwe jest dodanie dowolnych bajtów na początku pliku lub pomiędzy sekwencjami danych. Wirtualna maszyna (DalvikVM) odpowiedzialna za uruchamianie aplikacji w systemie Android najpierw ładuje plik APK, następnie wczytuje z niego plik DEX i uruchamia kod. Oznacza to, że wirtualna maszyna może załadować do pamięci i uruchomić niebezpieczny kod zawarty w pliku DEX.
Podatność została zgłoszona przez badaczy w lipcu 2017 roku. Aktualizacja bezpieczeństwa ukazała się kilka dni temu. Pracownicy Trend Micro znaleźli jedną próbkę złośliwego oprogramowania wykorzystującą podatność Janus. Złośliwa aplikacja została już usunięta ze sklepu Google Play.
Dzielenie pliku APK na części
Z plikami APK istniała jeszcze jedna sztuczka — autorzy złośliwego oprogramowania mogli wykorzystać buga w mobilnej przeglądarce Google Chrome w innym przypadku. Normalnie podczas ściągania pliku użytkownik musi zezwolić na pobieranie danych. Jednak plik APK może zostać podzielony na 1024-bajtowe kawałki będące przekazywanymi do funkcji zapisywania za pośrednictwem klasy Blob(). Teraz, bez wiedzy użytkownika, aplikacja zapisze się na urządzeniu kawałek po kawałku. Po pobraniu plik zostanie zrekonstruowany w złośliwą aplikację. Najsłabszym ogniwem tej sztuczki jest interakcja z użytkownikiem — bez zainstalowania programu trojan po prostu pozostanie na smartfonie w postaci niegroźnego pliku. Nie zmienia to jednak faktu, że technika pobrania zasobu ze zdalnego serwera na urządzenie mobilne (i to bez interakcji z użytkownikiem) została wykorzystana w prawdziwych atakach.
Czy ten artykuł był pomocny?
Oceniono: 0 razy