Cette série d’articles aborde les points les plus importants de la sécurité des applications mobiles, quelle que soit la plateforme (iOS, Android ou autre).
L’objectif est de démystifier les différents aspects de la sécurité mobile, avec des mots très simples.

Ce second épisode présente les failles liées au stockage non sécurisé des données.

Une application mobile peut stocker différents types d’informations :

  • Données de géolocalisation
  • Transactions
  • Identifiants ou tokens d’authentification
  • Données personnelles (PII)
  • Données métier
  • Données mises en cache (stockage temporaire)

Comment les données sont-elles stockées sur l’application?

En fonction de la plateforme (iOS, Android…), différents moyens de stockage peuvent être utilisés. Base de données, fichiers plats, fichiers XML, fichiers Plist, carte de stockage type SD… Des emplacements différents pour des contextes différents.
De plus, les données peuvent être cryptées, plus ou moins efficacement.

Décider quelles données vont être stockées sur l’appareil est une étape cruciale. Même lorsqu’un utilisateur est digne de confiance, son appareil mobile peut être perdu ou volé. Les données qui y sont stockées sont alors potentiellement exposées.

Par ailleurs, un appareil mobile n’est pas nécessairement sécurisé, puisque de nombreux utilisateurs déverrouillent (jailbreak ou root) leur appareil afin d’accéder à des fonctionnalités et des logiciels supplémentaires. Ce procédé supprime une couche de sécurité importante.

Exemples d’attaques

Premier exemple : l’utilisateur perd son smartphone.

La personne qui récupère le mobile est expérimentée en hacking et connecte l’appareil à son ordinateur, en utilisant des outils spécifiques lui permettant d’accéder à la mémoire et aux fichiers du système.

En scrutant les fichiers se trouvant dans les applications, cette personne trouve des informations personnelles mal protégées et des informations de type carte bancaire qui ont été stockées pour des achats ultérieurs. Les données sont cryptées avec un algorithme faible, ce qui les rend facilement accessibles.

Sécurité application mobile - stockage non sécurisé

Deuxième exemple : l’utilisateur possède un appareil jailbreaké, ce qui signifie que certaines applications possèdent des droits et permissions étendues.

L’utilisateur a installé des applications depuis des stores non officiels, dont une application contenant un malware.

Le malware scanne les fichiers présents sur l’appareil, recherche des données intéressantes (données personnelles, numéro de sécurité sociale, identifiants …) et vise particulièrement certaines applications vulnérables qui n’ont pas été corrigées.

Le malware extrait les données depuis le mobile, et les envoie vers un serveur malveillant.

Sécurité application mobile - stockage non sécurisé

Sécuriser les données

Pendant la phase de conception d’une application mobile, une étape cruciale consiste à définir clairement quelles sont les données à stocker dans l’application elle-même, pourquoi, et comment.
Les données stockées sur l’appareil doivent être considérées comme “en danger” et seul un besoin impératif peut justifier ce stockage.

Les frameworks de développements/APIs fournissent différents moyens techniques pour stocker les données, qui doivent être convenablement choisis en fonction de la nature des données que vous devez stocker.

S’il y a un réel besoin de stocker les données sur le terminal mobile, il faut alors évaluer le niveau de sécurité proposé par les différentes techniques et éventuellement ajouter une couche de cryptage complémentaire.

Les appareils mobiles doivent être considérés comme des éléments pouvant disparaître facilement, ou être utilisés par d’autres personnes que leurs propriétaires, donc des portes d’entrées privilégiées pour des cyberattaques.