Blog
dark mode light mode Search Archivos descargables
Search

Tus datos al descubierto por deep links inseguros (Insecure Deep Link Implementation)

Insecure Deep Link Implementation

Los “deep links” o enlaces profundos son herramientas poderosas que permiten a los usuarios acceder directamente a funciones específicas en aplicaciones web o móviles con un simple clic. Aunque estos enlaces mejoran la comodidad y experiencia del usuario, también presentan desafíos de seguridad significativos.

Entender cómo funcionan los deep links y cómo los desarrolladores pueden implementar medidas de seguridad adecuadas es crucial para garantizar la protección de la información y la privacidad de los usuarios. En este artículo, te explicamos qué son los deep links, cómo funcionan, los riesgos y vulnerabilidades asociados a estos, así como algunas prácticas recomendadas para proteger tu aplicación de Android.

Los deep links, son URIs (identificadores uniformes de recursos) que permiten el acceso directo a una actividad en una aplicación web o móvil cuando se hace click en ellos.

Estos enlaces generalmente se encuentran en páginas dentro de una aplicación web o en las vistas web de una aplicación móvil. Cuando el usuario hace clic en un deep link y tiene la aplicación para abrir ese tipo de enlace, una ventana emergente sugiere abrir el enlace con la aplicación correspondiente.

Para que una aplicación pueda abrir un deep link, es necesario crear un “filtro de intenciones” asociado con una actividad. Recordemos que una intención o “intent” es un elemento que permite que una actividad realice una acción después de recibir datos.

En el caso de los deep links, es necesario indicarle a una actividad que, cuando se abra un cierto tipo de enlace en el teléfono, la actividad en cuestión debe estar lista para responder y posiblemente realizar una acción con ese enlace. Esto permite que el teléfono ofrezca una aplicación para abrir un cierto tipo de URI.

Un ejemplo de una definición de deep link, en el archivo AndroidManifest.xml

<activity
    android:name=".DeepLinkExample1"
    android:exported="true">
    <intent-filter android:label="my deeplink app">
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="https" />
        <data android:host="deeplink.example" />
    </intent-filter>
</activity>

En el ejemplo anterior, la actividad se puede utilizar para abrir los enlaces:

https://deeplink.example
https://deeplink.example/hello_world

Cuando los desarrolladores no implementan adecuadamente la seguridad en los deep links, se crea una puerta abierta para posibles ataques. La implementación insegura puede permitir a los ciberdelincuentes manipular estos enlaces para dirigir a los usuarios a destinos maliciosos o incluso robar información sensible.

Al igual que cualquier método para interactuar directamente con una aplicación móvil, los deep links pueden convertirse en un punto de entrada para posibles ataques contra los usuarios.

Existen dos posibles escenarios de ataque dependiendo de cómo se manipulen los deep links profundos:

  • Los desarrolladores de la aplicación configuran deep links para transferir información confidencial. El ataque en este caso consiste en intentar robar esa información.
  • Los parámetros transmitidos a través de los deep links se utilizan de manera insegura en el código de la aplicación. La idea aquí es comprender cómo los enlaces profundos pueden ser utilizados para explotar vulnerabilidades más comunes como XSS, IDOR, eludir CSRF, entre otras.

Habiendo entendido los posibles riesgos relacionados con los deep links, se describirán buenas prácticas para asegurar y proteger su aplicación de Android.

  • Es crucial implementar procesos de validación y verificación adecuados para los deep links y evitar el secuestro de enlaces. Utiliza un mecanismo seguro de verificación, como la Asociación de Enlaces de Aplicaciones.
  • Las URL de Intenciones especifican explícitamente el nombre del paquete de la aplicación objetivo, eliminando la posibilidad de secuestro de enlaces. Al usar URL de Intenciones, puedes asegurar que su aplicación maneje directamente el deep link sin intervención del usuario.
  • Implementa una validación adecuada de los parámetros de deep link para mitigar el riesgo de acceso arbitrario a componentes e inseguridad en el manejo de parámetros.
  • Para evitar eludir la autenticación local, asegúrese de que los deep links se manejan solo después de una autenticación específica de la aplicación. Esto garantiza que los usuarios estén autenticados antes de acceder a funcionalidades sensibles o realizar acciones críticas.
  • Si tu aplicación transmite datos sensibles a través de deep links, asegúrate de que los datos estén encriptados y protegidos.
  • Realiza pruebas regulares de seguridad y evaluaciones de vulnerabilidades para identificar debilidades o vulnerabilidades en la implementación de deep links de tu aplicación. Utiliza herramientas y técnicas de pruebas de penetración para simular ataques del mundo real y abordar posibles brechas de seguridad.
  • Proporciona instrucciones claras sobre cómo verificar la autenticidad de los deep links y alienta a los usuarios a informar cualquier actividad sospechosa.

Conclusión

Los deep links mejoran la usabilidad en Android, pero también presentan riesgos de seguridad. Implementando validaciones y medidas de seguridad, protegerás tu app y la información de tus usuarios. Es importante que te mantengas alerta, soluciones cualquier problema de seguridad que se presente rápidamente y que actualices tu app con frecuencia para reforzar su seguridad.

En Hackmetrix, ofrecemos una solución completa contra riesgos como este. Nuestro servicio de Hacking Ético identifica y corrige vulnerabilidades, mientras nuestra Plataforma de Seguridad y Cumplimiento asegura el cumplimiento normativo y protege los datos de tus usuarios. Con nosotros, previenes ataques y fortaleces la seguridad de tu aplicación.

Solicitar demo hackmetrix