Categoria OWASP: MASVS-PLATFORM: Interazione con la piattaforma
Panoramica
L'attacco StrandHogg / la vulnerabilità di affinità delle attività è stata attivata / causata da un bug di progettazione nel modo in cui Android gestiva più attività, in particolare la funzionalità chiamata assegnazione di un nuovo gruppo di attività. La ridefinizione della struttura di un'attività dell'applicazione è una funzionalità che consente a un'applicazione di spostare un'attività da un'attività all'altra.
L'attacco StrandHogg sfrutta una mancanza di chiarezza su come esaminare le attività dello stack di attività dell'applicazione in entrata e consente a un'applicazione dannosa di:
- spostare un'attività dannosa verso o da uno stack della vittima
- imposta l'attività dannosa come stack di ritorno al termine di un'attività della vittima
Questa vulnerabilità viene sfruttata manipolando le impostazioni allowTaskReparenting
e
taskAffinity
.
Impatto
Un'applicazione dannosa può impostare taskAffinity di una delle sue attività in modo che corrisponda al packageName di un'applicazione di destinazione. Questo può essere combinato con il hijacking dell'intent in modo che la volta successiva che l'utente avvia l'applicazione di destinazione, venga avviata e visualizzata anche l'applicazione dannosa sopra l'applicazione di destinazione.
La vulnerabilità di affinità delle attività può quindi essere utilizzata per rubare le azioni degli utenti legittimi.
L'utente potrebbe essere indotto con l'inganno a fornire le proprie credenziali a un'applicazione dannosa. Per impostazione predefinita, quando un'attività viene avviata e associata a un'attività, l'associazione persiste per l'intero ciclo di vita dell'attività. Tuttavia, l'impostazione di allowTaskReparenting su true viola questa limitazione, consentendo di ridefinire l'attività esistente come attività principale di un'attività "nativa" appena creata.
Ad esempio, l'app A può essere scelta come target dall'app B, reindirizzando le attività dell'app A a una serie di attività dell'app B al ritorno dall'attività completata dell'app A. Questa transizione da un'app all'altra è nascosta all'utente e rappresenta una grave minaccia di phishing.
Mitigazioni
Aggiorna a android:minSdkVersion="30"
.
La vulnerabilità dell'attacco StrandHogg / affinità delle attività è stata originariamente corretta a marzo 2019 con una variante più recente e completa corretta a settembre 2020. Le versioni dell'SDK Android 30 e successive (Android 11) contengono le patch del sistema operativo appropriate per evitare questa vulnerabilità. Sebbene sia possibile mitigare parzialmente la versione 1 dell'attacco StrandHogg tramite la configurazione delle singole applicazioni, la versione 2 dell'attacco può essere impedita solo da questo aggiornamento della versione dell'SDK.
Risorse
- Articolo accademico originale che descrive la vulnerabilità a Usenix 15{.external}
- Espansione della vulnerabilità originale da parte del gruppo Promon Security{.external}
- Documentazione per gli sviluppatori Android relativa ad android:allowTaskReparenting
- Documentazione per gli sviluppatori Android relativa ad android:taskAffinity
- Documentazione per gli sviluppatori Android relativa all'elemento application di android:allowTaskReparenting