Aller au contenu principal

Pentest Mobile : Application React Native

Startup
5 jours
Android (React Native)
Pentest Mobile

Contexte de la mission

Le défi

Contexte

Un éditeur d'application mobile avait besoin d'une validation sécurité avant un lancement majeur.

L'application traitait des données sensibles : profils, géolocalisation, paiements. Aucune revue de sécurité n'avait été réalisée.

Objectifs

  • Valider la sécurité de l'application avant le lancement majeur
  • Vérifier la protection des données sensibles (profils, paiements, géolocalisation)
  • Identifier les failles dans le code et les communications réseau

Déroulement

Découvertes clés

Périmètre testé

  • Décompilation de l'application et examen du code
  • Interception du trafic réseau
  • Tests de l'API backend
  • Vérification du stockage local des données
  • Revue des mécanismes de connexion

Méthodologie

Tests selon le standard international de sécurité mobile (OWASP MASTG) :

  • Extraction et lecture du code de l'application (décompilation)
  • Interception du trafic réseau
  • Analyse du stockage local sur le téléphone
Critique

Clés d'accès aux services (paiement, cartographie) visibles dans le code de l'application

Moyen

Données personnelles et mots de passe stockés sans protection sur le téléphone

Élevé

Aucune limite sur les tentatives de connexion, permettant de deviner les codes d'accès

Critique

En modifiant un identifiant dans l'API, un utilisateur pouvait consulter les données d'autres comptes

Moyen

Code source de l'application non obfusqué, facilement lisible après décompilation

Moyen

Journaux de débogage actifs en production, exposant des informations techniques sensibles

Résultats

Bilan et recommandations

Bilan

16 vulnérabilités : 2 critiques, 1 élevée, 6 moyennes, 7 faibles

La faille la plus critique permettait à n'importe quel utilisateur de consulter les données d'autres comptes en modifiant un simple identifiant dans les requêtes API.

Les clés d'accès aux services de paiement étaient également récupérables directement dans le code de l'application.

Recommandations

  • Déplacer les clés d'accès sur le serveur (jamais dans l'application)
  • Chiffrer les données stockées sur le téléphone
  • Limiter le nombre de tentatives de connexion
  • Vérifier les droits d'accès côté serveur pour chaque requête API
  • Obfusquer le code source avant publication (non activé par défaut sur React Native)

Enseignements

Leçons apprises

  • Les clés API en dur dans le code React Native sont facilement extractibles
  • Le stockage local non chiffré est la faille la plus courante sur les applications mobiles
  • L'API backend est souvent le maillon faible quand elle n'est pas testée en parallèle de l'app

Continuité

Prochaines étapes

  • Pentest de l'API backend approfondi
  • Mise en place de contrôles d'accès stricts sur chaque endpoint API
  • Intégration de tests de sécurité automatisés dans le cycle de développement (accompagnement cybersécurité)

Autres études de cas

Découvrez nos autres interventions en cybersécurité.

Un projet similaire ?

Contactez-nous pour un premier échange gratuit et un devis adapté à vos besoins.