Luka w zabezpieczeniach związana z atakem StrandHogg / o podobnych zainteresowaniach

Kategoria OWASP: MASVS-PLATFORM: Platform Interaction

Omówienie

Atak StrandHogg / podatność na powiązanie zadań została włączona / spowodowana przez błąd projektowania w sposobie, w jaki Android obsługiwał wiele zadań, w szczególności funkcję zwaną ponownym przypisaniem zadania. Przenoszenie zadania aplikacji to funkcja, która umożliwia aplikacji przeniesienie aktywności z jednego zadania do innego.

Atak StrandHogg wykorzystuje brak jasności co do sposobu sprawdzania przychodzących działań stosu zadań aplikacji i pozwala złośliwej aplikacji na:

  • przenoszenie szkodliwych działań do lub z puli ofiar
  • ustawić złośliwą aktywność jako stos zwracania po zakończeniu działania ofiary;

Ta luka w zabezpieczeniach jest wykorzystywana przez manipulowanie ustawieniami allowTaskReparenting i taskAffinity.

Wpływ

Szkodliwa aplikacja może ustawić wartość atrybutu taskAffinity jednego ze swoich działań tak, aby odpowiadała wartości atrybutu packageName aplikacji docelowej. Może to być połączone z przejęciem intencji, dzięki czemu następnym razem, gdy użytkownik uruchomi aplikację docelową, zostanie uruchomiona również złośliwa aplikacja i wyświetlona nad aplikacją docelową.

W ten sposób można przejąć kontrolę nad działaniami legalnych użytkowników.

Użytkownik może zostać podstępnie nakłoniony do podania danych logowania w złośliwej aplikacji. Po rozpoczęciu aktywności i jej powiązaniu z zadaniem to powiązanie będzie obowiązywać przez cały cykl życia aktywności. Ustawienie wartości prawda dla parametru allowTaskReparenting powoduje jednak zerwanie tego ograniczenia i umożliwia przeniesienie istniejącej aktywności do nowo utworzonego „natywnego” zadania.

Aplikacja A może na przykład być kierowana przez aplikację B, która przekierowuje działania aplikacji A do stosu działań aplikacji B po powrocie z ukończonej aktywności aplikacji A. Przejście z jednej aplikacji do drugiej jest ukryte przed użytkownikiem i stanowi znaczące zagrożenie phishingiem.

Środki zaradcze

Zaktualizuj na android:minSdkVersion="30".

W marcu 2019 r. została załatana luka w zabezpieczeniach związana z atakiem StrandHogg / powiązaniem zadań. Wrześniu 2020 r. załatano nowszy i bardziej kompleksowy wariant tej luki. Pakiety SDK Androida w wersji 30 lub nowszej (Android 11) zawierają odpowiednie poprawki systemu operacyjnego, które eliminują tę lukę w zabezpieczeniach. Chociaż można częściowo ograniczyć skuteczność wersji 1 ataku StrandHogg za pomocą konfiguracji poszczególnych aplikacji, wersji 2 można zapobiec tylko za pomocą poprawki w wersji pakietu SDK.

Materiały