Android Task Hijacking
Try Hard Security Group
Attacco di dirottamento dell'attività, dello stack posteriore e delle attività in primo piano
In Android, un task è essenzialmente un insieme di attività con cui gli utenti interagiscono per completare un lavoro specifico, organizzato all'interno di uno stack posteriore. Questo stack ordina le attività in base a quando sono state aperte, con l'attività più recente visualizzata in alto come attività in primo piano. In ogni momento, solo questa attività è visibile sullo schermo, facendola parte del task in primo piano.
Ecco una rapida panoramica delle transizioni delle attività:
Attività 1 inizia come unica attività in primo piano.
Il lancio di Attività 2 spinge Attività 1 nello stack posteriore, portando Attività 2 in primo piano.
Avviare Attività 3 sposta Attività 1 e Attività 2 ulteriormente nello stack, con Attività 3 ora davanti.
Chiudere Attività 3 riporta Attività 2 in primo piano, mostrando il meccanismo di navigazione dei task semplificato di Android.
Attacco di affinità del task
Panoramica dell'affinità del task e delle modalità di lancio
Nelle applicazioni Android, l'affinità del task specifica il task preferito di un'attività, allineandosi tipicamente con il nome del pacchetto dell'app. Questa configurazione è fondamentale per creare un'app di prova (PoC) per dimostrare l'attacco.
Modalità di lancio
L'attributo launchMode
dirige la gestione delle istanze di attività all'interno dei task. La modalità singleTask è fondamentale per questo attacco, che detta tre scenari in base alle istanze di attività esistenti e alle corrispondenze di affinità del task. L'exploit si basa sulla capacità dell'app di un attaccante di imitare l'affinità del task dell'app target, inducendo il sistema Android a lanciare l'app dell'attaccante invece dell'app target previsto.
Passaggi dettagliati dell'attacco
Installazione dell'app malevola: La vittima installa l'app dell'attaccante sul proprio dispositivo.
Attivazione iniziale: La vittima apre prima l'app malevola, preparando il dispositivo per l'attacco.
Tentativo di lancio dell'app target: La vittima tenta di aprire l'app target.
Esecuzione del dirottamento: A causa dell'affinità del task corrispondente, l'app malevola viene lanciata al posto dell'app target.
Inganno: L'app malevola presenta una schermata di accesso falsa simile all'app target, inducendo l'utente a inserire informazioni sensibili.
Per un'implementazione pratica di questo attacco, fare riferimento al repository Task Hijacking Strandhogg su GitHub: Task Hijacking Strandhogg.
Misure di prevenzione
Per prevenire tali attacchi, gli sviluppatori possono impostare taskAffinity
su una stringa vuota e optare per la modalità di lancio singleInstance
, garantendo l'isolamento della propria app dalle altre. Personalizzare la funzione onBackPressed()
offre una protezione aggiuntiva contro il dirottamento del task.
Riferimenti
Try Hard Security Group
Last updated