Votre application de fitness est un outil de surveillance
Comment des apps comme Strava divulguent des données de localisation sensibles, des bases militaires aux porte-avions. Leçons d'OPSEC pour les développeurs.

Un journal français a récemment suivi en temps réel la position du seul porte-avions de la France, le Charles de Gaulle, l'un des actifs militaires les plus sensibles d'Europe, grâce à des données publiques issues d'applications de fitness. Des membres d'équipage faisaient des tours du pont d'envol, Strava enregistrant chaque foulée. La position, le cap et la vitesse du navire étaient visibles par quiconque savait où regarder.
Ce n'était pas un piratage. Personne n'a exploité de faille ni contourné de contrôle de sécurité. Les données étaient publiques par défaut, partagées volontairement par des utilisateurs qui ne songeaient pas à ce que leur parcours de jogging révélait sur le schéma de déploiement d'un navire de guerre à propulsion nucléaire. C'est le même type de problème qui avait exposé des bases militaires secrètes en 2018, lorsque la carte de chaleur mondiale de Strava a fait apparaître des parcours de course en Afghanistan et en Syrie. La leçon n'a toujours pas été retenue.
Le problème des données « anodines »
Prises isolément, les données de localisation issues d'applications de fitness semblent inoffensives. Vous êtes allé courir. Vous avez pédalé jusqu'au travail. Vous avez fait des longueurs à la piscine. Mais agrégées dans le temps, ces données révèlent des schémas loin d'être anodins.
- Domicile et lieu de travail. Vos points de départ et d'arrivée les plus fréquents correspondent presque certainement à votre domicile et à votre bureau. Toute application qui enregistre vos parcours de course sait où vous vivez et travaillez, même si vous n'avez jamais fourni ces informations explicitement.
- Emploi du temps. Vous courez à 6 h tous les jours de la semaine ? Les données montrent quand votre logement est vide. Vous voyagez pour le travail le mardi ? Vos absences récurrentes sont enregistrées.
- Lieux sensibles. Militaires, officiers de renseignement, fonctionnaires, dirigeants d'entreprise : quiconque travaille ou se rend dans des lieux sensibles laisse une trace. Une seule séance de sport dans une installation classifiée suffit à révéler que cette installation existe et que vous y avez accès.
- Relations sociales. Les sorties en groupe, les parcours partagés et les classements par segment révèlent qui s'entraîne avec qui. Dans un contexte de renseignement, cela peut permettre de cartographier les réseaux sociaux de personnes travaillant dans des installations sensibles.
Le cas du porte-avions est spectaculaire, mais les mêmes principes s'appliquent aux particuliers. Des harceleurs ont utilisé les données d'applications de fitness pour localiser leurs victimes. Des cambrioleurs pourraient repérer les logements inoccupés. Des employeurs pourraient surveiller les déplacements de leurs salariés en dehors des heures de travail. Ces données sont riches, granulaires et, dans bien des cas, accessibles à quiconque possède un compte gratuit.
Comment les données fuient
Les applications de fitness laissent fuiter des données de localisation par plusieurs canaux, certains évidents, d'autres plus subtils.
Profils d'activité publics
Beaucoup d'applications affichent des profils publics par défaut. Vos courses, sorties à vélo et séances de natation sont visibles par tous, avec les traces GPS tracées sur une carte. Les réglages par défaut de Strava se sont améliorés au fil des ans, mais beaucoup d'utilisateurs ont créé leur compte à une époque où ils étaient plus permissifs, et n'ont jamais revu leurs paramètres. Une recherche rapide sur Strava d'activités près d'une base militaire, d'un data center ou d'un bâtiment gouvernemental en dit souvent plus qu'il ne devrait.
Cartes de chaleur et données agrégées
Même lorsque les activités individuelles sont privées, les données agrégées peuvent révéler des schémas sensibles. La carte de chaleur mondiale de Strava, qui montre la densité de toutes les activités enregistrées, a notamment dessiné le plan de bases avancées situées en zones de conflit. Ces bases apparaissaient comme des points lumineux d'activité au milieu d'un désert vide. Les utilisateurs étaient anonymes, mais la configuration globale était sans équivoque.
Classements par segment
Les segments Strava, portions de route ou de sentier définies par les utilisateurs où chacun cherche à réaliser le meilleur temps, créent des repères géographiques persistants. Un segment sur le pont d'envol d'un porte-avions identifie chaque utilisateur qui a parcouru ce trajet précis. Même si les profils individuels sont privés, le classement du segment affiche les pseudos, les temps et les dates. Croisées avec d'autres informations publiques, ces données peuvent permettre d'identifier des personnes.
API et courtiers en données
Les applications de fitness partagent souvent leurs données avec des tiers via des API, des partenariats et des relations avec des courtiers en données. Même si vous passez votre profil en privé, vos données peuvent atteindre des assureurs santé, des annonceurs ou des agrégateurs de données qui les combinent avec d'autres jeux de données. Des données de localisation issues d'applications de fitness ont ainsi figuré dans des bases commerciales vendues aux forces de l'ordre, aux services de renseignement et à des détectives privés.
Leçons d'OPSEC pour les développeurs ordinaires
Si vous développez des applications qui traitent des données de localisation, ou toute donnée susceptible de révéler des schémas sensibles, les échecs des applications de fitness offrent des leçons concrètes.
Privé par défaut
Cela semble évident, mais la plupart des applications de fitness ne l'ont pas respecté pendant des années, car les profils publics stimulaient l'engagement et la croissance. Si votre application collecte des données de localisation, le réglage par défaut doit être privé, et le partage doit résulter d'un choix explicite de l'utilisateur. Pas « public, avec une option pour passer en privé enfouie dans les paramètres » : privé par défaut, vraiment.
// Bad: default to public, user must opt out
const userSettings = {
profileVisibility: 'public',
activityVisibility: 'public',
showOnHeatmap: true,
shareWithPartners: true
};
// Good: default to private, user must opt in
const userSettings = {
profileVisibility: 'private',
activityVisibility: 'private',
showOnHeatmap: false,
shareWithPartners: false
};
// Better: explain what each setting actually means
const privacySettings = {
profileVisibility: {
value: 'private',
description: 'Only people you approve can see your profile',
riskLevel: 'Your name and activity history are visible'
},
activityVisibility: {
value: 'private',
description: 'Only you can see your activities',
riskLevel: 'GPS routes show where you live, work, and travel'
}
};
Mettre en place des zones de confidentialité
Strava a fini par ajouter des « zones de confidentialité » : des périmètres autour des lieux sensibles où les données GPS sont masquées. C'est une bonne fonctionnalité, arrivée des années trop tard. Si votre application enregistre des données de localisation, laissez les utilisateurs définir des zones où l'enregistrement est supprimé ou les données brouillées. La plupart d'entre eux les placeront autour de leur domicile et de leur lieu de travail, ce qui élimine les schémas les plus sensibles.
Détail d'implémentation : brouiller le début et la fin d'un parcours avec un décalage aléatoire ne suffit pas si le tracé est distinctif. Quelqu'un qui fait la même boucle de 5 km chaque jour produit une forme reconnaissable, même avec les extrémités masquées. Meilleures approches : supprimer les N premiers et derniers mètres du parcours, ou aligner les extrémités sur une grille pour empêcher de déduire le lieu exact.
Penser aux attaques par agrégation
Prises individuellement, les données peuvent être anodines. Agrégées, les schémas peuvent ne pas l'être. Lorsque vous concevez des fonctionnalités qui combinent ou visualisent des données de plusieurs utilisateurs (cartes de chaleur, classements, lieux tendance), demandez-vous quels schémas émergent. Une carte de chaleur qui met en évidence une installation secrète constitue une attaque par agrégation, même si aucune donnée individuelle n'a été exposée.
La parade : fixer des seuils minimaux d'agrégation (ne pas afficher de données de chaleur pour les zones comptant moins de N utilisateurs uniques), exclure les zones géographiques sensibles et relire les visualisations pour détecter toute divulgation inattendue avant publication. Les techniques de confidentialité différentielle, qui consistent à ajouter un bruit calibré aux requêtes agrégées, peuvent aider, même si leur implémentation correcte est complexe.
Auditer le partage de vos données
Chaque endpoint d'API qui sert des données de localisation, chaque fonctionnalité d'export, chaque intégration tierce : autant de canaux par lesquels des données sensibles peuvent fuiter. Cartographiez vos flux de données. Sachez précisément où vont les données de localisation des utilisateurs, qui peut y accéder et dans quelles conditions. Si vous partagez des données avec des partenaires ou des annonceurs, soyez explicite avec vos utilisateurs sur ce que vous partagez et avec qui.
Vue d'ensemble : la minimisation des données
La question fondamentale est de savoir si votre application a réellement besoin des données qu'elle collecte. Une application de course a-t-elle besoin de coordonnées GPS toutes les secondes ? Pour la visualisation du parcours, oui. Pour le calcul de la distance et de l'allure, une résolution plus faible suffirait. Pour estimer les calories, il suffit de connaître la distance totale et le dénivelé.
La minimisation des données, c'est-à-dire ne collecter que ce dont la fonctionnalité utilisée a besoin, est la meilleure protection contre les fuites. Les données que vous ne collectez pas ne peuvent être ni piratées, ni réquisitionnées, ni vendues, ni agrégées en schémas de surveillance. Cela va à l'encontre de l'instinct de croissance qui consiste à tout collecter en décidant des usages plus tard, mais c'est la seule approche réellement robuste.
La meilleure façon de protéger les données des utilisateurs n'est pas un meilleur chiffrement ni des contrôles d'accès plus stricts. C'est de ne pas les avoir collectées.
L'industrie des applications de fitness a appris cette leçon à ses dépens, et certaines entreprises ne l'ont toujours pas retenue. Des militaires utilisent encore Strava sur les porte-avions. Des officiers de renseignement enregistrent toujours leurs courses près d'installations classifiées. Les données continuent de circuler vers des serveurs, des API et des courtiers, capables de recomposer des schémas qu'aucun utilisateur n'avait l'intention de révéler. En tant que développeurs, nous pouvons construire des systèmes qui protègent les utilisateurs de ces risques par défaut, ou des systèmes qui exploitent leur inattention. L'équipage du porte-avions n'a pris aucune décision de sécurité en ouvrant son application de course. Les développeurs de l'application, eux, en ont pris une des années plus tôt, lorsqu'ils ont choisi les paramètres par défaut.


