1 pontos por GN⁺ 2023-11-18 | 1 comentários | Compartilhar no WhatsApp
  • UIs de redefinição de senha mostram parte do número de telefone para confirmar a conta, permitindo coletar fragmentos do número em vários serviços usando apenas o endereço de e-mail
  • Como cada serviço adota critérios diferentes para mascaramento de PII, combinar os dígitos expostos por eBay, Paypal, Yahoo, LastPass, Google, Facebook, Twitter, Hotmail e Steam revela boa parte de um número de telefone americano de 10 dígitos
  • Usando os dados públicos de alocação de números da NANPA e da National Pooling Administration, é possível reduzir bastante os candidatos com base no código de área, no prefixo e no bloco do número do assinante
  • Serviços como Amazon e Twitter, que mostram parte do e-mail ao iniciar a redefinição de senha com o número de telefone, podem ser usados para cruzar os números restantes com a dica mascarada de e-mail
  • Como a exposição do número de telefone pode levar a SIM swapping, ataques SS7, invasão de correio de voz, rastreamento de localização e spoofing de caller ID, é mais seguro que as dicas de recuperação mostrem rótulos definidos pelo usuário em vez de fragmentos de PII

Vazamento de informação criado pela UI de redefinição de senha

  • O processo de redefinição de senha em vários sites mostra opções de recuperação como link por e-mail, código por SMS ou código por chamada telefônica após a inserção do e-mail
  • Ao exibir opções por SMS ou chamada, muitas UIs revelam parte do número de telefone para que o usuário consiga identificá-lo
  • Se você souber o endereço de e-mail, poderá iniciar o fluxo de redefinição de senha em várias contas e obter alguns dígitos do número de telefone
  • O problema é que não existe um padrão para mascarar informações de identificação pessoal (PII) como números de telefone, e a implementação fica a critério dos desenvolvedores de cada serviço
  • No caso do Paypal, a redefinição de senha mostra o primeiro dígito e os últimos quatro, mas o desafio de 2FA após login mostra apenas os três últimos
    • Para um atacante que só conhece o e-mail, 5 dos 10 dígitos ficam expostos
    • Para um atacante que conhece e-mail e senha, apenas 3 dígitos são mostrados

Diferenças de mascaramento entre serviços e efeito da combinação

  • Foram comparados os fluxos de redefinição de senha de vários sites populares para verificar se podem ser iniciados apenas com o e-mail, se oferecem redefinição baseada em celular e quantos dígitos são expostos
  • Os padrões de exposição variam conforme o serviço
    • eBay: 3 primeiros dígitos e 2 últimos
    • Paypal: primeiro dígito e 4 últimos
    • Yahoo: primeiro dígito e 2 últimos
    • LastPass: 4 últimos
    • Google, Facebook, Twitter, Hotmail, Steam: 2 últimos
  • Se a pessoa tiver contas no eBay e no LastPass, é possível descobrir 7 dígitos de um número de telefone de 10 dígitos usando apenas o endereço de e-mail
  • Só essa combinação já reduz o espaço de busca de 1 bilhão de números para 1.000

Reduzindo candidatos com o sistema telefônico dos EUA

  • Excluindo o código do país, os números de telefone dos EUA são compostos por 3 campos
    • código de área (area code ou NPA)
    • prefixo (exchange ou Central Office Code)
    • número do assinante (subscriber number)
  • As informações obtidas com a combinação de eBay e LastPass correspondem ao código de área e ao número do assinante; os 3 dígitos faltantes não são aleatórios, mas sim o prefixo
  • A NANPA administra o plano de numeração da rede pública de telefonia do Canadá, dos EUA e seus territórios, e de alguns países do Caribe
  • A NANPA fornece como dados públicos a lista de códigos de área e seus prefixos correspondentes, disponível para consulta ou download em arquivos parseáveis
  • Se você mantiver apenas os prefixos realmente alocados por código de área, o número de candidatos diminui
    • No código de área 415 de San Francisco, há 784 prefixos possíveis em vez de 1.000, eliminando 216 opções
    • No código de área 907 do Alasca, há 625 prefixos alocados
    • No código de área 253 de Tacoma, há 458 prefixos alocados, eliminando mais da metade

