iOS App Extensions

Reading time: 3 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Les extensions d'application améliorent la fonctionnalité des applications en leur permettant d'interagir avec d'autres applications ou le systÚme, fournissant des fonctionnalités ou du contenu personnalisés. Ces extensions incluent :

  • Clavier personnalisĂ© : Offre un clavier unique dans toutes les applications, remplaçant le clavier iOS par dĂ©faut.
  • Partager : Permet de partager sur les rĂ©seaux sociaux ou avec d'autres directement.
  • Aujourd'hui (Widgets) : Fournit du contenu ou effectue des tĂąches rapidement depuis la vue Aujourd'hui du Centre de notifications.

Lorsqu'un utilisateur interagit avec ces extensions, comme le partage de texte depuis une application hÎte, l'extension traite cette entrée dans son contexte, utilisant les informations partagées pour effectuer sa tùche, comme détaillé dans la documentation d'Apple.

Considérations de sécurité

Les principaux aspects de sécurité incluent :

  • Les extensions et leurs applications contenant communiquent via la communication inter-processus, et non directement.
  • Le widget Aujourd'hui est unique en ce sens qu'il peut demander Ă  son application de s'ouvrir via une mĂ©thode spĂ©cifique.
  • L'accĂšs aux donnĂ©es partagĂ©es est autorisĂ© dans un conteneur privĂ©, mais l'accĂšs direct est restreint.
  • Certaines API, y compris HealthKit, sont interdites aux extensions d'application, qui ne peuvent Ă©galement pas dĂ©marrer de tĂąches de longue durĂ©e, accĂ©der Ă  la camĂ©ra ou au microphone, sauf pour les extensions iMessage.

Analyse statique

Identification des extensions d'application

Pour trouver des extensions d'application dans le code source, recherchez NSExtensionPointIdentifier dans Xcode ou inspectez le bundle de l'application pour des fichiers .appex indiquant des extensions. Sans code source, utilisez grep ou SSH pour localiser ces identifiants dans le bundle de l'application.

Types de données pris en charge

Vérifiez le fichier Info.plist d'une extension pour NSExtensionActivationRule afin d'identifier les types de données pris en charge. Cette configuration garantit que seuls les types de données compatibles déclenchent l'extension dans les applications hÎtes.

Partage de données

Le partage de données entre une application et son extension nécessite un conteneur partagé, configuré via "App Groups" et accessible via NSUserDefaults. Cet espace partagé est nécessaire pour les transferts en arriÚre-plan initiés par les extensions.

Restriction des extensions

Les applications peuvent restreindre certains types d'extensions, en particulier les claviers personnalisés, garantissant que le traitement des données sensibles est conforme aux protocoles de sécurité.

Analyse dynamique

L'analyse dynamique implique :

  • Inspection des Ă©lĂ©ments partagĂ©s : AccĂ©dez Ă  NSExtensionContext - inputItems pour voir les types de donnĂ©es et leurs origines partagĂ©es.
  • Identification des extensions : DĂ©couvrez quelles extensions traitent vos donnĂ©es en observant les mĂ©canismes internes, comme NSXPCConnection.

Des outils comme frida-trace peuvent aider à comprendre les processus sous-jacents, en particulier pour ceux qui s'intéressent aux détails techniques de la communication inter-processus.

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks