Ataque de StrandHogg/Vulnerabilidad de afinidad de la tarea

Categoría de OWASP: MASVS-PLATFORM: Interacción con la plataforma

Descripción general

El ataque de StrandHogg o la vulnerabilidad de afinidad de la tarea se habilitó o se ocasionó debido a un error de diseño en la forma en que Android manejaba varias tareas. En particular, la función llamada reorganización de jerarquías de tareas. El cambio de jerarquía de tareas de la aplicación es una función que permite que una aplicación mueva una actividad de una tarea a otra.

El ataque StrandHogg se aprovecha de la falta de claridad sobre cómo aprobar las actividades entrantes de la pila de tareas de la aplicación y permite que una aplicación maliciosa haga lo siguiente:

  • Mover una actividad maliciosa hacia o desde una pila víctima
  • Establecer la actividad maliciosa como la pila de devolución cuando se complete una actividad víctima

Esta vulnerabilidad se aprovecha a través de la manipulación de la configuración de allowTaskReparenting y taskAffinity.

Impacto

Una aplicación maliciosa puede establecer la taskAffinity de una de sus actividades para que coincida con el packageName de una aplicación objetivo. Esto se puede combinar con la usurpación de intents, de modo que, la próxima vez que el usuario inicie la aplicación objetivo, también se iniciará la aplicación maliciosa y se mostrará en la parte superior de la aplicación objetivo.

La vulnerabilidad de afinidad de la tarea se puede usar para usurpar las acciones legítimas de los usuarios.

Se podría engañar al usuario para que proporcione credenciales a una aplicación maliciosa. De forma predeterminada, una vez que se inicia una actividad y se asocia con una tarea, esa asociación persiste durante todo el ciclo de vida de la actividad. Sin embargo, configurar allowTaskReparenting como "true" interrumpe esta restricción y permite que una actividad existente se cambie de jerarquía a una tarea "nativa" recién creada.

Por ejemplo, la App B puede orientar a la App A, lo que redirecciona las actividades de la App A a una pila de actividades de la App B cuando se muestra desde la actividad completada de la App A. Esta transición de una app a otra está oculta para el usuario y crea una amenaza importante de phishing.

Mitigaciones

Actualización a android:targetSdkVersion=>28.

El ataque de StrandHogg o la vulnerabilidad de afinidad de la tarea se corrigieron en marzo de 2019, y las versiones 28 y posteriores del SDK de Android (Android 9) contienen los parches de SO adecuados para evitar esta vulnerabilidad. Si bien es posible mitigar parcialmente la versión 1 del ataque de StrandHogg con la configuración individual de la aplicación, solo este parche de versión del SDK puede evitar la versión 2 del ataque.

Recursos