IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Tout le monde connaît votre emplacement : me localiser grâce aux publicités dans les applications
Par Tim

Le , par Tim Sh

3PARTAGES

4  0 
Tout le monde connaît votre emplacement : me localiser grâce aux publicités dans les applications, par Tim

Récemment, j'ai lu un article sur une fuite massive de données de géolocalisation provenant de Gravy Analytics, qui a révélé que plus de 2 000 applications, tant sur l'AppStore que sur Google Play, collectaient secrètement des données de géolocalisation sans le consentement des utilisateurs. Souvent, même à l'insu des développeurs.

J'ai consulté la liste et j'ai trouvé au moins 3 applications que j'ai installées sur mon iPhone. Jetez-y un œil vous-même !

Cela m'a donné l'idée de me localiser de manière externe, par exemple en achetant mes données de géolocalisation divulguées par une application.

TL;DR

Après plus d'une vingtaine d'heures d'essais, voici les principales conclusions :

  1. J'ai trouvé deux requêtes envoyées par mon téléphone avec ma position + 5 requêtes qui divulguent mon adresse IP, qui peut être convertie en géolocalisation à l'aide du DNS inversé.
  2. J'ai beaucoup appris sur les enchères RTB (enchères en temps réel) et le protocole OpenRTB, et j'ai été choqué par la quantité et les types de données envoyées avec les enchères aux ad exchanges.
  3. J'ai abandonné l'idée d'acheter mes données de localisation auprès d'un courtier en données ou d'un service de suivi, car je n'ai pas une entreprise suffisamment grande pour faire un essai ou dépenser 10 000 à 50 000 dollars pour acheter une énorme base de données contenant les données de millions de personnes + moi.
    Peut-être que je le ferais, mais une telle dépense semble un peu irrationnelle.
    Il s'avère que les données des personnes basées dans l'UE sont presque les plus chères.

Mais je sais quand même que mes données de localisation ont été collectées et je sais où les acheter !


Point de départ

Ma configuration pour cette recherche comprenait :

  • Mon ancien iPhone 11 restauré aux paramètres d'usine + un nouvel identifiant Apple.
    Je me sentais trop mal à l'aise pour faire tout cela sur mon téléphone actuel.
  • Charles Proxy pour enregistrer tout le trafic entrant et sortant.
    J'ai configuré le certificat SSL sur l'iPhone pour décrypter tout le trafic https.
  • Un jeu simple appelé Stack de KetchApp - je me souviens y avoir joué à l'école il y a 10-12 ans. Le choisir comme cobaye m'a rendu nostalgique.
    À ma grande surprise, il y avait beaucoup de jeux KetchApp dans la liste.



Une quantité énorme de requêtes

Bon, c'est parti : une seule application installée en plus de celles d'Apple par défaut, Charles activé, lancement de Stack dans 3, 2, 1...


Voici les requêtes envoyées par l'application dans la première minute suivant son lancement.
Regardez la fréquence des requêtes : elles sont envoyées presque toutes les fractions de seconde.

Examinons le contenu des requêtes.
Je les ai toutes vérifiées, mais je ne mentionnerai ici que celles qui sont intéressantes.

Unity [ads]

Commençons par la requête la plus intéressante envoyée à https://o.isx.unity3d.com : la première qui incluait ma géolocalisation, alors que j'avais désactivé les services de localisation sur mon iPhone pour toutes les applications !
Si vous êtes aussi naïf que je l'étais avant cela, vous serez peut-être surpris : quel est le rapport entre Unity, le moteur 3D, et la publicité dans les applications ou le suivi de localisation ?
Peut-être s'agit-il simplement de données de surveillance destinées à améliorer le moteur ?

Il s'avère que la principale source de revenus de Unity (qui a généré plus de 2 milliards de dollars en 2023) est Unity Ads, un « réseau publicitaire pour jeux mobiles ». Cela semble assez intéressant.

Vous trouverez ci-dessous le corps de la requête au format json envoyé à Unity Ads. Je ne mentionnerai que les champs qui méritent d'être mentionnés. La taille réelle est de plus de 200 clés.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "ts": "2025-01-18T23:27:39Z", // Timestamp
  "c": "ES", // Country code,
  "d": "sports.bwin.es", // Domain; the app or website where the ad will be displayed.
  "bn": "molocoads-eu-banner", // WTF is moloco ads? We'll see!
  "cip": "181.41.[redacted]", // my IP !!
  "dm": "iPhone12,1", 
  "ct": "2", // Connection type; e.g., Wi-Fi
  "car": "Yoigo", // mobile network operator
  "ifv": "6B00D8E5-E37B-4EA0-BB58-[redacted]", // ID for Vendor. We'll get back to it!
  "lon": "2.[redacted]", // Longitude ... 
  "lat": "41.[redacted]", // Latitude ... 
  "sip": "34.227.224.225", // Server IP (Amazon AWS in US) 
  "uc": "1", // User consent for tracking = True; OK what ?!
}