Como usar até os blocos do número do assinante

  • É possível reduzir ainda mais os candidatos não só com o código de área e o prefixo, mas também com parte do número do assinante
  • A National Pooling Administration administra o pooling de números e fornece registros públicos sobre os blocos alocados
  • O pooling de números é um sistema que, em áreas de crescimento, distribui números em blocos de 1.000 em vez de lotes de 10.000
  • Por exemplo, se em 415-272-XXXX apenas o bloco 415-272-9XXX estiver alocado, então 415-272-[0-8]XXX pode ser descartado e apenas 9XXX permanece como candidato
  • Dessa forma, a quantidade de números válidos possíveis cai de 10.000 para 1.000

Candidatos restantes e redefinição de senha reversa

  • Se o alvo em Tacoma tiver contas no eBay e no LastPass, primeiro é possível coletar 7 dígitos e depois excluir 542 opções com a NANPA, reduzindo a lista para 458 candidatos
  • Ao verificar a alocação de blocos com dados da National Pooling Administration, no exemplo os candidatos possíveis caem para 445 números de telefone
  • Para reduzir ainda mais os candidatos restantes, podem ser usadas fontes externas de dados como mecanismos de busca, pipl, BeenVerified, Spokeo e serviços de busca reversa por telefone
  • No addon da WhitePages para Twilio, era possível fornecer apenas o número de telefone e pagar 10 centavos para obter informações pessoais
  • Como esses métodos não são 100% confiáveis, o mesmo fluxo de redefinição de senha é reutilizado ao contrário

Serviços que obtêm dica de e-mail a partir do número de telefone

  • Amazon e Twitter permitem iniciar a redefinição de senha informando o número de telefone e mostram parte do endereço de e-mail para o qual será enviado o link de redefinição
  • A Amazon mostra a primeira e a última letra do nome de usuário e o domínio completo, além de permitir deduzir o tamanho do nome de usuário pela quantidade de asteriscos
  • O Twitter mostra as duas primeiras letras do nome de usuário e a primeira letra do domínio, e também permite deduzir o tamanho pela quantidade de asteriscos
  • O fluxo de ataque é o seguinte
    • Iniciar a redefinição de senha em vários sites com o e-mail do alvo para coletar partes do número de telefone
    • Excluir códigos de área, prefixos e blocos do número do assinante inexistentes usando os dados públicos da NANPA e da National Pooling Administration
    • Tentar redefinições de senha com os candidatos restantes e comparar os caracteres mascarados do e-mail com o e-mail do alvo
  • Seguindo esse processo, é possível obter o número de telefone de 10 dígitos vinculado ao endereço de e-mail sem fazer uma única ligação

email2phonenumber e phonerator

  • O email2phonenumber é uma ferramenta que recebe parte de um número de telefone e gera uma lista de números válidos possíveis ao remover códigos de área e prefixos inexistentes
  • A ferramenta usa os recursos de redefinição de senha da Amazon e do Twitter para testar números de telefone e comparar o e-mail mascarado exibido com o e-mail informado
  • Ela randomiza parâmetros de requisição, imita o comportamento do usuário e também oferece suporte ao uso de servidores proxy
  • Além da Amazon e do Twitter, há vários outros serviços com redefinição de senha baseada em número de telefone, e a ferramenta planejava aceitar pull requests para suportá-los
  • O phonerator foi planejado como um serviço online para gerar listas de números possíveis com base em dados de sistemas telefônicos de vários países, e depois foi lançado
    • A direção era oferecer suporte a vários países, mais detalhes, histórico e filtros avançados
    • Informações como operadora, região e tempo de posse do número podem ser usadas para reduzir ainda mais os candidatos

O problema é maior em países com números curtos

  • Embora o foco esteja nos números dos EUA, em outros sistemas telefônicos o mesmo mascaramento pode expor ainda mais informação
  • Números de celular na Espanha começam com 6 e, mais recentemente, também com 7, e têm 9 dígitos no total
  • Se serviços como eBay ou LastPass não reduzirem o mascaramento para se adequar a números mais curtos, no caso da Espanha o LastPass sozinho já revela 5 dos 9 dígitos
  • Em países como Iceland, Estonia e San Salvador, onde se usam números de 7 dígitos, 5 dos 7 dígitos de clientes do eBay podem ficar expostos para alguém que só conhece o e-mail
  • Combinando contas de eBay e LastPass, nesses países é possível obter o número de telefone completo apenas com o endereço de e-mail

