- Une faille de sécurité critique a été découverte dans l’app de rencontre Cerca
- Le code OTP était exposé dans la réponse, ce qui permettait à n’importe qui d’accéder à un compte en connaissant seulement le numéro de téléphone
- Plusieurs endpoints API ouverts sans authentification permettaient une fuite facile de données personnelles
- Des informations sensibles sur les utilisateurs, comme leurs préférences sexuelles, le contenu des messages et leurs pièces d’identité, ont été massivement exposées
- Malgré un signalement responsable du chercheur, le service a fourni une réponse inadaptée et des notifications insuffisantes
L’importance pour les startups de prendre la sécurité au sérieux
- Ces derniers temps, de nombreuses startups négligent la sécurité en se précipitant vers leur lancement sur le marché
- Bien qu’il s’agisse d’une app de rencontre concentrant des données personnelles, le manque de maturité dans le développement et l’exploitation a exposé les utilisateurs à des risques
Découverte de la faille et procédure de notification
- Le 23 février 2025, un e-mail a été envoyé à Cerca pour décrire la faille de sécurité et les problèmes associés
- Le 24 février, une visioconférence a permis de discuter en détail de la faille, des mesures correctives et de la suite de la procédure
- L’équipe de Cerca a indiqué avoir pris la mesure de la gravité, promis une correction rapide et annoncé qu’elle préviendrait les utilisateurs
- Plusieurs demandes de mise à jour ont ensuite été envoyées, mais au 21 avril, aucune réponse ni communication n’avait été fournie
- Une vérification indépendante a montré que la faille avait bien été corrigée
Faille OTP et processus de piratage très simple
- Lors de la connexion à l’application, le mot de passe à usage unique (OTP) apparaissait tel quel dans la réponse réseau
- Un attaquant pouvait ainsi accéder rapidement et facilement à n’importe quel compte en connaissant seulement le numéro de téléphone
Accès aux endpoints API et fuite d’informations
- Il a été constaté qu’il suffisait de renseigner l’en-tête de version de l’app pour accéder à tous les chemins API
- L’endpoint
/docs exposait l’intégralité de la documentation OpenAPI
- À l’aide d’outils comme Burp Suite, il était possible de contrôler les API via l’injection automatique des en-têtes de l’app et des tokens
- Certains endpoints ne modifiaient que la logique métier, mais les endpoints essentiels renvoyaient gravement des données personnelles
- Avec
user/{user_id} et d’autres endpoints, il était possible d’obtenir des informations personnelles, des numéros de téléphone, et même de prendre le contrôle de comptes
Exposition massive de données personnelles et de pièces d’identité
- L’endpoint de données personnelles exposait massivement des PII telles que le genre, la ville, la date de naissance, l’e-mail universitaire et des informations d’identité
- En particulier, des champs liés à l’identité comme
national_id_verified permettaient d’accéder à des fichiers sensibles, notamment des images de passeports et de cartes d’identité
- Un script d’attaque a permis d’identifier 6017 utilisateurs, dont 207 avaient même renseigné des informations de pièce d’identité
- Parmi eux figuraient aussi certains comptes indiquant une affiliation à l’université Yale
- D’après l’Instagram officiel de Cerca, cela correspond à 10�00 utilisateurs lors de la première semaine
Risques concrets et gravité du problème
- La fuite d’informations extrêmement sensibles comme les préférences sexuelles, le contenu des conversations et les pièces d’identité créait un risque majeur de harcèlement, d’usurpation d’identité et de chantage
- Cerca indiquait respecter les standards du secteur, notamment en matière de chiffrement, mais cela ne correspondait pas à la réalité de l’exploitation
- Les utilisateurs ne pouvant pas le vérifier eux-mêmes, une gestion active et responsable de la sécurité par l’éditeur de l’app est indispensable
- En pratique, il est aussi possible qu’un grand nombre d’acteurs non identifiés aient déjà exfiltré massivement des données personnelles
Conclusion et nécessité d’une culture de sécurité responsable
- L’exploitation d’une app si vulnérable qu’elle peut être piratée par presque n’importe qui constitue un grave problème de société
- Si la protection des données des utilisateurs n’est pas la priorité absolue, des dommages peuvent survenir en temps réel
- Le cas de Cerca, dont la réponse au signalement du chercheur en sécurité et l’information aux utilisateurs ont été insuffisantes, doit servir d’avertissement
- Pour construire un Internet plus sûr, l’établissement de dispositifs de sécurité doit être la priorité absolue pour tous les éditeurs
1 commentaires
Réactions sur Hacker News
Même en tenant compte du fait que cette app semble être le produit assez débutant d’étudiants, je pense qu’il faut faire de son mieux sur la sécurité et la communication. Cela dit, quand on voit de grosses boîtes pour adultes financées par de grands VC se heurter aux mêmes problèmes et réagir de façon similaire, je ne pense pas qu’il faille être excessivement dur avec des étudiants. Je partage le lien de l’article
En tant que développeur dans une petite entreprise, je m’inquiète parfois de ma responsabilité personnelle. Beaucoup d’entreprises opèrent hors de secteurs soumis à des réglementations comme PCI ou HIPAA. Dans les petites structures, la sécurité est perçue non pas comme un enjeu de toute l’organisation, mais comme un problème d’ingénierie. L’équipe produit se concentre sur les fonctionnalités, les PM sur le planning, la QA sur les bugs, et rares sont ceux qui parlent de sécurité. L’ambiance, c’est que les ingénieurs n’ont qu’à faire les tâches qui leur sont assignées. Si un ingénieur essaie aussi de s’occuper de sécurité, il peut même se faire reprocher de ralentir les choses par les PM ou d’autres. Et on entend toujours les mêmes phrases : « Ça va prendre combien de temps ? », « Quelle est la probabilité que ça arrive vraiment ? », « Sortons vite le MVP et on corrigera plus tard », etc. Du coup, en tant que salarié, je finis par faire ce que l’entreprise me demande. Mais je m’inquiète régulièrement de savoir si, en cas de piratage ou de fuite puis de procès, je pourrais me retrouver seul à porter la responsabilité en tant qu’ingénieur qui « aurait dû mieux savoir »
Pour réduire la responsabilité juridique du chercheur, je pense qu’il suffirait de créer un autre compte, ou d’obtenir l’accès avec le consentement d’un ami via un profil créé à cette fin. Il n’y a pas besoin d’aspirer réellement les données : par exemple, si mon id est 12345 et celui de mon ami 12357, on peut démontrer qu’on accède au profil d’un autre compte avec les id intermédiaires. Comme beaucoup l’ont déjà dit, il n’est pas nécessaire d’accéder aux données personnelles de milliers de personnes ; il suffit d’établir et de divulguer l’existence de la faille
Ce billet lui-même me semble assez confus. Il explique que l’API qui reçoit l’OTP (mot de passe à usage unique) est si simple que l’OTP est renvoyé directement dans la réponse du serveur, ce qui permettrait à n’importe qui d’accéder à un compte s’il connaît le numéro de téléphone. Si l’API est juste de la forme otp/numéro-de-téléphone et que l’OTP revient dans la réponse, alors il suffit visiblement de deviner le numéro pour obtenir aussi le code. Ensuite, il dit avoir énuméré les ID utilisateurs par script, en s’arrêtant après 1 000 ID vides consécutifs, ce qui lui a permis d’identifier 6 117 utilisateurs, 207 pièces d’identité et 19 étudiants de Yale. Mais accéder ainsi aux données personnelles d’autrui sans consentement ressemble, même à plus petite échelle, à l’affaire weev et du piratage d’AT&T qui l’a mené en prison. Ce type de recherche est juridiquement risqué, et il est inquiétant que l’auteur semble méconnaître un environnement légal qui ne protège pas les chercheurs en sécurité
J’ai eu une expérience similaire : en voulant signaler un bug sur une autre app de rencontre, je n’arrivais pas à les contacter, alors j’ai modifié le profil du fondateur pour y mettre « contactez-moi », et ils l’ont restauré via une sauvegarde. Quelques années plus tard, j’ai revu cette app dans une pub Instagram et j’ai réessayé : exactement la même faille existait toujours. N’importe qui connaissant simplement l’endpoint API peut obtenir les privilèges admin, ainsi que l’accès à tous les messages et à tous les matchs. J’hésite à reprendre contact
Je pense qu’il faut vraiment réfléchir à deux fois avant de collecter dans une app des données sensibles comme un passeport ou une adresse. Ce n’est pas quelque chose qu’on peut balayer d’un revers de main en disant « c’est une app faite par des étudiants »
Le fait de renvoyer l’OTP tel quel dans la réponse de l’API est tellement absurde. Je ne comprends pas pourquoi
Quelqu’un partage un lien vers un autre article lié dans le Yale Daily News
J’aimerais qu’il existe des lois traitant les données personnelles comme des déchets nucléaires. En cas de fuite, non seulement l’entreprise devrait faire faillite, mais les responsables devraient aussi se retrouver en difficulté sur le plan judiciaire. Aujourd’hui, il est non seulement trop facile de collecter les données des utilisateurs, mais en plus, après une fuite, il suffit de s’excuser et de passer à autre chose
Je viens seulement de découvrir l’outil Charle's Proxy sur iOS. Par le passé, je faisais du pentest en recherchant directement des chaînes dans les binaires d’apps. Ça a l’air d’être d’une aide énorme pour analyser des apps iOS