Catégorie OWASP : MASVS-PLATFORM : interaction avec la plate-forme
Présentation
L'attaque StrandHogg/La vulnérabilité d'affinité de tâche a été activée/causée par un bug de conception dans la manière dont Android gérait plusieurs tâches, en particulier la fonctionnalité appelée reparenting de tâches. Le reparenting des tâches d'une application est une fonctionnalité qui permet à une application de déplacer une activité d'une tâche à une autre.
L'attaque StrandHogg exploite le manque de clarté concernant la validation des activités entrantes de la pile de tâches et permet à une application malveillante de :
- déplacer une activité malveillante vers ou depuis une pile victime ;
- définir l'activité malveillante comme pile de retour une fois l'activité de la victime terminée.
Cette faille est exploitée en manipulant les paramètres allowTaskReparenting
et taskAffinity
.
Impact
Une application malveillante peut définir la taskAffinity de l'une de ses activités pour qu'elle corresponde au packageName d'une application cible. Cette approche peut ensuite être associée au piratage d'intent pour que l'application cible soit lancée et affichée en haut de l'application cible la prochaine fois que l'utilisateur la lance.
La vulnérabilité d'affinité de tâche peut ensuite être utilisée pour pirater les actions légitimes des utilisateurs.
L'utilisateur peut être incité à fournir des identifiants à une application malveillante. Par défaut, lorsqu'une activité démarre et est associée à une tâche, cette association persiste pendant tout le cycle de vie de l'activité. Toutefois, la définition d'allowTaskReparenting sur "true" rompt cette restriction, ce qui permet de reparenter une activité existante en une nouvelle tâche "native".
Par exemple, l'application A peut être ciblée par l'application B, redirigeant les activités de l'application A vers une pile d'activités de l'application B lorsque l'application A termine son activité. Cette transition d'une application à une autre est masquée pour l'utilisateur et constitue une menace d'hameçonnage importante.
Stratégies d'atténuation
Effectuez la mise à jour vers android:targetSdkVersion=>28
.
L'attaque StrandHogg/La vulnérabilité d'affinité de tâche a été corrigée en mars 2019. Les versions 28 et ultérieures (Android 9) du SDK Android contiennent les correctifs de système d'exploitation adaptés pour éviter cette faille. Bien qu'il soit possible d'atténuer partiellement la version 1 de l'attaque StrandHogg par le biais d'une configuration d'application individuelle, la version 2 de l'attaque ne peut être bloquée que par ce correctif de version du SDK.
Ressources
- Article universitaire original décrivant la vulnérabilité à l'occasion d'Usenix 15
- Développement de la faille d'origine par le groupe de sécurité Promon