- Depois de identificar 3 apps de iPhone instalados na lista vazada da Gravy Analytics, foi capturado diretamente o tráfego de anúncios do jogo gratuito Stack para rastrear por onde localização e IP saem para fora
- Mesmo com os serviços de localização e o rastreamento de apps desativados, as requisições do Unity Ads incluíam latitude e longitude, IP, timestamp, operadora, IDFV, valor de consentimento e mais
- Requisições para Facebook, adjust.com e configuração da Unity também recebiam sinais do dispositivo como IP e timestamp, ou brilho da tela, bateria e memória, o que pode estreitar a identificação do usuário mesmo sem identificador de publicidade
- O IDFA ficou zerado quando o rastreamento foi recusado, mas o IDFV foi mantido entre apps da mesma desenvolvedora, e IP, localização, user agent e vários identificadores continuaram fluindo para o ecossistema de anúncios
- Quando dados de lances publicitários, dados de localização MAID e conjuntos
MAID <> PIIsão combinados, o histórico de deslocamento de uma pessoa pode ser ligado a nome, telefone e endereço
Experimento prático de rastreamento iniciado a partir da lista vazada
- O grande vazamento de dados de localização da Gravy Analytics incluía a informação de que mais de 2.000 apps na App Store e no Google Play coletavam dados de localização sem consentimento do usuário
- Na lista pública, foram encontrados pelo menos 3 apps instalados no iPhone, o que levou a um experimento para verificar se seria possível comprar os próprios dados de localização por vias externas
- O ambiente de teste foi o seguinte
- iPhone 11 restaurado de fábrica e um novo Apple ID
- Registro do tráfego de entrada e saída com Charles Proxy
- Instalação de certificado SSL no iPhone para descriptografar o tráfego HTTPS
- O jogo simples Stack, da KetchApp
- Ao abrir o Stack, uma enxurrada de requisições apareceu no primeiro minuto, com várias delas sendo enviadas praticamente a todo momento
Requisições do Unity Ads carregavam localização e IP
- Requisições do Unity Ads enviadas para
https://o.isx.unity3d.comincluíam dados de localização mesmo com os serviços de localização desativados - O corpo da requisição tinha mais de 200 chaves, com exemplos de valores como
- timestamp
2025-01-18T23:27:39Z - código do país
ES sports.bwin.es, que parecia ser o domínio onde o anúncio seria exibidomolocoads-eu-banner, que parecia ser a rede de banner- endereço IP
cip - modelo do dispositivo
iPhone12,1 - tipo de conexão Wi‑Fi
- operadora
Yoigo ifv, isto é, IDFV- latitude e longitude
- IP do servidor
uc: 1, apresentado como valor de consentimento de rastreamento do usuário
- timestamp
- Esse fluxo seguia Stack → Unity → Moloco Ads → anúncio da Bwin, e um anúncio da Bwin realmente apareceu dentro do jogo
- A localização não era extremamente precisa, mas ficava na mesma faixa de CEP; naquele momento, o iPhone estava conectado ao Wi‑Fi e sem SIM
Requisições do Facebook e de configuração da Unity também recebiam sinais do dispositivo
- Mesmo sem apps da Meta instalados e sem vincular conta do Facebook ao app ou ao Apple ID, requisições relacionadas ao Facebook incluíam IP e timestamp
- Esses valores apareciam em
bidder_token_infoebt_extras, junto com muitos outros dados enviados - A requisição de configuração da Unity para
https://configv2.unityads.unity3d.comnão continha informações pessoais diretas, como localização ou nome, mas incluía vários estados do dispositivo- versão do sistema operacional, tipo de conexão e timestamp do evento
vendorIdentifier- presença de fone de ouvido com fio
- volume
- número de CPUs
- tempo de inicialização do sistema
- estado da bateria
- brilho da tela
- memória disponível e memória total
- fuso horário
- armazenamento
- operadora de rede
advertisingTrackingId
- A adjust.com também era um dos “providers” que recebiam IP e timestamp, mas o corpo da requisição não foi analisado separadamente
Recusar o IDFA bloqueia apenas parte dos identificadores
ifv, ou IDFV, significa ID for Vendor, um identificador único por desenvolvedora- Ao instalar outro jogo da KetchApp e verificar as requisições, o valor de
ifvera o mesmo do Stack advertisingTrackingId, ou IDFA, é um identificador entre diferentes desenvolvedoras compartilhado com apps quando o rastreamento entre apps é permitido- Ao comparar no app Stack os estados de permitir e recusar rastreamento, o IDFA ficou definido como
000000-0000...quando o rastreamento foi recusado - O que mudou com a permissão de rastreamento foi o compartilhamento do IDFA; dados como IP, localização e timestamp continuaram sendo enviados
- Se alguém usar 10 apps da mesma desenvolvedora e permitir rastreamento em apenas um deles, os dados coletados nesses apps da desenvolvedora podem ser reforçados com o IDFA
- As requisições incluíam vários identificadores como
tid,sid,device_ideuid, edevice_ideuidtambém eram compartilhados com o Facebook
O caminho percorrido pelos dados de lances publicitários
- O caminho da requisição em que a localização vazou seguia Stack →
o.isx.unity3d.com→ Moloco Ads → anunciante Bwin - O Unity Ads atua como um SSP que coleta dados por meio do SDK do app
- O desenvolvedor do app pode instalar o SDK e receber receita de anúncios
- Não há necessidade de registrar separadamente em uma ad exchange nem de criar diretamente a lógica de coleta de dados
- A Moloco é apresentada como uma rede DSP que recebe dados de vários SSPs, como Unity, Applovin e Chartboost, e os conecta a anunciantes
- Empresas que se tornam parceiras de anúncios podem acessar dados durante o processo de lance, e também é possível uma estrutura em que os dados sejam coletados junto com lances legítimos em ad exchanges
- O post no Reddit sobre adops e este comentário explicam que, ao integrar com um SSP provedor de bidstream, é possível acessar os dados de lance, e que o SSP é responsável por validar os vendors
Corretores de dados e dados de localização MAID
- Depois de confirmar por onde os dados estavam saindo, foi iniciada a busca por canais de venda, e Datarade foi encontrado nesse processo
- Ao buscar dados relacionados a MAID, apareceram centenas de opções, e o preço do conjunto da Redmob era mostrado como US$ 120.000 por ano
- Não foi possível obter a amostra da Redmob via requisição no site, mas ela estava publicada no Databricks Marketplace
- A descrição da amostra da Redmob dizia fornecer dados de localização cobrindo mais de 1,5 bilhão de dispositivos no mundo, além de poder oferecer dados regionais como MENA, Africa e APAC
- “low latency” significa que é possível saber a localização no momento em que o app compartilhou a posição pela última vez, e esse momento pode ter sido há 5 segundos
- Os dados de amostra tinham uma coluna
app, o que mostrava que a origem dos dados era um app - A coluna
yodpode ser ano de nascimento, mas seu significado real ou origem não foram confirmados
Combinação de MAID com informações de identificação pessoal
- Para rastrear uma pessoa apenas pelo histórico de deslocamento, é necessário conseguir ligar o MAID ou
ifaa informações pessoais reais como nome, endereço e telefone - No Datarade, também existem conjuntos do tipo
MAID <> PII - A tabela de amostra da AGR Marketing Solutions é fornecida via Google Docs e inclui nome completo, e-mail, telefone, endereço físico, informação de propriedade imobiliária e IDFA
- Nessa estrutura, é possível combinar dados de localização MAID com dados
MAID <> PIIpara ligar histórico de deslocamento a informações pessoais
Como o histórico de deslocamento de uma pessoa específica pode ser encontrado
- Ao usar apps gratuitos e se deslocar, os dados de localização se tornam dados ainda mais valiosos
- Mesmo permitindo ou recusando o rastreamento de apps, combinações de IP, localização, user agent e informações geográficas podem vazar para vários terceiros
- Um DSP falso e um corretor de dados podem receber esses dados em questão de segundos
- Com dados
MAID <> PIIcomprados, é possível ligar nome ou telefone a IDFA, endereço IP e user agent - Depois disso, ao filtrar a Mobility data com os valores obtidos na etapa anterior, torna-se possível encontrar o histórico de deslocamento de uma pessoa específica
- O fluxograma que resume todo o fluxo mostra a conexão entre app, redes de anúncios, corretores e conjuntos de dados pessoais
- Cada transação individual pode ser legal ou parecer legal, mas a estrutura completa, quando combinada, torna possível o rastreamento de localização de indivíduos
1 comentários
Comentários do Hacker News
O grande problema de privacidade é que, faça o que fizer, não há uma forma normal de impedir que informações de contato sejam vendidas
No momento em que um primo abre o TikTok e toca em “vou compartilhar todos os meus contatos”, meu nome, telefone e e-mail também entram no pacote
Esses dados são de fato comprados. Quando fico travado no atendimento ao cliente, procuro um executivo em um marketplace, pago alguns trocados pelo contato e ligo para o celular; em geral funciona, mas também pode sair muito pela culatra. O CashApp encerrou minha conta por causa disso
Talvez seja uma das poucas formas de fazer pessoas com poder repensarem a estrutura atual. As pessoas riram quando Red Reddington disse que não tinha e-mail, mas, vendo situações como esta, dá para entender
https://mobiledevmemo.com/wp-content/uploads/2024/09/image.p...
A interface também parece projetada para levar as pessoas a permitir apenas alguns contatos, em vez de tocar sem pensar em “permitir tudo”
O problema maior são as informações de contato entregues a varejistas online. A coleta de contatos por apps é bem visível e recebe reação da imprensa e dos consumidores, mas pedidos online exigem inserir corretamente nome, endereço, telefone e e-mail, e é bem provável que sejam dados reais por motivos de entrega e pagamento. Esses dados podem ser repassados silenciosamente, nos bastidores, a data brokers, sem um modal do tipo “TikTok solicita acesso aos seus contatos”
No fim, avisávamos para não fazer de novo e, na segunda violação, tomávamos medidas mais duras. Em alguns casos, o jurídico da empresa entrou imediatamente, e até autoridades investigativas foram mencionadas por causa de pessoas que tentavam conseguir o que queriam por meio de ameaças implícitas
Então entendo por que as empresas bloqueiam rapidamente clientes que as abordam desse jeito
É bom ver uma investigação detalhada nesse nível. Textos sobre privacidade muitas vezes não têm profundidade técnica ou exageram sem distinguir entre preocupações de privacidade e níveis de risco
Muita gente cita a investigação da Mozilla sobre políticas de privacidade de carros, mas aquilo está mais para um resumo do que os advogados das montadoras decidiram que deveria constar nas políticas de privacidade. A política sugere que conversas dentro do carro podem ser gravadas, e é bem possível que sejam, mas não entra nos detalhes técnicos
Por exemplo, ficam perguntas como: a montadora grava e transmite todo o áudio durante toda a condução, grava apenas uma amostra aleatória, grava só durante comandos de voz e os advogados fizeram uma defesa ampla para cobrir dados que possam entrar por acaso nesse processo, onde e por quanto tempo isso é armazenado, se vai para terceiros, quais sistemas podem ser desligados e, se forem, se isso afeta recursos, garantia ou prêmio do seguro
Essas perguntas podem variar quase infinitamente de fabricante para fabricante. Muitas notícias sobre privacidade ficam presas a cenários de pior caso assustadores, mas com pouca base; sem detalhes e meios de melhoria, acabam apenas espalhando cinismo
Pelo que sei, uma montadora também tinha uma política assim. Quando nossa organização decidiu que precisava de uma linha de base estatística em uma determinada região, algumas ligações foram feitas às pessoas certas e, pouco tempo depois, recebemos, em forma levemente anonimizada, um mapa de trajetórias de deslocamento de alta precisão de todos os veículos daquela marca que circularam naquela região durante o período
Seguradoras aumentam o preço do seguro de automóveis por vários motivos, reais ou imaginários, mas o prêmio não dispara simplesmente porque o veículo não tem um dispositivo de gravação
Algumas seguradoras dão desconto quando recebem acesso aos padrões de direção do segurado, inferindo um risco menor. Mas essa é outra questão
Há muitos fluxos de rastreamento bem interessantes. Pago meu aluguel por uma empresa chamada Bilt e agora descobri que, quando faço compras na Walgreens, a Bilt me envia por e-mail o recibo completo de todos os itens que comprei
O exemplo diz que “comprei na Walgreens e ganhei Bilt Points pelo benefício Neighborhood Pharmacy”, mostrando itens como TOSTITOS, preços, pontos e até itens excluídos
Por fora, espero que itens sensíveis como Plan B ou preservativos sejam excluídos, mas fico curioso sobre como esses dados fluem da Walgreens para a empresa do meu aluguel. Talvez seja melhor nem saber e usar dinheiro ou cheque administrativo
Há também uma breve thread de comentários de alguns meses atrás: https://news.ycombinator.com/item?id=41213632
https://support.biltrewards.com/hc/en-us/articles/2901187842...
Mais abaixo, na seção de benefícios FSA/HSA, fica explícito que a Bilt recebe dados em nível de item
https://www.biltrewards.com/terms/walgreens
No perfil da Bilt há uma seção que mostra se ela está vinculada a outros cartões de crédito, e só o fato de os cartões aparecerem listados já é bem assustador
Eu com certeza deixei isso desativado. No fim, a Bilt é um grande programa de pontos e recompensas, então, se você vincular, pode ganhar pontos
Ainda não sei exatamente qual é o plano de negócios da Bilt, mas o núcleo parece ser coletar o máximo possível de dados financeiros das pessoas e, para isso, fazer parcerias com proprietários. Como é o meio de pagamento do aluguel, também é difícil sair completamente, e talvez seja preciso enviar um cheque em papel pelo correio ao proprietário
Foi mais invasivo do que qualquer software que já usei, e nem sei se isso é legal. Mas, nos EUA, onde praticamente não há direitos reais de privacidade, isso é possível
Em vez de fazer o usuário escolher dar esse nível de acesso, eles cadastram automaticamente no momento da criação da conta, puxam os dados e depois permitem “opt-out”. A essa altura, de qualquer forma, já podem ter acessado dados financeiros pessoais e sensíveis. Se o prédio recebe aluguel pela Bilt, a conta é praticamente obrigatória, então o sistema é estruturado para que milhões de pessoas entreguem seus dados sem perceber
Nas configurações de privacidade da Bilt há opções que podem ser desativadas, incluindo o Instant Link, e recomendo desligar todas. Dito isso, vendo as práticas obscuras dessa empresa, é difícil confiar que essas configurações sejam realmente respeitadas
Você sabia que uma empresa chamada Method Financial de algum modo tem acesso em tempo real a todo o seu conjunto de dados financeiros pessoais e sensíveis? Sabia que essa empresa, da qual você nunca ouviu falar, vende esse acesso ao maior lance? Lembra de ter concordado com isso em algum lugar? Eu também não
[0]: https://www.biltrewards.com
[1]: https://methodfi.com
Sobre “por que precisam saber o brilho da tela, a quantidade de memória, o volume atual e se estou usando fones de ouvido”, isso parece mais adicionar entropia para desanonimizar usuários entre apps do que aumentar a precisão dos lances de anúncios
Novas versões de SDKs de anúncios demoram para se disseminar. Em geral, considero que leva cerca de 6 meses após o lançamento de uma nova versão para que 50% do tráfego de anúncios venha daquela versão ou superior. Além disso, independentemente da versão lançada, cerca de 1% do tráfego nunca será atualizado para além daquela versão
Nesse mundo, faz sentido comercial coletar dados em excesso, especialmente se você acha que ninguém vai descobrir. Coisas como espaço total e livre em disco talvez não pareçam necessárias agora, mas, se um anunciante diz “quero anunciar um jogo de 10 GB gastando US$ 1 milhão por dia, mas só quero exibir em dispositivos onde ele possa ser instalado”, a informação de que o dispositivo tem apenas 8 GB de disco ou só 100 MB livres de repente se torna útil
Se você não coletava espaço em disco, agora precisa adicioná-lo ao SDK. Leva 1 a 2 meses até lançar o novo SDK, 3 meses até ter tráfego significativo e mais 3 meses até chegar a 50%. Supondo crescimento linear, você ganharia US$ 22,5 milhões em 7 meses, mas, se a lógica já existisse desde o início, teria ganhado US$ 210 milhões no mesmo período. Para o pessoal de negócios, é uma escolha fácil
Há soluções, mas todas têm desvantagens. Se você limita os dados que empresas de anúncios podem coletar, o valor dos anúncios cai. As empresas também estão removendo dados de alto risco e baixo valor, como localização. Acho melhor apoiar um modelo em que o código de anúncios possa ser atualizado independentemente do app, mas a Apple não dá sinais de que fará isso tão cedo, e a resposta do Google é tão bagunçada que não vejo isso sendo viável nos próximos 4 anos
Além disso, o brilho da tela é uma variável substituta muito grosseira para estimar a idade do usuário
“Com LTE, latitude e longitude teriam sido muito mais precisas” está errado. Sem permissão de localização, o app não consegue acessar informações de ID da célula; com permissão, ele poderia simplesmente pedir a localização diretamente.
A frase “apps gratuitos coletam localização precisa e timestamp” também é alarmista e incoerente, já que alguns parágrafos antes o autor admite que “a localização compartilhada não era tão precisa”.
Existe a possibilidade de um app solicitar uma localização precisa via serviços de localização, mas esse app não pede essa permissão. No Android isso dá para verificar; no iOS é difícil confirmar as permissões solicitadas antes de instalar e executar, mas apps assim quase certamente ficam limitados a uma localização “não tão precisa”.
Em tese, ad exchanges não deveriam criar IDs alternativos que permitam rastreamento entre apps sem o IDFA. Mas é difícil aplicar isso na prática.
“Se um usuário redefinir o Advertising Identifier, você não deve, direta ou indiretamente, combinar, correlacionar, vincular ou associar o Advertising Identifier anterior e informações derivadas ao Advertising Identifier redefinido.”
https://developer.apple.com/support/terms/apple-developer-pr...
Seria interessante comparar se os dados enviados mudam em países com leis de privacidade melhores.
Como o usuário “pediu para não rastrear”, o Advertising Tracking ID foi definido como 000000-0000; ao ligar e desligar a opção de rastreamento no app Stack e comparar as requisições, ficou claro que essa era a única diferença.
Eu sempre achei que a formulação estranha da Apple, “Ask App not to track”, deixava uma margem suspeita. O app pode não rastrear por ID, mas, se muitos outros dados forem enviados, é fácil criar uma impressão digital do usuário. Mesmo sem um ID único, em 99% dos casos pode haver dados suficientes para reconhecer o usuário.
Teoria da Privacidade Morta, versão modificada: a Dead Internet Theory diz que a maior parte da atividade na internet é feita por bots [0]. A Dead Privacy Theory diz que quase todos os dados privados, na prática, não são privados, e que cientistas de dados, engenheiros de software, analistas, administradores de banco de dados e terceiros com acesso aos bancos de dados podem acessá-los se quiserem.
[0] https://en.wikipedia.org/wiki/Dead_Internet_theory
Há mais detalhes em https://developer.apple.com/app-store/user-privacy-and-data-....
Só com brilho da tela, tempo desde o boot, memória e operadora, parece que já dá para identificar por fingerprint praticamente qualquer dispositivo.
É curioso ler o Hacker News. Pessoas de TI que criam o software que viabiliza e lucra com a indústria de anúncios e de venda/rastreamento de dados pessoais são, ao mesmo tempo, as que mais criticam isso. Difícil de acreditar.
A maioria de nós não gostaria de trabalhar em lugares que fazem esse tipo de coisa, mas também precisamos ganhar a vida. E temos pouquíssima influência sobre essas decisões.
Recentemente ouvi, na empresa, o anúncio de um novo produto de IoT e perguntei imediatamente por que ele não daria suporte a um protocolo aberto padrão como o Matter. A resposta foi que de jeito nenhum, porque o marketing quer obrigar os clientes a verem o app para obter “métricas” e oportunidades de upsell. Eu disse que tudo bem, mas que eu mesmo jamais usaria esse lixo, e fui simplesmente ignorado. Há gente demais pouco se importando para que alguém ligue. Dentro da empresa, isso ainda reduz sua popularidade, aumenta seu risco e nem ajuda. A ideia de “não lute, junte-se a eles e mude por dentro” é uma falácia.
A maioria das outras áreas de engenharia tem regras e normas publicadas, certificações profissionais do setor, e a ética fica vinculada a isso. Perder a certificação por violação ética pode, em muitos casos, encerrar a carreira.
Há muito tempo, tive a ideia de criar um servidor de rastreamento de responsabilidade. A visão geral é criar credenciais únicas para rastrear até a origem quem vendeu minhas informações.
Ainda existem alguns métodos hoje, mas acho que está na hora de explorar isso de novo. Se isso fosse oferecido como VPN/proxy+app rodando em um servidor em casa, coletando meus próprios dados diretamente e inserindo credenciais únicas ao criar contas, talvez desse para descobrir bastante coisa.
Como poderia atuar como um intermediário, também daria para deixar anotações sobre a origem das credenciais e observar os anúncios para rastrear até a fonte. Algo como: “este anúncio de suplemento para desempenho masculino está ligado à sua compra de pneus”.
Ainda tenho muitas ideias rabiscadas de forma grosseira, mas fico curioso para saber se algo assim poderia ser construído. O primeiro passo para impedir esse tipo de coisa é mostrar às pessoas quem fez isso.
https://developers.google.com/authorized-buyers/rtb/openrtb-...
Fico curioso sobre como MAID/IDfV entra em um banco de dados PII-ID.
Essa parte parece ter sido totalmente omitida. Talvez eu tenha deixado passar.
Por exemplo, uma companhia aérea, operadora de telecom ou empresa de energia poderia vendê-lo quando uso o app dela?