Ataques possibilitados pela obtenção do número de telefone

  • Descobrir o número de telefone pode ser o ponto de partida para vários ataques de segurança e privacidade
  • Entre os vetores possíveis estão
    • SIM swapping: mover o número para o SIM do atacante por meio de engenharia social, extorsão ou insiders da operadora, usando isso para redefinição de senha ou bypass de 2FA
    • Ataques SS7: o abuso desse protocolo legado usado na interação entre operadoras já foi demonstrado em várias conferências de segurança como meio de rastrear localização ou interceptar comunicações
    • Ataques ao correio de voz: a invasão do correio de voz pode afetar a segurança da conta
    • Rastreamento de localização: problemas de rastreamento com base em número de telefone já foram tratados separadamente
    • Spoofing de caller ID: serviços online permitem falsificar o número de origem para uso em engenharia social

Mitigações propostas e resposta à divulgação

  • Apenas mascarar parte da PII não é suficiente
  • Em países com números de telefone curtos, mascarar a mesma quantidade de dígitos expõe uma proporção maior da informação
  • Mesmo em e-mails, ocultar só o nome de usuário é insuficiente, já que o domínio pode revelar o trabalho da pessoa, e o TLD pode indicar se é estudante ou até o país
  • A alternativa é permitir que o usuário defina rótulos para e-mail ou telefone
    • Ex.: “e-mail pessoal”, “telefone do trabalho”
    • Nas dicas de redefinição de senha, mostrar o rótulo em vez de fragmentos de PII
  • O ideal é que o usuário não forneça número de telefone se não for necessário; se for, pode considerar um número virtual como o Google Voice ou um SIM separado
  • No processo de divulgação responsável, foram contatados serviços que mostravam mais de 2 dígitos ou expunham código de área e prefixo
    • O LastPass atualizou a máscara para mostrar apenas os 2 últimos dígitos
    • O eBay mudou para um formato que mostra o primeiro dígito e os 2 últimos, mas isso ainda não é suficiente
    • O Yahoo estava, na época, revisando o risco e as mitigações
    • O Paypal considerou intencional o comportamento de mostrar 5 dígitos para quem só conhece o e-mail e decidiu não agir

