application dédiée

Application dédiée : Fuite de données pour les Pass Pass Easy Card

La société Transpole proposait une application dédiée aux transports dans les Hauts de France. Problème, les données n’étaient pas chiffrées et pouvaient être interceptées. Des étudiants Lillois ont tenté d’alerter la société depuis le mois de janvier 2018.

Avez-vous confiance dans l’application dédiée installée sur votre smartphone ? Il se nomme T.C., un étudiant Lillois qui évolue sur la toile sous le pseudonyme de bla5r. Le jeune homme a découvert, en janvier 2018, une faille dans l’application proposée par la société de transport Transpole. L’application montrée du doigt : Pass Pass Easy Card. L’étudiant a contacté ZATAZ à la même époque. Il nous expliquait alors que l’outil ne chiffrait aucune information. Bilan, l’identifiant du client, mais aussi son mail, mot de passe, date de naissance, téléphone, … s’interceptaient sans difficulté. Transpole avait été alertée, le 25 janvier, sans succès.

Transpole est un opérateur de transport public de la ville de Lille, dans le nord de la France. La société est une filiale de Keolis, le plus grand groupe de transport français du secteur privé. Il y a quelques mois, l’entreprise a lancé sa toute nouvelle application Android, appelée Pass Pass Easy Card. Celui-ci implémente une fonctionnalité assez sympa : le rechargement en ligne de la carte.

Il vous suffit de passer votre carte derrière votre smartphone (sur le lecteur RFID), de choisir votre plan de rechargement, d’entrer (naïvement) les détails de votre carte de crédit, et vous avez terminé ! Magique, n’est-ce pas ? Vraiment utile … Mais en fait, il n’y a aucune raison de donner les détails de sa carte de crédit à une application relativement nouvelle. Alors quand les gens normaux pensent “Cool, pas besoin de bouger mon cul pour recharger ma carte“, il faut plutôt penser “Cool, mais gardez votre calme et jetons un coup d’œil aux mécanismes de sécurité de l’application avant“.

T.C. était un peu méfiant au sujet de cette application, et il avait raison.

Analyse statique

Se plonger dans l’implémentation de l’application en faisant quelques trucs de base avec des outils classiques que tous les gars d’Android RE connaissent : un décompilateur Java (JADX) récupérer un pseudo-code Java “lisible par l’homme” afin d’effectuer une analyse statique. En d’autres termes, pour lire et comprendre le fonctionnement de l’application, et l’outil APKTool, qui vous donne une sortie de code. Cet outil est très utile, puissant. Il permet de patcher et de reconditionner l’APK (l’application). Donc, fondamentalement, vous êtes en mesure de modifier le manifeste. Capable aussi d’injecter votre propre code dans l’application cible. Très utile pour le déboguer.

Tout d’abord, j’ai cherché des URL intégrées. J’en ai trouvé quelques uns, mais des lignes de code grossières ont attiré mon attention” me confirme l’étudiant. “comme par exemple les appels de fonction de journalisation interne ou la création de fichier temporaire avec le nom complet d’un développeur”. Pas vraiment réconfortant. Notez que le nom du package de l’application est “keolis.example.gse.keolislecteurv1“. Un exemple dans le Play Store ? Sérieusement ? OK …

Analyse dynamique

Ensuite, j’ai logiquement démarré l’analyse dynamique” explique-t-il. “Il consiste à observer globalement les comportements des applications, mais ici je me suis concentré uniquement sur les interactions réseau“. La mise en place d’un proxy HTTP (Burp). Toutes les demandes d’API sont chiffrées avec SSL/TLS grâce à HTTPS. Bien sûr, aucune protection proxy n’est implémentée dans l’application (comme l’épinglage SSL), donc aucun correctif préliminaire n’est requis pour inspecter le trafic HTTP entrant et sortant. inquiétant ! “J’ai d’abord capturé tout le trafic lors d’une authentification de l’utilisateur. Selon la commande de temps, j’ai inspecté chaque demande et le tout premier a immédiatement attiré mon attention.

Cette requête est la deuxième requête de l’API, elle intervient juste après celle de l’authentification. Avec cet appel, l’application est capable de récupérer les informations stockées dans la base de données, comme votre prénom, votre nom, votre numéro de téléphone, votre adresse e-mail, votre dernière connexion et enfin votre mot de passe en clair … Oui, vous avez bien lu ! Le mot de passe en clair ! “Je ne sais vraiment pas si vous pouvez légalement le faire, mais éthiquement vous ne pouvez pas“. s’alarme T.C.

A noter qu’aucun identifiant de session n’a été envoyé avec la requête API HTTP. Un mécanisme assez effrayant… pour nos données (et celle de ma fille titulaire d’une carte, NDR). A noter qu’au moins un autre étudiant Lillois a découvert la fuite de données. La Voix du Nord s’en fait l’écho. L’application a été coupée du web ce vendredi après-midi. Une cellule de crise a été lancée du côté de chez Keolis. ZATAZ a alerté la CNIL. Bla5r va présenter, prochainement sur son blog, l’aspect technique de cette fuite de données.

* Note : Si vous ne savez rien sur l’inversion de l’application Android, je vous conseille de lire https://www.evilsocket.net/2017/04/27/ Android-Applications-Reversing-101/

Poster un commentaire