Intent Spoofing
Usurpation d'intention (Intent Spoofing)
Description
L'usurpation d'intention (Intent Spoofing) consiste à envoyer une intention vers les composants d'une application (Exported Activity, Broadcast Receiver, Content Provider, Service) pour obtenir un accès non autorisé.
Cet accès peut viser différents objectifs tels que la modification non autorisée de données, la fuite d'informations, l'injection d'entrées non fiables, etc.
Recommandation
Pour limiter l'exposition à ce type d'attaque, prenez en compte les recommandations suivantes :
- Évitez d'exporter des composants à moins qu'ils ne soient spécifiquement conçus pour traiter les requêtes d'applications non fiables.
- Sachez que la déclaration d'un filtre d'intention (intent filter) exporte automatiquement le composant, l'exposant ainsi à un accès public.
- Évitez de placer des actions critiques modifiant l'état dans des composants exportés.
- Si un seul composant gère à la fois les requêtes inter-applications et intra-applications, le développeur devrait envisager de diviser ce composant en composants distincts.
- Si un composant doit être exporté (par exemple, pour recevoir des diffusions système), alors le composant doit vérifier dynamiquement l'identité de l'appelant avant d'effectuer toute opération.
- Exigez les permissions Signature ou SignatureOrSystem pour limiter l'exposition du composant à un ensemble d'applications fiables.
- Vérifiez l'identité de l'appelant avant de renvoyer les valeurs de retour des composants exportés car elles peuvent divulguer des données privées.
Liens
- DRD06. Vérifier l'appelant des intentions avant d'agir sur elles
- Contrôle d'accès inapproprié (CWE-284)
- Usurpation d'intention (CAPEC-502)
- Analyse de la communication inter-applications sous Android
Normes
- CWE_TOP_25:
- CWE_276
- HIPAA_CONTROLS:
- SECURITY221
- SECURITY212
- SECURITY213
- PCI_STANDARDS:
- REQ_6_2
- REQ_6_3
- REQ_7_3
- REQ_11_3
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5