« Des injections SQL sur mon téléphone Android ? Ça va trop loin... ». Il y a quelques mois, cela aurait probablement été notre réaction à la lecture de ce titre.Dans le cadre d’un projet, nous nous sommes intéressés à la gestion du stockage des données au sein d'une application Android. Après un rapide coup d'œil, nous nous sommes rendu compte que des efforts importants ont été mis en œuvre pour protéger les données d'une application contre la curiosité d'autres applications installées sur le même téléphone. Et que comme tout mécanisme de sécurité, certaines vulnérabilités permettent d'exfiltrer des données personnelles sans avoir les permissions nécessaires, parfois même dans les composants Google...
1. ContentProvider : description technique
Lorsque nous installons une application sur notre téléphone Android, celle-ci peut, suivant ses besoins, stocker des données dans un espace qui lui est réservé et qui n'est pas accessible aux autres applications. Ce stockage peut avoir plusieurs finalités :
- Stocker des données de manière persistante (paramètres de configuration, données de l’utilisateur, etc.) afin que l’application puisse assurer sa fonction dans le temps et ce, malgré les redémarrages de l’application et du téléphone.
- Assurer un fonctionnement en mode « déconnecté » en cas de perte du réseau, notamment pour les applications de type client/serveur.
Le système Android fournit un élément standard prévu à cet effet : le ContentProvider. Celui-ci permet à la fois de stocker de l’information mais également, si l'application le souhaite, de la mettre à disposition des autres applications installées sur le téléphone.
1.1....
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première