Suivi de localisation via les publicités intégrées aux apps : tout le monde peut connaître ma position
(timsh.org)- Après avoir repéré 3 apps iPhone installées dans la liste de fuite de Gravy Analytics, l’auteur a directement capturé le trafic publicitaire du jeu gratuit Stack pour retracer comment la position et l’IP sont envoyées vers l’extérieur
- Même avec les services de localisation et le suivi des apps désactivés, les requêtes Unity Ads contenaient la latitude et la longitude, l’IP, un horodatage, l’opérateur, l’IDFV, des valeurs de consentement, etc.
- Les requêtes de Facebook, d’adjust.com et de configuration Unity reçoivent aussi des signaux d’appareil comme l’IP, l’horodatage, la luminosité de l’écran, la batterie ou la mémoire, ce qui permet de mieux cerner un utilisateur même sans identifiant publicitaire
- L’IDFA était vidé quand le refus du suivi était activé, mais l’IDFV restait identique entre les apps du même éditeur, et l’IP, la position, l’user agent et plusieurs identifiants continuaient d’alimenter l’écosystème publicitaire
- Si l’on combine les données d’enchères publicitaires, les données de localisation MAID et des jeux de données
MAID <> PII, l’historique de déplacements d’une personne peut être relié à son nom, son numéro de téléphone et son adresse
Une expérience de traçage direct née d’une liste de fuite
- La fuite massive de données de localisation de Gravy Analytics indiquait que plus de 2 000 apps sur l’App Store et Google Play collectaient des données de localisation sans consentement des utilisateurs
- Au moins 3 apps installées sur l’iPhone figuraient dans la liste publique, ce qui a conduit à une expérience visant à vérifier s’il était possible d’acheter ses propres données de localisation depuis l’extérieur
- L’environnement de test était le suivant
- un iPhone 11 réinitialisé aux paramètres d’usine avec un nouvel identifiant Apple
- enregistrement du trafic entrant et sortant avec Charles Proxy
- installation d’un certificat SSL sur l’iPhone pour déchiffrer le trafic HTTPS
- le jeu simple Stack de KetchApp
- Dès le lancement de Stack, les requêtes ont afflué pendant la première minute, avec plusieurs appels presque en continu
Les requêtes Unity Ads transportent position et IP
- Les requêtes Unity Ads envoyées à
https://o.isx.unity3d.comincluaient des données de localisation même lorsque les services de localisation étaient désactivés - Le corps de la requête contenait plus de 200 clés, avec par exemple
- l’horodatage
2025-01-18T23:27:39Z - le code pays
ES sports.bwin.es, qui semble être le domaine où la publicité sera affichéemolocoads-eu-banner, qui semble être un réseau de bannières- l’adresse IP
cip - le modèle d’appareil
iPhone12,1 - le type de connexion Wi‑Fi
- l’opérateur
Yoigo ifv, c’est-à-dire l’IDFV- la latitude et la longitude
- l’IP du serveur
uc: 1, présenté comme une valeur de consentement au suivi utilisateur
- l’horodatage
- Ce flux suivait la chaîne Stack → Unity → Moloco Ads → publicité Bwin, et une publicité Bwin s’affichait bien dans le jeu
- La position n’était pas extrêmement précise, mais restait dans la même zone postale, alors que l’iPhone était connecté en Wi‑Fi sans carte SIM
Les requêtes Facebook et de configuration Unity reçoivent aussi des signaux d’appareil
- Même sans app Meta installée et sans relier de compte Facebook à l’app ou à l’identifiant Apple, les requêtes liées à Facebook incluaient l’IP et l’horodatage
- Ces informations apparaissaient dans
bidder_token_infoetbt_extras, avec de nombreuses autres données transmises en parallèle - La requête de configuration Unity vers
https://configv2.unityads.unity3d.comne contenait pas de données personnelles directes comme la position ou le nom, mais embarquait divers états de l’appareil- version de l’OS, type de connexion, horodatage des événements
vendorIdentifier- présence d’un casque filaire
- volume
- nombre de CPU
- heure de démarrage du système
- état de la batterie
- luminosité de l’écran
- mémoire disponible et mémoire totale
- fuseau horaire
- espace de stockage
- opérateur réseau
advertisingTrackingId
- adjust.com faisait aussi partie des “providers” recevant l’IP et l’horodatage, mais le corps de la requête n’a pas été analysé séparément
Refuser l’IDFA ne bloque qu’une partie des identifiants
ifv, ou IDFV, signifie ID for Vendor, un identifiant unique propre à chaque éditeur- Lorsqu’un autre jeu KetchApp a été installé et ses requêtes examinées, la valeur
ifvétait identique à celle de Stack advertisingTrackingId, c’est-à-dire l’IDFA, est l’identifiant inter-éditeurs partagé avec les apps quand le suivi entre apps est autorisé- En comparant les états d’autorisation et de refus du suivi dans Stack, l’IDFA passait à
000000-0000...quand le suivi était refusé - Ce que changeait l’autorisation de suivi, c’était le partage de l’IDFA ; des données comme l’IP, la position et l’horodatage continuaient d’être envoyées
- Si une personne utilise 10 apps du même éditeur et autorise le suivi dans l’une d’elles, les données collectées dans ces apps peuvent être enrichies par l’IDFA
- Les requêtes contenaient plusieurs identifiants comme
tid,sid,device_idetuid, etdevice_idainsi queuidétaient aussi partagés avec Facebook
Le trajet des données d’enchères publicitaires
- Le chemin de la requête où la position a fuité suivait Stack →
o.isx.unity3d.com→ Moloco Ads → annonceur Bwin - Unity Ads joue le rôle de SSP en collectant des données via le SDK de l’app
- le développeur de l’app peut installer le SDK et percevoir des revenus publicitaires
- il n’a pas besoin d’inscrire séparément l’app sur une ad exchange ni de développer lui-même une logique de collecte de données
- Moloco est présenté comme un réseau DSP qui reçoit des données de plusieurs SSP comme Unity, Applovin ou Chartboost et les relie aux annonceurs
- Les entreprises partenaires publicitaires peuvent accéder aux données pendant le processus d’enchère, et il est aussi possible de collecter ces données en participant normalement aux enchères d’une ad exchange
- Le post adops sur Reddit et ce commentaire expliquent qu’une intégration avec un SSP fournisseur de bidstream permet d’accéder aux données d’enchères, et que la responsabilité de la vérification des vendeurs incombe au SSP
Courtiers en données et données de localisation MAID
- Après avoir vérifié le chemin d’exfiltration des données, la recherche d’un point de vente a mené à Datarade
- Une recherche sur les données liées au MAID a fait apparaître des centaines d’options, et le prix du dataset Redmob était affiché à 120 000 $ par an
- L’échantillon Redmob n’était pas accessible via une requête sur le site web, mais il était publié sur Databricks Marketplace
- La description de l’échantillon Redmob indique fournir des données de localisation couvrant plus de 1,5 milliard d’appareils dans le monde, avec aussi des données régionales comme MENA, Africa ou APAC
- “low latency” signifie qu’il est possible de connaître la position au moment où l’app a partagé sa dernière localisation, ce qui peut remonter à 5 secondes seulement
- Les données d’exemple comportaient une colonne
app, montrant que la source des données était bien une app - La colonne
yodpourrait correspondre à l’année de naissance, mais sa signification exacte et son origine n’ont pas été confirmées
Combiner MAID et informations personnelles identifiables
- Pour suivre une personne à partir de son historique de déplacements, il faut pouvoir relier un MAID ou
ifaà des données réelles comme un nom, une adresse ou un numéro de téléphone - Datarade propose aussi des jeux de données de type
MAID <> PII - Un tableau d’exemple d’AGR Marketing Solutions est fourni via Google Docs et inclut nom complet, email, numéro de téléphone, adresse physique, informations de propriété immobilière et IDFA
- Dans cette structure, il devient possible de relier des données de localisation MAID à des données
MAID <> PIIpour faire correspondre un historique de déplacements à une identité
Comment retrouver l’historique de déplacements d’une personne précise
- En utilisant une app gratuite tout en se déplaçant, les données de localisation deviennent un actif encore plus précieux
- Que le suivi des apps soit autorisé ou refusé, la combinaison IP, position, user agent et informations géographiques peut fuiter vers plusieurs tiers
- Un faux DSP ou un courtier en données peut recevoir ces données en quelques secondes
- Avec des données
MAID <> PIIachetées, il est possible de relier nom ou numéro de téléphone à un IDFA, une adresse IP et un user agent - Il suffit ensuite de filtrer dans des Mobility data constituées d’historiques de position à partir des valeurs obtenues à l’étape précédente pour retrouver les déplacements d’une personne précise
- Le flowchart qui résume l’ensemble du flux montre les liens entre apps, réseaux publicitaires, courtiers et jeux de données personnelles
- Chaque transaction prise isolément peut être légale ou sembler l’être, mais l’ensemble du système, une fois combiné, rend possible le suivi de la localisation d’une personne
1 commentaires
Commentaires sur Hacker News
Le gros problème de confidentialité, c’est que quoi qu’on fasse, il n’existe aucun moyen normal d’empêcher la vente des informations de contact
Dès que mon cousin ouvre TikTok et appuie sur « Je vais partager tous mes contacts », mon nom, mon numéro de téléphone et mon e-mail se retrouvent aussi dans le lot
En pratique, il arrive même qu’on achète ce genre de données. Quand on se heurte au service client, on cherche un dirigeant sur une marketplace, on paie quelques sous pour obtenir ses coordonnées, puis on l’appelle sur son portable ; en général ça marche, mais ça peut aussi se retourner violemment contre vous. CashApp a fermé mon compte à cause de ça
C’est peut-être l’un des rares moyens de pousser les personnes au pouvoir à repenser l’architecture actuelle. Les gens se sont moqués de Red Reddington quand il a dit qu’il n’avait pas d’e-mail, mais vu ce genre de situation, ça se comprend
https://mobiledevmemo.com/wp-content/uploads/2024/09/image.p...
L’interface semble aussi conçue pour inciter les gens à n’autoriser que certains contacts, plutôt qu’à appuyer machinalement sur « Tout autoriser »
Le problème plus vaste, ce sont les informations de contact que l’on donne aux commerçants en ligne. La collecte de contacts via les apps est très visible et suscite des réactions de la presse et des consommateurs, mais pour une commande en ligne il faut saisir précisément son nom, son adresse, son numéro de téléphone et son e-mail, et il y a de fortes chances que ces données soient réelles pour des raisons de livraison et de paiement. Ces données peuvent ensuite être transmises discrètement à des data brokers en arrière-plan, sans fenêtre modale du type « TikTok demande l’accès à vos contacts »
Au final, on les avertissait de ne pas recommencer, et à la deuxième infraction on prenait des mesures plus fermes. Dans certains cas, le service juridique de l’entreprise intervenait immédiatement, et il a même été question des forces de l’ordre à cause de personnes qui tentaient d’obtenir ce qu’elles voulaient par des menaces implicites
Je comprends donc pourquoi les entreprises verrouillent rapidement les clients qui les approchent de cette façon
Je suis content de voir une enquête aussi détaillée. Les articles sur la vie privée manquent souvent de profondeur technique, ou bien exagèrent sans distinguer les préoccupations de confidentialité du niveau réel de risque
L’enquête de Mozilla sur les politiques de confidentialité des voitures est souvent citée, mais elle ressemble surtout à une synthèse de ce que les avocats des constructeurs automobiles ont jugé nécessaire d’inclure dans ces politiques. Les textes suggèrent que les conversations dans la voiture peuvent être enregistrées, et c’est probablement le cas, mais ils ne creusent pas les détails techniques
Par exemple, beaucoup de questions restent ouvertes : est-ce que le constructeur enregistre et transmet tout l’audio pendant toute la conduite, seulement un échantillon aléatoire, ou seulement lors des commandes vocales, avec des avocats qui couvrent largement les données pouvant être captées par accident ? Où les données sont-elles stockées et pendant combien de temps ? Sont-elles transmises à des tiers ? Quels systèmes peut-on désactiver, et si on les coupe, quel impact cela a-t-il sur les fonctionnalités, la garantie ou les primes d’assurance ?
Ces questions peuvent varier presque à l’infini selon les constructeurs. Beaucoup d’articles sur la vie privée restent au niveau de scénarios du pire effrayants mais peu étayés ; sans détails ni pistes d’amélioration, ils ne font que propager le cynisme
À ma connaissance, un constructeur automobile avait aussi ce genre de politique. Quand notre organisation a estimé qu’elle avait besoin d’une base statistique dans une région donnée, quelques appels ont été passés aux bonnes personnes et, peu après, nous avons reçu sous une forme légèrement anonymisée une carte très précise des trajectoires de déplacement de tous les véhicules de cette marque qui avaient circulé dans cette région pendant la période concernée
Les assureurs augmentent les primes d’assurance auto pour de nombreuses raisons, réelles ou supposées, mais elles n’explosent pas uniquement parce que le véhicule n’a pas de dispositif d’enregistrement
Certains assureurs accordent des tarifs plus bas s’ils obtiennent l’accès aux habitudes de conduite de l’assuré, en en déduisant un risque plus faible. Mais c’est une autre question
Il y a pas mal de flux de suivi assez intéressants. Je paie mon loyer via une société appelée Bilt, et je viens de découvrir que quand je fais des achats chez Walgreens, Bilt m’envoie par e-mail le reçu complet de tous les articles que j’ai achetés.
L’exemple dit que « j’ai fait des achats chez Walgreens et gagné des Bilt Points grâce à l’avantage Neighborhood Pharmacy », avec des articles comme des TOSTITOS, les prix, les points et même les articles exclus.
À première vue, j’espère que les articles sensibles comme Plan B ou les préservatifs sont exclus, mais je me demande comment ces données circulent de Walgreens vers ma société de paiement de loyer. Je ferais peut-être mieux de ne pas savoir et d’utiliser du liquide ou un chèque de banque.
Il y a aussi un court fil de commentaires d’il y a quelques mois : https://news.ycombinator.com/item?id=41213632
https://support.biltrewards.com/hc/en-us/articles/2901187842...
Plus bas, dans la section sur les avantages FSA/HSA, il est précisé que Bilt reçoit des données au niveau des articles.
https://www.biltrewards.com/terms/walgreens
Dans le profil Bilt, il y a une section qui indique si d’autres cartes de crédit sont connectées, et le simple fait que les cartes apparaissent dans la liste est déjà assez glaçant.
Je l’ai clairement désactivé. Au fond, Bilt est un gros programme de points et de récompenses, donc si on les relie, on peut aussi recevoir des points.
Je ne sais pas encore exactement quel est le plan d’affaires de Bilt, mais l’idée centrale semble être de collecter un maximum de données financières sur les gens, et de s’associer avec des propriétaires pour y parvenir. Comme c’est le moyen de paiement du loyer, il est difficile de se désinscrire complètement, et il faudra peut-être envoyer un chèque papier au propriétaire par la poste.
C’est plus intrusif que n’importe quel logiciel que j’aie jamais utilisé, et je ne sais même pas si c’est légal. Mais aux États-Unis, où il n’existe pratiquement pas de droits effectifs en matière de vie privée, ce genre de chose est possible.
Au lieu de demander à l’utilisateur de choisir ce niveau d’accès, ils l’inscrivent automatiquement lors de la création du compte, aspirent les données, puis permettent de se « désinscrire » plus tard. Mais, de toute façon, ils ont déjà pu accéder à des données financières personnelles et sensibles. Si votre immeuble encaisse les loyers via Bilt, le compte est de fait obligatoire, et le système est conçu pour que des millions de personnes transmettent leurs données sans s’en rendre compte.
Dans les paramètres de confidentialité de Bilt, il existe des options à désactiver, dont Instant Link, et je recommande de tout couper. Mais vu les pratiques douteuses de cette entreprise, il est difficile de croire que ces réglages soient réellement respectés.
Saviez-vous qu’une société appelée Method Financial dispose, d’une manière ou d’une autre, d’un accès en temps réel à l’ensemble de vos données financières personnelles et sensibles ? Saviez-vous que cette société dont vous n’avez jamais entendu parler vend cet accès au plus offrant ? Vous souvenez-vous avoir donné votre accord quelque part ? Moi non plus, pour aucune de ces questions.
[0]: https://www.biltrewards.com
[1]: https://methodfi.com
À la question « pourquoi ont-ils besoin de connaître la luminosité de l’écran, la quantité de mémoire, le volume actuel, ou le fait que l’on porte ou non un casque ? », cela semble moins servir à améliorer la précision des enchères publicitaires qu’à ajouter de l’entropie pour désanonymiser l’utilisateur entre différentes apps.
Les nouvelles versions des SDK publicitaires mettent longtemps à se diffuser. En général, on estime qu’après la sortie d’une nouvelle version, il faut environ 6 mois pour que 50 % du trafic publicitaire provienne de cette version ou d’une version ultérieure. Et quelle que soit la version publiée, environ 1 % du trafic ne sera jamais mis à niveau au-delà de cette version.
Dans ce monde-là, surtout si l’on pense que personne ne le découvrira, il est rationnel d’un point de vue business de collecter trop de données. Des informations comme l’espace disque total et disponible ne semblent pas immédiatement nécessaires, mais si un annonceur dit : « je veux dépenser 1 million de dollars par jour pour promouvoir un jeu de 10 Go, mais uniquement auprès d’appareils capables de l’installer », savoir que l’appareil n’a que 8 Go de stockage ou seulement 100 Mo libres devient soudain utile.
Si vous ne collectiez pas l’espace disque, il faut maintenant l’ajouter au SDK. Il faut 1 à 2 mois pour publier le nouveau SDK, 3 mois pour atteindre un trafic significatif, puis encore 3 mois pour arriver à 50 %. En supposant une croissance linéaire, vous gagnez 22,5 millions de dollars sur 7 mois, alors que si la logique avait été présente dès le départ, vous auriez gagné 210 millions de dollars sur la même période. Pour les équipes business, le choix est facile.
Il existe des solutions, mais elles ont toutes des inconvénients. Si l’on limite les données que les sociétés publicitaires peuvent collecter, la valeur de la publicité baisse. Les entreprises retirent déjà certaines données à faible valeur et à haut risque, comme la localisation. Je pense qu’il vaudrait mieux prendre en charge un modèle où le code publicitaire peut être mis à jour indépendamment de l’app, mais Apple ne semble pas près de le faire, et la réponse de Google est tellement bancale que je ne la vois pas devenir viable dans les quatre prochaines années.
Au passage, la luminosité de l’écran est un proxy très grossier pour estimer l’âge de l’utilisateur.
« Si c’était en LTE, la latitude et la longitude auraient été bien plus précises » est faux. Si une app n’a pas l’autorisation d’accéder à la localisation, elle ne peut pas accéder aux informations d’ID de cellule ; et si elle l’a, elle peut simplement demander directement la position.
La formule « une app gratuite collecte votre position exacte et des horodatages » est elle aussi alarmiste et incohérente avec le reste, puisque l’auteur reconnaît quelques paragraphes plus haut que « la localisation partagée n’était pas très précise ».
Il est possible qu’une app demande une position précise via les services de localisation, mais cette app ne demande pas cette autorisation. Sur Android, on peut le vérifier ; sur iOS, il est difficile de vérifier les autorisations demandées avant l’installation et l’exécution, mais ce type d’app est presque certainement limité à une localisation « pas très précise ».
En théorie, les places de marché publicitaires ne sont pas censées créer d’identifiants de contournement permettant le suivi inter-apps sans IDFA. Mais c’est difficile à faire appliquer.
« Si un utilisateur réinitialise l’Advertising Identifier, vous ne devez pas combiner, corréler, relier ou associer, directement ou indirectement, l’ancien Advertising Identifier ni les informations dérivées avec l’Advertising Identifier réinitialisé. »
https://developer.apple.com/support/terms/apple-developer-pr...
Il serait intéressant de comparer si les données transmises changent dans les pays où les lois sur la vie privée sont meilleures.
Comme l’utilisateur a « demandé à ne pas être suivi », l’Advertising Tracking ID a été défini sur 000000-0000 ; et en activant/désactivant l’option de suivi dans l’app Stack puis en comparant les requêtes, il est apparu que c’était la seule différence.
J’ai toujours trouvé que la formulation étrange d’Apple, « Ask App not to track », laissait une zone de doute suspecte. L’app peut ne pas vous suivre via l’ID, mais si beaucoup d’autres données sont transmises, il devient facile de créer une empreinte utilisateur. Même sans identifiant unique, les données fournies peuvent suffire à reconnaître l’utilisateur dans 99 % des cas.
Théorie modifiée de la vie privée morte : la Dead Internet Theory affirme que la majeure partie de l’activité sur Internet provient de bots [0]. La Dead Privacy Theory dit que presque aucune donnée privée n’est réellement privée, et que les data scientists, ingénieurs logiciels, analystes, administrateurs de bases de données et tiers ayant accès aux bases peuvent y accéder s’ils le veulent vraiment.
[0] https://en.wikipedia.org/wiki/Dead_Internet_theory
Plus de détails ici : https://developer.apple.com/app-store/user-privacy-and-data-...
Rien qu’avec la luminosité de l’écran, l’heure de démarrage, la mémoire et l’opérateur, j’ai l’impression qu’on peut presque identifier par empreinte n’importe quel appareil.
C’est intéressant de lire Hacker News. Les informaticiens qui créent les logiciels rendant possible l’industrie de la publicité, de la vente de données personnelles et du suivi — et qui en profitent — sont aussi ceux qui la critiquent le plus. C’est difficile à croire.
La plupart d’entre nous ne voudraient pas travailler dans des endroits qui font ce genre de choses, mais il faut bien gagner sa vie. Et nous avons très peu d’influence sur ces décisions.
Récemment, dans mon entreprise, j’ai assisté à la présentation d’un nouveau produit IoT, et j’ai immédiatement demandé pourquoi il ne prenait pas en charge un protocole ouvert standard comme Matter. On m’a répondu que c’était absolument hors de question, parce que l’équipe marketing veut pousser les clients à regarder l’app afin d’obtenir des « métriques » et de faire de la montée en gamme. J’ai dit que très bien, mais que moi je n’utiliserais jamais cette saloperie, et on m’a tout simplement ignoré. Il y a trop peu de gens comme ça pour que ça compte. Au sein de l’entreprise, on devient moins populaire, on prend surtout des risques, et ça n’aide même pas. L’idée selon laquelle il faudrait « ne pas lutter, rejoindre le système et le changer de l’intérieur » est une erreur.
La plupart des autres disciplines d’ingénierie disposent de règles et de normes publiques, de certifications professionnelles, et l’éthique y est intégrée. Perdre son habilitation pour violation de l’éthique peut, dans bien des cas, mettre fin à une carrière.
Il y a longtemps, j’ai eu l’idée de créer un serveur de traçabilité des responsabilités. L’idée générale serait de générer des identifiants uniques afin de remonter jusqu’à la source et de savoir qui a vendu mes informations.
Il existe déjà certaines méthodes, mais je pense qu’il est temps de réexaminer le sujet. Si l’on proposait cela sous forme de VPN/proxy + appli tournant sur un serveur à la maison, en collectant soi-même ses données et en insérant des identifiants uniques lors de la création de comptes, on pourrait peut-être découvrir pas mal de choses.
Comme il pourrait agir comme un intermédiaire, on pourrait annoter l’origine des identifiants et observer les publicités pour remonter jusqu’à la source. Du genre : « cette publicité pour un produit d’amélioration masculine est liée à votre achat de pneus ».
J’ai encore beaucoup d’idées esquissées à la main, mais je me demande s’il serait possible de construire quelque chose comme ça. La première étape pour empêcher ce genre de pratiques, c’est de montrer aux gens qui en est responsable.
https://developers.google.com/authorized-buyers/rtb/openrtb-...
Je me demande comment les MAID/IDfV se retrouvent dans les bases de données PII-ID.
Cette partie semble complètement absente. Je l’ai peut-être ratée.
Par exemple, une compagnie aérienne, un opérateur télécom ou un fournisseur d’électricité peuvent-ils les vendre lorsqu’on utilise leur application ?