Categoria OWASP: MASVS-PLATFORM: interação com a plataforma (link em inglês)
Visão geral
A vulnerabilidade de ataque StrandHogg / afinidade de tarefas foi ativada / causada por um bug no design na maneira como o Android processava várias tarefas, especificamente o recurso chamado "reassociação de tarefas". A reassociação de tarefas do aplicativo é um recurso que permite que um app mova uma atividade de uma tarefa para outra.
O ataque StrandHogg explora a falta de clareza sobre como examinar as atividades da pilha de tarefas de aplicativos recebidas e permite que um aplicativo malicioso:
- Mova uma atividade maliciosa de ou para uma pilha-alvo.
- Defina a atividade maliciosa como a pilha de retorno após a conclusão de uma atividade-alvo.
Essa vulnerabilidade é explorada ao manipular as configurações
allowTaskReparenting
e taskAffinity
.
Impacto
Um aplicativo malicioso pode definir a afinidade de tarefas de uma das atividades dele para corresponder ao nome do pacote de um aplicativo de destino. Isso pode ser acoplado à invasão de intent para que, na próxima vez que o aplicativo de destino for iniciado pelo usuário, o aplicativo malicioso também seja iniciado e mostrado por cima do aplicativo de destino.
A vulnerabilidade de afinidade de tarefas pode ser usada para invadir ações legítimas do usuário.
O usuário pode ser induzido a fornecer credenciais a um aplicativo malicioso. Por padrão, depois que uma atividade começa e é associada a uma tarefa, essa associação persiste durante todo o ciclo de vida da atividade. No entanto, definir allowTaskReparenting como verdadeiro quebra essa restrição, permitindo que uma atividade já existente seja associada de novo a uma tarefa "nativa" recém-criada.
Por exemplo, o App A pode ser alvo do App B, redirecionando as atividades do App A para uma pilha de atividades do App B ao retornar da atividade concluída do App A. Essa transição de um app para outro fica oculta ao usuário e cria uma ameaça de phishing significativa.
Mitigações
Atualize para android:minSdkVersion="30"
.
A vulnerabilidade de ataque StrandHogg / afinidade de tarefas foi corrigida originalmente em março de 2019 com uma variante mais recente e abrangente corrigida em setembro de 2020. As versões 30 e mais recentes do SDK do Android (Android 11) contêm os patches do SO adequados para evitar essa vulnerabilidade. Embora seja possível reduzir parcialmente a versão 1 do Ataque StrandHogg nas configurações específicas dos aplicativos, a versão 2 do ataque só pode ser impedida por esse patch de versão do SDK.
Recursos
- Artigo acadêmico original sobre a vulnerabilidade no Usenix 15{.external}
- Aumento da vulnerabilidade original descoberto pelo grupo de segurança da Promon{.external}
- Documentação do desenvolvedor Android para android:allowTaskReparenting
- Documentação do desenvolvedor Android para android:taskAffinity
- Documentação do desenvolvedor Android para o elemento do aplicativo de android:allowTaskReparenting