Com um Bypass de Filtro e Alguns Números de Cartão de Crédito Hexadecimais, Hacked Credit Card Numbers Are Still, Still Google-able
A Word on Credit Card Hacking
Se você me conhece, ou leu meu post anterior, você sabe que eu trabalhei para uma empresa muito interessante antes de entrar no Toptal. Nesta empresa, nosso provedor de pagamento processou transações em torno de $500k por dia. Parte do meu trabalho era fazer com que o nosso provedor PCI-DSS fosse compatível, ou seja, compatível com o Payment Card Industry – Data Security Standard.
É seguro dizer que este não foi um trabalho para os fracos de coração. Neste ponto, eu sou bastante intimo com Cartões de Crédito (CCs), hacking de Cartão de Crédito e segurança web em geral. Afinal, nosso trabalho era proteger os dados dos nossos usuários, para evitar que eles fossem hackeados, roubados ou mal utilizados.
Você pode imaginar minha surpresa quando vi o artigo de Bennett Haselton de 2007 no Slashdot: Why Are CC Numbers Still So Easy to Find? Em resumo, Haselton foi capaz de encontrar números de Cartão de Crédito através do Google, primeiro procurando pelos primeiros oito dígitos de um cartão no formato “nnnn nnnn”, e mais tarde usando algumas consultas avançadas construídas sobre intervalos de números. Por exemplo, ele poderia usar “4060000000000000..406099999999999999” para encontrar todos os Números de Conta Primária (PANs) de 16 dígitos do CHASE (cujos cartões começam todos com 4060). A propósito: aqui está uma lista completa dos números de identificação do Emitente.
Na altura, não pensei muito nisso, pois o Google começou imediatamente a filtrar os tipos de consultas que o Bennett estava a utilizar. Quando você tentava Google um intervalo como esse, o Google servia uma página que dizia algo do tipo “Você é uma pessoa má”.
Sobre seis meses atrás, enquanto lembrava com um velho amigo, esse hack de número de cartão de crédito veio à mente novamente. Pouco depois, descobri algo alarmante. Não terrivelmente alarmante, mas certamente alarmante – então eu notifiquei o Google, e esperei. Depois de um mês sem resposta, eu os notifiquei novamente em vão.
Com um pequeno ajuste no velho truque do Haselton, eu pude acessar o Google números de Cartão de Crédito, números do Seguro Social, e qualquer outra informação sensível de interesse.
Bennett
Yesterday, alguns amigos meus (buhera.blog.hu e _2501) trouxeram um post mais recente do Slashdot à minha atenção: Números de Cartão de Crédito Ainda no Google-able.
O autor do artigo, novamente Bennett Haselton, que escreveu o artigo original em 2007, afirma que os números de cartão de crédito ainda podem ser pesquisados no Google. Você não pode usar o hack de consulta de intervalo de números, mas ainda pode ser feito. Em vez de usar intervalos simples, você precisa aplicar uma formatação específica à sua consulta. Algo do género: “1234 5678” (repare no espaço no meio). Muitos hits surgem para esta consulta, mas muito poucos são de real interesse. Entre os concorrentes estão números de telefone, códigos postais e outros. Não é extremamente alarmante. Mas aí vem o hack de cartão de crédito twist.
A Metodologia
Estava curioso se ainda era possível obter números de cartão de crédito online da maneira que pudemos em 2007. Como qualquer bom Engenheiro, costumo abordar as coisas usando um plano inteligente e bem construído que precisa ser perfeitamente executado com a máxima precisão. Se você já tentou esse método, você pode saber que ele pode falhar realmente – nesse caso o seu planejamento cuidadoso e esforço vai para o desperdício.
Em TI temos uma tendência a super-intelectualizar, mesmo quando isso não é exatamente justificado. Tenho visto meus amigos e colegas quebrarem completamente as aplicações usando entradas aparentemente aleatórias. A taxa de sucesso deles foi impressionante e o esforço que investiram nisso foi quase zero. Foi quando eu aprendi que para abrir uma porta, às vezes você só precisa bater.
O Hack de Cartão de Crédito
O parágrafo anterior foi uma tentativa engenhosamente disfarçada de me fazer parecer menos idiota quando eu mostro minhas “habilidades de hacking de elite”. Oops.
Primeiro, eu tentei várias abordagens baseadas em busca de gama. Depois, olhei para pesquisas avançadas e praticamente qualquer coisa que você possa inventar em uma hora ou mais. Nenhuma delas deu resultados significativos.
E depois tive uma ideia maluca.
E se houvesse uma discrepância entre o motor de filtragem e o back-end real? E se a mensagem que recebi do Google (“Você é uma pessoa má”) não fosse do back-end em si, mas sim de um motor de filtragem designado que o Google tinha implementado para censurar consultas como a minha?
Faria muito sentido de uma perspectiva arquitectónica. E bugs como esse são bastante comuns – nós os vemos no ITSEC o tempo todo, particularmente em soluções IDS/IPS, mas também em software comum. Há um procedimento de filtragem que processa os dados e só os dá ao back-end se achar que os dados são aceitáveis/não-maliciosos. No entanto, o back-end e o servidor de filtragem quase nunca analisam a entrada exatamente da mesma forma. Assim, uma entrada aparentemente válida pode passar pelo filtro e causar estragos no back-end, contornando efetivamente o filtro.
Você geralmente pode acionar esse tipo de comportamento fornecendo sua entrada em várias codificações. Por exemplo: em vez de usar números decimais (0-9), que tal convertê-los para hexadecimais ou octal ou binário? Bem, adivinhe o que…
Procure isto e o Google lhe dirá que você é uma pessoa má: “4060000000000000..406099999999999999”
Procure por isto e o Google terá todo o gosto em obrigá-lo: “0xe6c8c69c9c000..0xe6d753e6ecfff”.
A única coisa que precisa de fazer é converter números de cartão de crédito de decimal para hexadecimal. É isso.
Os resultados incluem…
- Arquivos CSV volumosos preenchidos com informação potencialmente sensível.
- Faulty e-commerce log files.
- Informação sensível compartilhada em sites de hackers (e até no Facebook).
É realmente assustador.
Eu sei que este bug não vai inspirar nenhuma pesquisa de segurança, mas aí você tem. O Google fez este boo-boo e negligenciou até me escrever de volta. Bem, isso acontece. Eu não invejo o pessoal da segurança do grande G, no entanto. Eles devem ter muitas coisas para cuidar. Estou postando sobre este hack de número de cartão de crédito aqui porque:
- É relativamente baixo impacto.
- Ainda quem estiver interessado e motivado já deve ter descoberto isso.
- Para citar Haselton, se os grandes jogadores não estão assumindo a responsabilidade e agindo nestas façanhas, então “a coisa certa a fazer é iluminar o problema e insistir que eles o consertem o mais rápido possível”.
Este truque pode ser usado para procurar números de telefone, SSNs, TFNs, e mais. E, como Bennett escreveu, estes números são muito mais difíceis de mudar do que o seu Cartão de Crédito, para o qual você pode simplesmente ligar para o seu banco e cancelar o cartão.
Sample Queries
WARNING: NÃO faça o Google com o seu próprio número de cartão de crédito por completo!
Procure qualquer CC PAN começando por 4060:4060000000000000..4060999999999999 ? 0xe6c8c69c9c000..0xe6d753e6ecfff
alguns números de telefone húngaros do fornecedor ‘Telenor’? Sem problema:36200000000..36209999999 ? 0x86db02a00..0x86e48c07f
Look for SSNs. Felizmente, estes não retornam muitos resultados significativos:100000000..999999999 ? 0x5f5e100..0x3b9ac9ff
Existem muitos, muitos mais.
Se você achar algo muito alarmante, ou se você estiver curioso sobre hacking de cartão de crédito, por favor deixe-o nos comentários ou entre em contato comigo por e-mail ou no Twitter em @synsecblog. Chamar a polícia é geralmente inútil nestes casos, mas pode valer a pena tentar. O comerciante ou o fornecedor do cartão geralmente está mais interessado em resolver o problema.
Where to Go From Here
Well, o Google obviamente tem que corrigir isso, possivelmente com a ajuda dos grandes jogadores como Visa e Mastercard. Na verdade, Haselton fornece uma série de sugestões interessantes nos dois artigos ligados acima.
O que você precisa fazer, no entanto (e porque eu escrevi este post), é espalhar a palavra. A fraude de cartão de crédito é uma grande indústria, e a simples conscientização pode salvar você de se tornar uma vítima. Além disso, se você tiver um site de comércio eletrônico ou lidar com qualquer processamento de cartão de crédito, por favor, certifique-se de que você está seguro. O PCI-DSS é uma boa diretriz, mas está longe de ser perfeito. Além disso, é sempre uma boa idéia para o Google seu site com a consulta avançada “site:mysite.com”, procurando por números sensíveis. Há uma chance muito, muito pequena de você encontrar qualquer coisa – mas se você encontrar, você deve agir imediatamente.
Também, um pouco de conselho amigável: Nunca deves dar a informação do teu cartão de crédito a ninguém. Meu conselho seria usar o PayPal ou um serviço similar sempre que possível. Você pode verificar estes links para mais informações:
- Dicas de segurança de cartão de crédito da Visa
- Dicas de segurança de cartão de crédito da Citi
E algumas dicas gerais: não baixe coisas que você não pediu, não abra e-mails de spam e lembre-se que seu banco nunca vai pedir sua senha.
Por falar nisso: Se você acha que não há ninguém estúpido o suficiente para cair nessas técnicas de hacking de cartão de crédito ou dar suas informações de cartão de crédito na internet, dê uma olhada em @NeedADebitCard.
Fique seguro!