Android Task Hijacking
Grupa Try Hard Security
Zadanie, stos wsteczny i aktywności w pierwszym planie
W systemie Android zadanie to zbiór aktywności, z którymi użytkownicy współdziałają, aby ukończyć określone zadanie, zorganizowane w stosie wstecznej. Ten stos uporządkowuje aktywności na podstawie momentu ich otwarcia, z najnowszą aktywnością wyświetlaną na górze jako aktywność w pierwszym planie. W każdej chwili tylko ta aktywność jest widoczna na ekranie, co czyni ją częścią zadania w pierwszym planie.
Oto szybkie omówienie przejść między aktywnościami:
Aktywność 1 zaczyna jako jedyna aktywność w pierwszym planie.
Uruchomienie Aktywności 2 przesuwa Aktywność 1 do stosu wstecznego, przynosząc Aktywność 2 do pierwszego planu.
Rozpoczęcie Aktywności 3 przenosi Aktywność 1 i Aktywność 2 dalej w stosie, a teraz Aktywność 3 jest na pierwszym miejscu.
Zamknięcie Aktywności 3 przywraca Aktywność 2 do pierwszego planu, prezentując zoptymalizowany mechanizm nawigacji zadań w systemie Android.
Atak na powinowactwo zadań
Przegląd powinowactwa zadań i trybów uruchamiania
W aplikacjach Android powinowactwo zadań określa preferowane zadanie aktywności, zazwyczaj zgodne z nazwą pakietu aplikacji. Ta konfiguracja jest istotna przy tworzeniu aplikacji koncepcyjnej (PoC) do demonstracji ataku.
Tryby uruchamiania
Atrybut launchMode
kieruje obsługą instancji aktywności w zadaniach. Tryb singleTask jest kluczowy dla tego ataku, dyktując trzy scenariusze na podstawie istniejących instancji aktywności i dopasowań powinowactwa zadań. Wykorzystanie polega na zdolności aplikacji atakującego do naśladowania powinowactwa zadań aplikacji docelowej, wprowadzając w błąd system Android, aby uruchomił aplikację atakującego zamiast zamierzonej aplikacji.
Szczegółowe kroki ataku
Instalacja złośliwej aplikacji: Ofiara instaluje aplikację atakującego na swoim urządzeniu.
Początkowe uruchomienie: Ofiara najpierw otwiera złośliwą aplikację, przygotowując urządzenie do ataku.
Próba uruchomienia aplikacji docelowej: Ofiara próbuje otworzyć aplikację docelową.
Wykonanie przechwycenia: Ze względu na pasujące powinowactwo zadań, złośliwa aplikacja zostaje uruchomiona zamiast aplikacji docelowej.
Oszustwo: Złośliwa aplikacja prezentuje fałszywy ekran logowania przypominający aplikację docelową, wprowadzając użytkownika w błąd, aby wprowadził poufne informacje.
Dla praktycznej implementacji tego ataku, odwołaj się do repozytorium Task Hijacking Strandhogg na GitHubie: Task Hijacking Strandhogg.
Środki zapobiegawcze
Aby zapobiec takim atakom, programiści mogą ustawić taskAffinity
na pusty ciąg znaków i wybrać tryb uruchamiania singleInstance
, zapewniając izolację swojej aplikacji od innych. Dostosowanie funkcji onBackPressed()
oferuje dodatkową ochronę przed przechwytywaniem zadań.
Referencje
Grupa Try Hard Security
Last updated