Aller au contenu

iOS URL Scheme Injection

Injection de Custom URL Scheme iOS

Description

Les Custom URL schemes fournissent un moyen de référencer des ressources à l'intérieur d'une application iOS. Par exemple, un utilisateur qui appuie sur une URL personnalisée dans un e-mail lance l'application dans un contexte spécifié. D'autres applications peuvent également déclencher une autre application pour la lancer avec des données de contexte spécifiques ; par exemple, une application de bibliothèque de photos peut afficher une image spécifiée.

Les Custom URL schemes offrent un vecteur d'attaque potentiel pour les applications iOS et sont, par défaut, vulnérables au Scheme Hijacking.

Par conséquent, l'application doit s'assurer de valider tous les paramètres d'URL et de rejeter toute URL malformée. De plus, limitez les actions disponibles à celles qui ne mettent pas en danger les données de l'utilisateur. Par exemple, ne permettez pas à d'autres applications de supprimer directement du contenu ou d'accéder à des informations sensibles sur l'utilisateur.

Recommandation

Pour atténuer les risques potentiels associés aux Custom URL schemes dans votre application iOS, considérez ce qui suit :

  1. Utiliser les Universal Links : Les Universal Links vous permettent de créer une association bidirectionnelle entre votre application et votre site Web et de spécifier les URL que votre application gère, empêchant ainsi d'autres applications de les détourner.

  2. Valider les paramètres d'URL : Implémentez des contrôles de validation approfondis pour tous les paramètres d'URL reçus par votre application. Assurez-vous que les paramètres respectent les formats attendus et ne contiennent aucune charge utile malveillante ni de données inattendues.

  3. Limiter les actions disponibles : Évaluez l'impact potentiel de chaque action déclenchée par un Custom URL scheme et restreignez l'accès aux actions qui ne posent pas de risque pour les données des utilisateurs ni ne compromettent la sécurité de l'application.

Liens

Normes

  • 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