1 comentários

 
GN⁺ 2023-11-18
Comentários no Hacker News
  • Comprei peças de carro de um sujeito meio picareta, mas já fazia semanas que ele estava com o dinheiro e não tinha enviado tudo o que eu tinha pedido
    Como conversamos em várias plataformas, cada uma revelava um pedacinho da identidade dele e, juntando tudo, o quadro completo apareceu
    Liguei para o local de trabalho dele, no mesmo setor das peças que ele vendia, e pedi que enviassem as peças; quando também perguntei de leve se o empregador dele estava envolvido nessa venda, a atitude mudou na hora e, no dia seguinte, ele enviou tudo o que eu tinha comprado, além de alguns extras

    • Relendo agora, parece que ele interpretou a parte em que mencionei o empregador como se eu suspeitasse que ele roubava peças da empresa, mas não era isso
      Eu só precisava de um ponto de pressão
  • Um detalhe que faltou no texto é o banco de dados CNAM, limitado aos EUA
    O CNAM é o banco de dados usado quando a operadora mostra um identificador de chamadas em texto, como "SMITH JOHN", em vez de "+1 (555) 123-4567"
    A consulta não é gratuita, mas deve haver uma forma relativamente barata de processar algumas centenas de números, e também dá para criar um algoritmo para escolher o candidato mais plausível, já que nome e e-mail muitas vezes se parecem
    Os dados também costumam estar errados de maneiras interessantes, mas ainda assim são bem úteis

    • Basta chamar a API de consulta da Twilio com curl
      /usr/local/bin/curl -s -X GET "https://lookups.twilio.com/v1/PhoneNumbers/…; -u $accountsid:$authtoken | /usr/local/bin/jq '.'
      Não lembro o custo exato, mas pode ser algo como 1 centavo por consulta, e ela também mostra a operadora e se é celular ou linha fixa
    • Pelo menos na tela do cliente da T-Mobile, dá para definir esse valor como quiser para cada linha [1]
      Depois de mudar o CNAM, conferi com a consulta de número da Twilio e, em princípio, você deveria usar o nome real da pessoa, mas na prática é um sistema de honra
      [1] https://www.t-mobile.com/support/tutorials/device/app/ios/to...
      [2] https://www.twilio.com/code-exchange/lookup
    • Fico pensando por que, se possível, isso não é vinculado ao SSN da pessoa
  • Uso meu nome real no endereço de e-mail, e meu número de telefone também está público em várias listas telefônicas
    Na Suécia, a prática padrão é que endereço e telefone fiquem publicamente pesquisáveis, a menos que você opte por não permitir isso; é basicamente a informação que estava nas listas telefônicas dos anos 80 e foi para a internet nos anos 90
    Esses dados pessoais públicos podem ser úteis, mas também podem ser explorados de forma maliciosa
    Por outro lado, como há muito PII público — como SSN, endereço, telefone e data de nascimento — as pessoas nem precisam tratar essas informações como se fossem secretas, e isso torna necessário ter documentos de identidade e eID adequados para que não seja fácil se passar por alguém só por saber alguns números
    Se alguém quiser meu número de telefone, pode pegar um e-mail com meu nome e sobrenome, encontrar 100 pessoas com o mesmo nome num site de buscas e, sabendo a cidade e uma idade aproximada, reduzir isso a alguns candidatos
    Os registros públicos mostram data de nascimento, carros, renda e até outras pessoas registradas no mesmo endereço, então coletar informações de fontes públicas na Suécia não é difícil

  • É surpreendente que o PayPal mostre 5 dígitos, incluindo o DDD, para alguém que só sabe o endereço de e-mail, e, ironicamente, mostre só 3 dígitos se o atacante souber a senha da vítima
    Também é estranho que eles considerem isso como “funcionando conforme o esperado” e não façam nada
    Fico curioso sobre como os golpistas conseguem o número pelo LinkedIn ou como o conectam a números de outras fontes; em uma empresa, os funcionários continuam caindo em mensagens falsas do CEO

    • Só agora percebi que este texto é de 2019, mas no PayPal isso literalmente ainda funciona
    • Provavelmente o número aparece no perfil, ou eles viram o e-mail e acharam o número em outra plataforma, como o Facebook
  • No fim, valeu a pena a trabalheira de usar um endereço de e-mail diferente e um número do Google Voice para cada serviço

    • Fiz um gerador de e-mails aleatórios usando o recurso + do Gmail para criar endereços misturados
      Para serviços externos, fica algo como gary+FqZWMK@gmail.com, e na minha caixa de entrada eu converto FqZWMK no nome do serviço, como Netflix, e crio automaticamente pastas organizadas
      Como controlo totalmente o mapeamento, também posso fazer com que vários endereços aleatórios sejam enviados para uma caixa de entrada “descartável”, que vira spam automaticamente depois de um tempo
    • Se você ainda não faz isso e quer uma solução fácil, existe o Firefox Relay
  • Para usar um segundo SIM, ainda é preciso ter um dispositivo dual SIM, que nos EUA continua sendo algo relativamente de nicho
    Muitos sites consultam números VoIP e os bloqueiam, mas no Android ainda não há uma boa forma de trocar mensagens SMS da operadora pelo desktop de maneira decente
    A interface web do Google Messages esquece o dispositivo com frequência demais para ser usada seriamente, e se depois adicionarem bloqueio a VoIP pode surgir um problema de ovo e galinha em que até a autenticação em duas etapas por SMS fica bloqueada e você não consegue mais usar a conta
    Alguns serviços, como a farmácia Harris Teeter, não verificam se o número realmente é alcançável, então aceitam número VoIP, mas como o sistema não consegue enviar ligações nem mensagens, você acaba sem receber alertas de receita

    • Para usuários de Linux, o KDE Connect é a melhor interface de desktop para mensagens e mais
      Mudou a forma como meu celular e meu notebook interagem, e talvez seja meu projeto de código aberto favorito
      Dá para usar o notebook como teclado, responder mensagens de qualquer app que envie notificações e mandar arquivos de um jeito mais rápido e melhor do que qualquer outro
    • No fim, acabei comprando um SIM pré-pago e um feature phone pequeno para usar só para autenticação em duas etapas
      Tem o tamanho daqueles antigos dispositivos 2FA tipo cartão de senhas, e no começo a motivação foi que minha esposa ficava pegando meu celular de verdade para receber códigos de segurança de contas compartilhadas
      Também melhora um pouco a segurança operacional em relação a usar o número do telefone principal
    • Ou então basta ter um aparelho com suporte a eSIM; para começar, isso inclui todos os iPhones de 2018 em diante
    • O eBay não bloqueia números do Google Voice
      Pela minha experiência, o único site que bloqueava era o Discord
      Pessoalmente, prefiro usar um email dedicado menos óbvio por conta, como ebpnw@mydomain.com, para que o atacante também tenha que adivinhar o email
    • Números do Google Voice podem ser detectados mesmo quando foram portados da AT&T, e a API da Twilio os identifica como Google Voice
      iPhones dual SIM são suportados a partir do iPhone XS, iPhone XS Max e iPhone XR
      Fonte: https://support.apple.com/en-us/HT209044
      Já existem 6 gerações de iPhone dual SIM com pelo menos um eSIM
  • Esse tipo de vazamento de informação descoordenado é um problema mais profundo
    Muitos lugares compartilham os quatro últimos dígitos do SSN, e os cinco primeiros muitas vezes eram fáceis de estimar pela data de nascimento e pelo estado de nascimento, além de os primeiros números indicarem o estado onde o número foi emitido

    • Isso só se aplica a números emitidos antes de 2011
      Ainda inclui a maioria dos adultos atuais, mas mesmo assim vale separar isso
    • O problema central é ter sistemas completamente idiotas em que saber um número de nove dígitos já basta para causar dano real
      Isso não impede em nada o rastreamento e a coleta de dados por governos e grandes organizações, obriga você a continuar esbarrando num sistema de identidade nacional provisório de fato sempre que precisa fazer algo importante, e mesmo assim não oferece nenhuma das vantagens de um sistema de identidade nacional de verdade
      Gera uma quantidade enorme de sofrimento e perda de tempo sem motivo algum
    • Para muita gente, os quatro últimos dígitos são literalmente o ano de nascimento da mãe
  • Sempre me perguntei como pesquisadores de segurança justificam publicar ferramentas automatizadas de geração de email→telefone como a deste post de blog
    Parece bem provável que esse tipo de ferramenta tenha muito mais usos ruins ou assustadores do que bons
    Fico em dúvida se acham aceitável por ser “pesquisa” e por já estar de qualquer forma numa zona cinzenta, ou se sentem que está tudo bem porque conversaram com as empresas expostas e agora isso já foi neutralizado

    • Acho que o objetivo desse tipo de divulgação é fazer as empresas fecharem as brechas para reduzir o vazamento de dados em processos de redefinição de senha
      Um bom exemplo é o Firesheep: em Wi-Fi público, bastava rodar um plugin do Firefox para capturar na hora a sessão de usuários da mesma rede que tivessem feito login via HTTP
      Na época, o Facebook usava HTTP por padrão, e quando esse plugin virou notícia houve pressão para tornar o HTTPS obrigatório quase da noite para o dia, com muitas empresas seguindo o mesmo caminho
      Não é exagero dizer que essa divulgação acelerou bastante a adoção de HTTPS
      Não sei se esta divulgação terá impacto parecido, mas ainda acho melhor do que deixar esse tipo de técnica conhecida só por black hats
    • É parecido com a imprensa noticiar algo que traz consequências negativas para algumas partes envolvidas
      Dá para avaliar: “divulgar essa informação traz mais benefício do que dano?”
      As informações divulgadas por Martin Vigo em 2019 me ajudaram a alertar empregadores e clientes atuais sobre mais um modelo de ameaça a considerar ao definir como fazer redefinição de senha
      Em defesa disso, a prova de conceito originalmente publicada era bem limitada, exigia uma conta na Twilio, o que cria uma barreira de entrada, e ainda deixa pistas para analistas se for usada em crime
    • Acho que há uma base ética razoável para divulgar conhecimento, mas não para divulgar ferramentas
      É meio um segredo aberto que uma parte considerável de quem entra em cibersegurança entra porque gosta de quebrar segurança de formas inteligentes, mais do que de realmente ajudar outras pessoas a ficarem seguras
      Ainda assim, pesquisa em segurança é legal; hackear alvos aleatórios é ilegal
    • Ao tentar convencer executivos de que precisam atualizar a postura de segurança da empresa, poucas coisas são tão eficazes quanto uma demonstração imediatamente acionável
    • O lado malicioso já conhece essas técnicas e inúmeras outras vulnerabilidades, então acho aceitável expor a roupa suja do setor e até constranger as empresas para forçá-las a agir
      Também fica mais difícil para uma empresa alegar desconhecimento quando houver consequências legais