Bon, donc mon IP + ma localisation + mon horodatage + certains identifiants ifv sont partagés avec Unity → Moloco Ads → Bwin, puis je vois la publicité Bwin réelle dans le jeu.
Formidable !

Petite remarque : la localisation partagée n'était pas très précise (mais toujours dans le même code postal), sans doute parce que l'iPhone était connecté au Wi-Fi et n'avait pas de carte SIM installée.
Si c'était du LTE, je parie que la latitude/longitude serait beaucoup plus précise.

Bonjour Facebook... Que fais-tu ici ?

La prochaine requête intéressante qui divulgue mon IP + mon horodatage (= point de données géographiques) est Facebook.
Quoi ?!

  • Je n'ai aucune application Meta [Facebook] installée sur cet iPhone.
  • Je n'ai lié ni l'application ni mon identifiant Apple à un compte Facebook.
  • Je n'ai pas donné mon consentement à Facebook pour obtenir mon adresse IP !

Et pourtant, nous en sommes là :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
{ 
	"bundles": {
		"bidder_token_info": {
			"data": {
				"bt_extras": {
                  "ip":"181.41.[redacted], // nice Extras, bro
                  "ts":1737244649
			},
			"fingerprint": null
		},
        {
          "a lot of data: yes a loooooooot"
         }


Nous en parlerons plus en détail dans la section suivante.

Pourquoi avez-vous besoin de connaître le niveau de luminosité de mon écran ?

La dernière requête que j'ai trouvée intéressante a été envoyée à... Unity, encore une fois :
https://configv2.unityads.unity3d.com.
Voyons ce que contient cette configuration dont Unity a tant besoin :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "osVersion":"16.7.1",
  "connectionType":"wifi",
  "eventTimeStamp":1737244651,
  "vendorIdentifier":"6B00D8E5-E37B-[redacted]", // ifv once again 
  "wiredHeadset":false, // excuse me? 
  "volume":0.5,
  "cpuCount":6,
  "systemBootTime":1737215978,
  "batteryStatus":3,
  "screenBrightness":0.34999999403953552,
  "freeMemory":507888,
  "totalMemory":3550640, // is this RAM?
  "timeZone":"+0100",
  "deviceFreeSpace":112945148
  "networkOperator":"6553565535"
  "advertisingTrackingId":"00000000-0000....", // interesting ...
  }


Il n'y a pas d'« informations personnelles » ici, mais honnêtement, cette quantité de données partagées avec une liste arbitraire de tiers est effrayante.
Pourquoi ont-ils besoin de connaître la luminosité de mon écran, la quantité de mémoire, le volume actuel et si je porte des écouteurs ?

Je connais la « bonne » réponse : pour aider les entreprises à mieux cibler leur public !
Par exemple, si vous faites la promotion d'une application mobile qui pèse 1 Go et que l'utilisateur ne dispose plus que de 500 Mo d'espace libre, vous ne lui montrez pas la publicité, n'est-ce pas ?

Mais j'ai également entendu beaucoup de controverses à ce sujet.
Comme Uber qui ajuste dynamiquement le prix des taxis en fonction du niveau de votre batterie, car vous n'allez pas attendre une option moins chère avec 4 % de batterie restante en restant debout dans la rue.

Je ne peux pas savoir si cela ou autre chose est vrai.
Mais le fait que ces données soient disponibles et accessibles aux annonceurs suggère qu'ils devraient au moins envisager de les utiliser.
Je le ferais.

Bon, assez avec les demandes.
Nous pouvons déjà voir des exemples de fuites d'adresses IP et de géolocalisation.
Un autre « fournisseur » qui a également obtenu mon adresse IP + horodatage est adjust.com, mais le corps de la demande était trop ennuyeux pour être inclus.

Parlons des identifiants

Vous avez peut-être déjà remarqué ifv et advertisingTrackingId == IDFA dans les demandes ci-dessus. De quoi s'agit-il ?

IFV, ou IDFV, est l'« identifiant du fournisseur ».
Il s'agit de mon identifiant unique pour chaque fournisseur, c'est-à-dire chaque développeur, dans ce cas KetchApp.
Cela se vérifie : j'ai installé un autre jeu KetchApp pour enregistrer rapidement les requêtes, et la valeur ifv était la même pour celui-ci.

L'identifiant de suivi publicitaire, en revanche, est une valeur commune à tous les fournisseurs, celle qui est partagée avec une application si vous choisissez « Autoriser l'application à suivre votre activité sur... ».
Comme vous pouvez le voir ci-dessus, il était en fait défini sur 000000-0000... car j'ai « demandé à l'application de ne pas suivre ».

J'ai vérifié cela en désactivant et en activant manuellement l'option de suivi pour l'application Stack et en comparant les requêtes dans les deux cas.

Et c'est la seule différence entre autoriser et interdire le suivi

Je comprends que cela ne vous choque peut-être pas, car ce n'est pas vraiment un secret. Vous pouvez par exemple consulter la documentation destinée aux développeurs Apple.

Mais je pense que cela n'est pas communiqué correctement aux utilisateurs finaux, c'est-à-dire vous et moi, de manière adéquate : les applications gratuites que vous installez et utilisez collectent votre position précise avec un horodatage et l'envoient à des sociétés tierces.

La seule chose qui empêche toute personne ayant accès à des données d'enchères (un autre agent d'achat publicitaire, une bourse publicitaire ou un ensemble de données acheté ou loué à un courtier en données, comme vous le verrez plus tard) de vous suivre dans tous vos déplacements quotidiens est cet IDFA qui n'est pas partagé lorsque vous refusez aux applications de « vous suivre à travers les applications » afin « d'améliorer et de personnaliser votre expérience publicitaire ».

À propos : si vous utilisez 10 applications du même fournisseur (Playrix, KetchApp ou une autre société proposant 1 000 applications) et que vous autorisez une seule application à vous suivre, cela signifie que les données collectées dans les 10 applications seront enrichies avec votre IDFA, qui pourra ensuite être échangé contre vos données personnelles.

En même temps, les requêtes contiennent tellement de données que je m'attends à ce que les ad exchanges trouvent une faille qui permettrait le suivi inter-applications sans avoir besoin de l'IDFA.
J'ai trouvé au moins 20 identifiants tels que tid et sid, device_id et uid (ces deux derniers sont partagés avec Facebook), etc.

Au fait, le fait que Facebook ait collecté mon IP + horodatage sans mon consentement adéquat / connexion à l'application de mon côté est fou.
Je pense que Facebook est tout à fait capable de relier les points et mon compte Meta à cette visite dès que je me connecte à l'application Instagram ou Facebook sur la même adresse IP.

Comment les données circulent-elles ?

Revenons un instant à la requête qui a divulgué ma position et examinons sa trace. Nous allons nous concentrer sur les parties intermédiaires :

stack → o.isx.unity3d.commolocoads → bwin (annonceur)

Unity [ads] est une SSP (plateforme côté offre) qui collecte les données de l'application via SDK.
En tant que développeur d'applications, vous n'avez pas à vous soucier de collecter les bonnes données, de vous inscrire en tant qu'éditeur sur une bourse publicitaire ou quoi que ce soit d'autre : il vous suffit d'installer le SDK et de recevoir l'argent.

Très bien, mais qu'en est-il de Molocoads ?


Moloco ads est un réseau DSP qui revend les données provenant de plusieurs SSP (comme Unity, Applovin, Chartboost). En gros, cela concerne presque tous les hôtes demandés que j'ai vus apparaître dans Charles Proxy.
Il applique ensuite une « optimisation intelligente » et connecte un espace publicitaire vacant sur l'écran de votre téléphone avec l'annonceur.

Il semble que Moloco agrège beaucoup de données et que n'importe qui (pour être clair, toute entreprise qui devient partenaire publicitaire) puisse accéder à ces données en enchérissant moins que les autres.
Ou imaginez une véritable bourse publicitaire qui enchérisse normalement et collecte toutes les données en cours de route « comme activité secondaire ».
En gros, c'est ainsi que les sociétés de renseignement et les courtiers en données obtiennent leurs données.

À ce stade, je cherchais des mentions de Moloco sur Telegram et Reddit, et je suis tombé sur ce post qui répondait à beaucoup de mes questions :


En particulier, ce commentaire. Pour en citer une partie :

Ils y accèdent s'ils s'intègrent au fournisseur de bidstream, qui serait le SSP. C'est au SSP de vérifier le fournisseur auquel il donne accès aux enchères. En général, la condition requise est que vous enchérissiez réellement.
Les SSP veulent que vous dépensiez de l'argent, c'est ainsi que leur entreprise génère des revenus. Ils peuvent n'ouvrir qu'une partie du trafic à des fournisseurs spécifiques (c'est-à-dire que si vous n'enchérissez pas à l'échelle mondiale, vous n'obtiendrez pas le bidstream mondial, mais uniquement celui des régions dans lesquelles vous opérez).
Tout simplement merveilleux.

Courtiers en données

Allons plus loin. Lorsque j'ai découvert comment les données étaient divulguées, j'ai commencé à chercher où elles étaient vendues. La recherche a été rapide.

J'ai trouvé une place de marché de données appelée Datarade, qui est un panel contenant toutes sortes de données. Lorsque j'ai recherché des données spécifiques au MAID, des centaines d'options sont apparues, comme ces deux-là :


Le prix de l'ensemble de données Redmob m'a surpris : 120 000 dollars par an... pour quoi ?
Jetons maintenant un œil à leur promotion :


Le prix du jeu de données Redmob m'a surpris : 120 000 dollars par an... pour quoi ?
Jetons maintenant un œil à leur promotion :

Consultez la liste des fonctionnalités à droite : certaines vous semblent-elles familières ?

Remarque rapide : « faible latence » signifie qu'ils connaissent votre emplacement depuis la dernière fois qu'une des applications l'a partagé. Cela peut remonter à seulement 5 secondes.
Mieux encore, Redmob fournit un échantillon gratuit des données.

J'ai essayé de le demander sur leur site web, mais l'échantillon n'est jamais arrivé dans ma boîte mail (sans surprise, timsh.org ne semble pas être un client à fort potentiel).
Heureusement, cet échantillon est accessible au public sur Databricks Marketplace avec cette annotation :

Améliorez vos produits et services grâce à nos données de localisation mondiales couvrant plus de 1,5 milliard d'appareils. Grâce à notre vaste ensemble de données de localisation, vous pouvez découvrir des tendances cachées, effectuer des analyses rapides et acquérir des connaissances approfondies.

Nous pouvons également fournir des données spécifiques à une région (MENA, Afrique, APAC, etc.) en fonction de vos besoins particuliers. Notre modèle de tarification comprend une option de licence annuelle, et nous fournissons des échantillons de données gratuits afin que vous puissiez évaluer par vous-même la qualité de notre ensemble de données.

Pour moi, la partie la plus absurde est la colonne « app » : la source des données ne pourrait être plus évidente. Je suis également très intéressé par la colonne « yod » : s'il s'agit de l'année de naissance, d'où l'ont-ils tirée ? Peu importe, qui se soucie de votre année de naissance.

Montrez-moi les informations personnelles identifiables !

Bon, imaginez que j'ai acheté l'accès à un énorme flux de données Redmob.
Mais mon objectif est de suivre et de traquer des personnes comme moi ou n'importe qui d'autre, j'ai donc besoin d'un moyen d'échanger des MAID (=ifa) contre des informations personnelles réelles : nom, adresse, numéro de téléphone...

Pas de problème ! Ce type de jeu de données est étonnamment également présent sur Datarade.
Jetez un œil à un exemple de tableau avec le type MAID <> PII fourni par « AGR Marketing Solutions ».

À l'intérieur : toutes les informations personnelles (nom complet, e-mail, numéro de téléphone, adresse physique, propriété immobilière... et IDFA.

Félicitations, vous venez d'atteindre le fond de ce terrier de lapin.
Résumons et faisons quelques déclarations audacieuses.

Comment vous suivre à la trace ?

C'est facile ! Il suffit de suivre ce guide simple étape par étape :

  1. Utilisez quelques applications gratuites pendant un certain temps.
    Déplacez-vous et faites des trajets quotidiens, cela rend les données géographiques plus précieuses.
  2. « Autoriser » ou « demander de ne pas suivre » : une combinaison d'IP + emplacement + agent utilisateur + géolocalisation sera toujours divulguée à des centaines de « tiers », quel que soit votre choix.
  3. Attendez quelques secondes que les faux DSP et courtiers en données reçoivent vos données.
  4. Échangez votre nom complet ou votre numéro de téléphone contre un IDFA (le cas échéant), une adresse IP et un agent utilisateur via les données MAID <> PII achetées quelque part.
  5. Accédez maintenant aux « données de mobilité » comprenant l'historique de géolocalisation, et filtrez-les à l'aide des valeurs de l'étape précédente.

Félicitations ! Vous vous êtes trouvé.

J'ai créé un organigramme qui inclut presque tous les acteurs et toutes les données mentionnés ci-dessus. Vous pouvez maintenant voir comment tout cela est lié.


C'est le pire aspect de ces échanges de données qui ont lieu en permanence dans le monde entier : chaque petite partie est (ou semble) légitime. C'est la vue d'ensemble qui les rend déplaisants.

Source : "Everyone knows your location: tracking myself down through in-app ads"

Et vous ?

Pensez-vous que cette démonstration est crédible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

Les extensions de navigateur vous espionnent, même si leurs développeurs ne le font pas, par Robert Vitonsky

Ne devinez pas ma langue, si vous utilisez encore la géolocalisation IP pour déterminer la langue à afficher, arrêtez de perdre votre temps, par Robert Vitonsky
Vous avez lu gratuitement 1 156 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !