Sur mon expérience, auditer les permissions des applications iOS et Android est l'une des étapes les plus efficaces pour détecter et prévenir la collecte abusive de données. Ce n'est pas réservé aux experts : avec quelques outils simples et une méthodologie claire, on peut comprendre ce qu'une appli peut réellement faire, repérer les comportements suspects et réduire significativement les risques pour la vie privée.
Pourquoi auditer les permissions ?
Les permissions sont le premier niveau d'accès qu'une application demande à votre appareil. Elles définissent ce que l'appli peut lire ou contrôler : localisation, microphone, photos, contacts, capteurs, etc. Mais une permission acceptée ne signifie pas automatiquement "usage légitime" — c'est souvent une porte d'entrée pour une collecte excessive ou détournée. Auditer, c'est vérifier ces portes et s'assurer qu'elles sont ouvertes uniquement quand c'est nécessaire.
Comprendre les permissions : iOS vs Android
Les deux plateformes gèrent les permissions différemment et ont des niveaux de contrôle variés.
| Aspect | iOS | Android |
|---|---|---|
| Modèle | Permissions à la demande + étiquettes de confidentialité App Store | Permissions déclaratives (AndroidManifest) + runtime permissions |
| Contrôle granularité | Très granulaire pour certaines ressources (ex. photo : accès sélectif) | Granularité variable selon la version d'Android (plus fine sur Android 10+) |
| Outils natifs pour auditer | Rapport de confidentialité d’app (iOS 15+), Console macOS, Configuration Profils/Mobile Device Management | Paramètres de l’app, ADB, Android Studio, Play Protect |
Étapes pratiques pour auditer une appli
- Relever les permissions demandées : Commencez par la fiche sur l’App Store / Play Store et les réglages de l’app sur votre téléphone. Notez toutes les permissions demandées (accès localisation, photos, contacts, microphone, stockage, SMS, etc.).
- Comparer l’usage annoncé : Lisez la description et la politique de confidentialité. Demandez-vous : cette appli a-t-elle vraiment besoin de cet accès pour offrir sa fonctionnalité principale ?
- Vérifier les étiquettes de confidentialité (iOS) : Sur iOS, la section « Confidentialité » de la fiche App Store indique quelles données l’app collecte (liées ou non à vous). Ce n’est pas parfait, mais c’est un bon indicateur.
- Contrôler l’accès runtime : Sur Android, surveillez les permissions runtime (Paramètres > Applications > Autorisations). Sur iOS, vérifiez Paramètres > Confidentialité pour chaque type de ressource.
- Tester en conditions réelles : Utilisez l’appli et observez quand elle demande une permission. Si une demande arrive sans rapport évident avec la fonctionnalité utilisée, c’est suspect.
Outils pour aller plus loin
Voici les outils que j'utilise régulièrement pour approfondir :
- Android Debug Bridge (ADB) : Pour lister les permissions effectives d’une appli, dump des intents, examiner les logs (logcat), et contrôler l’app via la ligne de commande.
- Android Studio / App Inspector : Permet d’explorer l’arborescence, les services, et inspecter les composants d’une appli (utile pour les APK en développement).
- Exodus Privacy : Service et application qui identifie les traceurs et permissions sensibles dans les APK publics.
- NetGuard / TrackerControl / Blokada : Bloqueurs locaux qui permettent de voir et bloquer les connexions réseau d’une appli sans root.
- Wireshark, mitmproxy, Charles, Burp Suite : Pour intercepter le trafic réseau. Sur mobile, on configure un proxy (et on installe les certificats nécessaires) pour analyser requêtes et destinations.
- Console macOS & Device Console : Pour iOS, la console permet de lire les logs systèmes et d’identifier appels réseau, erreurs et accès aux capteurs.
- App Store / Play Store Reports : Les fiches et commentaires révèlent parfois des indices sur comportements abusifs (par ex. notifications intempestives, pop-ins publicitaires).
Ce que je recherche quand j’analyse une appli
- Permission disproportionnée : Une appli lampe de poche demandant accès aux contacts ou à la localisation en continu ? C’est un mauvais signe.
- Appels réseau vers domaines non liés : Traces de connexions vers serveurs publicitaires, trackers ou domaines inconnus. Même si des SDK publicitaires sont courants, il faut connaître l’étendue.
- Utilisation du microphone/caméra en arrière-plan : Sur iOS, l'indicateur LED et le rapport d’app peuvent alerter. Sur Android, vérifier l’origine des services actifs.
- Collecte d’identifiants : IDFA, GAID, ou autres identifiants persistants peuvent faciliter le traçage multi-apps.
- Permissions combinées : Certaines corrélations sont révélatrices, par ex. localisation + accès stockage + envoi réseau fréquent.
Scénarios concrets et remédiations
Voici des situations que j’ai rencontrées et comment je les ai traitées :
- Appli météo demandant localisation en permanence : Je désactive la localisation en continu, je limite à "lors de l'utilisation" ou je définis une géolocalisation approximative (Android 12+ / iOS 14+). Si l’app insiste, je la remplace par une alternative transparente.
- Jeux gratuits avec publicités intrusives : Analyse du trafic via mitmproxy a montré envoi d’ID publicitaires à plusieurs réseaux. Solution : bloquer ces domaines via NetGuard ou préférer une version payante/sans pub.
- Appli de scanner de documents demandant accès aux contacts : Aucune justification fonctionnelle. Je retire la permission et la signale via le Play Store / App Store si le comportement persiste.
Checklist rapide pour auditer une appli (à suivre)
- Consulter la fiche App Store / Play Store (permissions & étiquette confidentialité).
- Vérifier les permissions dans les réglages et limiter au minimum nécessaire.
- Tester l’appli en mode réseau monitoré (proxy ou bloqueur local).
- Analyser logs (logcat pour Android, Console pour iOS) pour repérer accès suspects.
- Bloquer domaines de tracking identifiés via un bloqueur local ou pare-feu.
- Mettre à jour l’appli et le système : correctifs de sécurité et meilleures pratiques de permission.
- Si suspicion persistante : désinstaller, signaler au store et rechercher une alternative.
Bonnes pratiques à appliquer au quotidien
Pour réduire le risque de collecte abusive sans sacrifier l’usage :
- Donner les permissions "au moment" (only while using) plutôt que "toujours".
- Utiliser la localisation approximative quand ce n’est pas critique.
- Éviter de donner un accès permanent au microphone ou à la caméra.
- Préférer des applications open-source ou réputées, vérifier les avis et la politique de confidentialité.
- Activer les protections natives : App Tracking Transparency (iOS), Privacy Dashboard (Android 12+) et mises à jour automatiques.
Auditer des permissions demande un peu d'investissement, mais c'est une compétence accessible et très utile. En combinant vigilance sur les permissions, utilisation d’outils de monitoring réseau et contrôle régulier de vos applications, vous pouvez limiter considérablement la collecte abusive et reprendre le contrôle de vos données.