iOS URL Scheme Injection
Inyección de Custom URL Scheme en iOS
Descripción
Los Custom URL schemes proporcionan una forma de hacer referencia a recursos dentro de una aplicación de iOS. Por ejemplo, los usuarios que tocan una URL personalizada en un correo electrónico inician la aplicación en un contexto especificado. Otras aplicaciones también pueden activar otra aplicación para iniciarla con datos de contexto específicos; por ejemplo, una aplicación de biblioteca de fotos podría mostrar una imagen especificada.
Los Custom URL schemes ofrecen un vector de ataque potencial para las aplicaciones de iOS y son, por defecto, vulnerables al Scheme Hijacking.
Por lo tanto, la aplicación debe asegurarse de validar todos los parámetros de la URL y descartar cualquier URL mal formada. Además, limite las acciones disponibles a aquellas que no pongan en riesgo los datos del usuario. Por ejemplo, no permita que otras aplicaciones eliminen contenido directamente ni accedan a información confidencial sobre el usuario.
Recomendación
Para mitigar los riesgos potenciales asociados con los Custom URL schemes en su aplicación de iOS, considere lo siguiente:
-
Utilizar Universal Links: Los Universal Links le permiten crear una asociación bidireccional entre su aplicación y su sitio web y especificar las URL que maneja su aplicación, evitando que otras aplicaciones las secuestren.
-
Validar los parámetros de URL: Implemente controles de validación exhaustivos para todos los parámetros de URL recibidos por su aplicación. Asegúrese de que los parámetros se adhieran a los formatos esperados y no contengan payloads maliciosos o datos inesperados.
-
Limitar las acciones disponibles: Evalúe el impacto potencial de cada acción desencadenada por un Custom URL scheme y restrinja el acceso a las acciones que no representen un riesgo para los datos del usuario o comprometan la seguridad de la aplicación.
Enlaces
Estándares
- OWASP_MASVS_L1:
- MSTG_PLATFORM_2
- OWASP_MASVS_L2:
- MSTG_PLATFORM_2
- CWE_TOP_25:
- CWE_20
- GDPR:
- ART_5
- ART_32
- PCI_STANDARDS:
- REQ_2_2
- REQ_6_2
- REQ_6_3
- REQ_11_3
- OWASP_MASVS_v2_1:
- MASVS_CODE_4
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- HIPAA_CONTROLS:
- SECURITY221
- SECURITY212
- SECURITY213