O submundo da exploração de redes de cartão de crédito
(chargebackstop.com)- Um serviço SaaS, ao investigar um aumento repentino na taxa de recusas de autorização de cartões, descobriu um ataque de teste de cartões usando nomes gerados automaticamente e domínios de e-mail estranhos
- O ataque se parecia mais com uma operação manual ou com automação leve, de no máximo 4 cartões por minuto, do que com tráfego massivo de bots, e os cartões tinham em comum o mesmo banco, a mesma fonte de recursos e emissão nos EUA
- Em canais públicos do Telegram e ferramentas online, eram compartilhados BIN, CVC, data de validade, formas de gerar números de cartão com alta chance de aprovação em sites específicos e ferramentas de execução automática do Stripe Checkout
- Entre os pagamentos fraudulentos bem-sucedidos, 15% viraram chargeback, e scripts em Python criados com ChatGPT foram usados para aceitar disputas, emitir reembolsos, cancelar assinaturas e fazer verificações
- A pontuação de risco padrão do Stripe Radar ficou baixa na maioria dos casos, entre 0 e 5, e a defesa mais útil na prática foi usar regras personalizadas do Radar para limitar o número de falhas por hora
Descoberta do ataque de teste de cartões e resposta inicial
- Algumas semanas atrás, surgiu um alerta de que a taxa de recusas de autorização de cartões estava mais alta do que o normal
- No painel do Stripe, foram identificados muitos pagamentos com falha de usuários com nomes que pareciam gerados automaticamente e domínios de e-mail estranhos
- O serviço interpretou isso como um típico ataque de teste de cartões, ativou o Stripe Radar e adicionou ao backlog a tarefa de colocar CAPTCHA no checkout
- Na mesma época, Pieter Levels e Danny Postma também compartilharam ataques semelhantes no Twitter
- Pieter Levels escreveu que reembolsou e cancelou 240 clientes chamados
Jake Smith, vindos das Filipinas, e que o total de pagamentos de teste de cartão foi de US$ 7.000 - Danny Postma escreveu que estavam ocorrendo cobranças fraudulentas com o nome
jack smithe que era necessária uma solução rápida da Stripe
- Pieter Levels escreveu que reembolsou e cancelou 240 clientes chamados
Um padrão de ataque quase manual
- Algumas semanas depois, o alerta de taxa de recusas voltou a aparecer, e a resposta começou com a adição de regras temporárias no Stripe Radar
- Observando o tráfego em detalhe, o invasor testava no máximo 4 cartões por minuto, e na maior parte do tempo a intensidade e a consistência do ataque eram ainda menores
- Segundo o material de prevenção a testes de cartão da Stripe, a implementação desse serviço estava relativamente bem protegida
- Os usuários precisavam fazer login antes de abrir o checkout
- Era usado o Payment Element, junto com alguns sinais adicionais
- Pelos critérios da documentação da Stripe, o nível de proteção contra teste de cartões deveria estar perto de
excellent
- Após investigação adicional e revisão com colegas, concluiu-se que esse tráfego era mais próximo de um ataque manual ou de uma automação muito leve
Parâmetros de cartão e ferramentas circulando em canais públicos
- A maioria dos cartões usados no ataque apresentava as mesmas características
- Todos foram emitidos pelo mesmo banco
- Todos tinham a mesma fonte de recursos
- Todos foram emitidos nos Estados Unidos
- Os parâmetros dos cartões eram parecidos demais, o que levantou dúvida sobre se eram realmente cartões vazados de um banco
- Em canais de acesso público, foram encontrados BIN, CVC, data de validade dos cartões de crédito e links para ferramentas que geram números de cartão válidos a partir desses dados
- BIN significa Bank Identification Number, os primeiros 6 a 8 dígitos do número do cartão
- A fonte de recursos indica se o cartão é debit, credit ou prepaid
- Em canais públicos do Telegram, também havia mensagens ensinando a obter ilegalmente Spotify Premium ou YouTube Premium
- Existia um ecossistema clandestino público que compartilhava parâmetros de cartão com alta chance de aprovação em sites específicos, normalmente SaaS
- O ataque contra esse serviço provavelmente também começou em algum servidor privado de Discord ou canal de Telegram, mas não foi possível identificar a origem exata
- Em canais públicos, apareciam com frequência mensagens dizendo que tudo seria tornado privado em alguns dias, sugerindo que boa parte da atividade ocorria em locais inacessíveis
- Também existiam várias ferramentas online que recebiam listas de cartões geradas automaticamente e as executavam em sessões arbitrárias do Stripe Checkout
- Foi surpreendente perceber que até o Stripe Checkout, controlado de ponta a ponta pela Stripe, podia ser vulnerável à automação
- Parte do código dessas ferramentas gerava endereços de e-mail inválidos aleatórios do Gmail
A limpeza posterior: disputas, reembolsos e cancelamento de assinaturas
- Alguns invasores conseguiram completar pagamentos e comprar o produto de fato, o que elevou o custo da limpeza posterior
- Para medir a escala, foi feita uma consulta no armazenamento de dados por clientes com mais de 5 pagamentos com falha desde 1º de maio
- Um script em Python criado com ChatGPT foi usado para extrair os domínios de e-mail desses clientes
- Com base nessa lista de domínios, foi feita uma consulta ao banco de dados para obter a lista de pagamentos bem-sucedidos feitos por clientes com e-mails do mesmo domínio
- Outro script gerado com ChatGPT foi usado para verificar quais pagamentos já estavam em disputa
- Entre os pagamentos fraudulentos bem-sucedidos, 15% viraram chargeback
- Taxa de chargeback: {p:15}
- Decidiu-se aceitar todas as disputas e arcar com a taxa de £20 da Stripe por caso
- Foi criada na Stripe uma restricted key com privilégio mínimo, e o ChatGPT gerou um script para aceitar os chargebacks
- Em seguida, um script buscou os pagamentos da lista, reembolsou os que não estavam em disputa e cancelou as assinaturas ativas dos clientes que haviam feito esses pagamentos
- Mesmo nos pagamentos reembolsados, ainda podia haver perda de taxas da Stripe e da rede no pagamento original e no processo de reembolso
- Um script final de verificação confirmou que todos os pagamentos estavam em estado de disputa aceita ou reembolso, e que nenhum desses clientes ainda tinha assinatura ativa
- O ChatGPT recomendou cautela na execução dos scripts e testes com amostras pequenas; os scripts foram revisados manualmente, e nenhum dado de cliente, ID ou chave de API foi compartilhado
O peso das práticas de aprovação dos bancos americanos
- O mundo dos pagamentos online é visto como bastante injusto para os lojistas
- A chance de vencer uma disputa é baixa
- Pela Stripe, a atividade de disputas precisa ser mantida abaixo de 0,75%
- O lojista paga £20 por disputa, ganhe ou perca
- Ao mesmo tempo, os bancos, especialmente os americanos, ainda podem aprovar pagamentos mesmo quando
- O nome completo está errado
- O CVV/CVC é inválido
- A data de validade está errada
- O endereço de cobrança foi fornecido apenas em parte e o ZIP code também está errado
- Mesmo nessas condições, a autenticação 3D Secure nem sempre era acionada
- Fica a dúvida sobre por que o lojista deve ser responsabilizado por pagamentos em que só o número do cartão estava correto
- Em cartões prepaid, a possibilidade desses tipos de verificação pode ser limitada, mas ainda haveria espaço para melhora
As regras do Stripe Radar que realmente funcionaram
- A resposta inicial foi ativar o Stripe Radar
- O Stripe Radar é uma solução baseada em machine learning, projetada para dar uma pontuação a cada pagamento e bloquear automaticamente alguns casos quando certos indicadores não batem
- Neste caso, o julgamento padrão do Radar não ajudou muito
- A maioria dos pagamentos fraudulentos recebeu pontuação de risco baixa, entre 0 e 5
- Em contrapartida, alguns clientes legítimos foram bloqueados depois de falharem duas vezes no desafio 3D Secure
- Essa experiência gerou preocupação em deixar o destino dos clientes nas mãos de machine learning
- O recurso mais útil foram as regras personalizadas do Stripe Radar
- Solicitar desafio 3D Secure
- Enviar para revisão manual
- Bloquear completamente
- As regras do Radar parecem pseudocódigo, mas conseguem expressar uma lógica bastante complexa para restringir tentativas de pagamento maliciosas
- A medida mais útil foi impor limites razoáveis ao número de falhas de pagamento permitidas por cliente em 1 hora, 1 dia e 1 semana
- Adicionar CAPTCHA, monitorar a taxa de falhas e compartilhar regras personalizadas do Radar continuam sendo respostas realistas até que os bancos assumam mais responsabilidade pelas aprovações
No fim, o custo recai sobre empresas e clientes
- Taxas do processador de pagamento, multas por chargeback, custo de engenharia e até o risco de expulsão da plataforma: o custo da atividade fraudulenta é arcado por empresas no mundo inteiro
- A cobrança de £20 por chargeback pela Stripe também é vista como um exemplo de tratamento injusto aos lojistas
- No fim, esses custos acabam sendo repassados aos clientes na forma de preços mais altos
- As redes de pagamento das quais dependemos todos os dias são altamente exploráveis, e a decisão final sobre se um cartão pode ser cobrado fica a critério do banco emissor
- Enquanto os bancos não assumirem mais responsabilidade pela aprovação, o que resta aos lojistas é acompanhar de perto a taxa de falhas nas autorizações, adicionar CAPTCHA e melhorar as regras do Stripe Radar
1 comentários
Comentários do Hacker News
O mais surpreendente não é o fato de haver grupos explorando pagamentos via Stripe, mas sim o autor ter feito o ChatGPT criar um script para automatizar o processamento de pagamentos
O problema é especialmente que era para lidar com chargebacks e, pelo contexto do texto, parecia que o autor não tinha a competência técnica para escrever ou validar esse script por conta própria
Ele ficou indignado por ter confiado que a Stripe cuidaria da prevenção a fraudes e essa confiança ter sido traída, mas acaba de novo confiando cegamente em outra tecnologia que não entende
O problema não é só a Stripe, e sim a atitude de delegar confiança a qualquer lugar e esperar que dê certo
O autor não delegou o processamento de pagamentos; foi mais como criar um script para percorrer os chargebacks dessas contas e, na prática, clicar no botão de “aceitar”
Também não sei de onde veio a conclusão de que ele não tinha competência técnica, e no texto ele disse que “revisou cuidadosamente todos os scripts e não compartilhou dados de clientes, IDs nem chaves de API”
No processo, apenas economizou tempo criando scripts com o ChatGPT
Não sei se é uma pessoa não técnica ou apenas alguém tentando poupar tempo, mas, sinceramente, esse tipo de capacidade de execução deveria ser elogiado
Esses scripts não decidiram vida ou morte nem tomaram decisões centrais do negócio; eram ferramentas que filtravam grandes volumes de dados e geravam rapidamente resultados que podiam ser verificados manualmente
Na verdade, parece um dos casos em que o ChatGPT é mais útil: uma ferramenta de amplificação de capacidade, em que um fundador com pouco tempo obtém rapidamente conhecimento especializado pontual para criar scripts com um objetivo específico
Antes, para obter o mesmo resultado, seria preciso encontrar um freelancer, contratar e explicar tudo, o que levaria semanas; agora dá para fazer quase de graça e instantaneamente
Entendo a reação automática de achar isso “surpreendente” ou irresponsável, mas soa bastante como uma reação do tipo “essa geração de hoje”
Se esse é o futuro, acho melhor os desenvolvedores apoiarem o aumento da autossuficiência de pessoas não técnicas e pensarem em como melhorar o processo de fundadores pedirem scripts ao ChatGPT de forma adequada
É difícil dizer que me falta especialização técnica nessa área; eu só estava tentando usar meu tempo da forma mais eficiente possível
O autor já respondeu que revisou os scripts e não enviou dados sensíveis, então não há muito mais a acrescentar sobre isso
Muita gente usa o ChatGPT de forma eficaz, mas não confia cegamente no resultado. Para mim, o ChatGPT é um ponto de partida, não o produto final
Nem todo mundo é idiota como aquele advogado que colou em uma petição citações de precedentes alucinadas, sem verificar
Já li muitos textos parecidos, mas não me lembro muito de casos em que, sem o texto ser um metatexto sobre programação ou depuração em si, o autor de repente diz que programou dependendo do Stack Overflow
Se você é uma empresa estrangeira que recebe pagamentos nos EUA, deve simplesmente prever isso como custo operacional
A fraude com cartão de crédito nos EUA é socializada. O consumidor final não é responsabilizado, então não faz questão de usar coisas como chip e PIN, autenticação em duas etapas ou 3D Secure
Quando encontra uma transação suspeita, aperta um botão no app do banco e, em poucos minutos, a cobrança é cancelada
Bancos e processadores de pagamento também têm incentivo para fazer as transações passarem da forma mais rápida e fácil possível, para que as pessoas usem mais
Como o autor disse, em geral o pagamento é aprovado mesmo que a data de validade, o endereço de cobrança e o CEP não batam
O lado negativo é que toda a responsabilidade é empurrada para o comerciante, que não tem escolha a não ser aumentar os preços para todos para compensar
Na Dinamarca também há a mesma proteção ao consumidor, possibilidade de chargeback e garantias governamentais para que o consumidor não perca dinheiro caso sua conta bancária seja invadida
Mesmo assim, no ponto de compra há proteções fortes, como chip e PIN obrigatórios e 3D Secure
Não acho que exista uma razão racional para os EUA não terem melhor segurança em cartões. Parece simplesmente que eles não querem
Nos EUA, normalmente é cerca de 2% do valor da transação, enquanto na UE é limitado a no máximo 0,3%
E mesmo isso ainda parece muito, considerando o volume de dinheiro que está sendo movimentado
Esse custo também acaba sendo socializado e repassado ao consumidor, e até quem paga em dinheiro arca com preços mais altos
A propósito, no 3D Secure, dependendo dos termos de alguns bancos, o titular do cartão pode ser responsabilizado por compras fraudulentas
Se a autenticação em duas etapas for pelo celular, basta roubarem o celular junto com a carteira; já vi notícias de pessoas que de fato perderam milhares de dólares assim
Eles só veem recompensas na forma de “pontos”, de 1 a 2 centavos por dólar, no máximo uns 5 centavos, e como 1 centavo aparece como 100 pontos, parece algo interessante
O que não se vê é o acréscimo de 3% a 5% ou mais nos preços gerais dos produtos, chargebacks e custos de processamento, pagamentos fraudulentos, segurança fraca, lojas que ainda aceitam tarja magnética e inúmeros intermediários
Taxas bancárias, taxas do emissor do cartão, taxas de rede e taxas de cartão premium continuam se acumulando
É um caos completo, e eu realmente odeio isso
Espero que o FedNow mude isso. É preciso eliminar os intermediários que sugam o dinheiro das pessoas e acabar com os parasitas e o desperdício
Nos últimos dois anos, administrei duas organizações das quais faço parte, e ambas foram atingidas por bots automáticos de verificação de cartão de crédito que usavam cartões bancários franceses, com muitos cartões sendo aprovados
É claro que nas duas organizações há uma história de terem ignorado meus avisos anteriores para reforçar o site de pagamentos, e uma delas ainda usava Magento 1
É só uma anedota, mas o verdadeiro problema é que cartões de crédito são uma relíquia cheia de remendos improvisados tanto quanto o ACH, e ninguém tenta consertar isso de forma significativa
O cartão de crédito foi inventado nos EUA, então a tecnologia é antiga e leva muito tempo para ser atualizada
Para pagamentos manuais, o UPI da Índia parece muito bom. Ouvi dizer que funciona de modo que o cliente aprova cada pagamento no celular antes de ele ser processado
Sobre as tarifas de chargeback, a Visa adquiriu há alguns anos uma empresa chamada Verifi
Há os novos produtos Rapid Dispute Resolution e Order Insight
O RDR permite reembolsar automaticamente uma transação antes que ela vire um chargeback, e a Visa cobra uma tarifa de 4 dólares. Isso pressupõe que o código MCC não seja de alto risco
O Order Insight permite fornecer imediatamente dados específicos sobre um pagamento contestado e, se o cliente tiver um histórico de 3 pagamentos anteriores, impede a emissão de um chargeback
No nosso negócio, foi uma decisão muito fácil com base na taxa de vitória, no valor médio do pedido e nas tarifas de chargeback
Agora também não precisamos mais nos preocupar continuamente com a regra de 1% de chargebacks da Visa ou do banco adquirente
Só se aplica a pagamentos Visa, mas eles representavam cerca de 50% do volume total de transações
Por fim, a Visa está basicamente tomando uma enorme fonte de receita dos processadores. Se o processador for a TSYS, provavelmente tentará cobrar 10 dólares de tarifa de RDR
Ouvi falar da Ethoca, e eles são muito bons em SEO. Parece bem parecida com a Verifi
Não sei por que os EUA parecem tão atrasados no setor bancário
O Reino Unido adotou chip e PIN em 2004 e tornou isso obrigatório em 2006, enquanto os EUA só acompanharam cerca de 10 anos depois
O Faster Payments oferece transferências instantâneas gratuitas entre a maioria das contas bancárias. Receber transferências de clientes nos EUA sempre foi um pesadelo, mesmo tendo uma conta Wise nos EUA
Desde que a UE introduziu a autenticação forte do cliente, a maioria dos novos pagamentos precisa ser aprovada por um app de banco no celular ou por algum outro meio de autenticação em duas etapas
Mesmo antes disso, pelo menos o CEP e o CVV tinham que bater
Essas medidas parecem uma forma de os bancos repassarem a responsabilidade por fraude ao cliente, mas, de um jeito ou de outro, o prejuízo recai sobre o cliente
Em uma cultura em que a fraude com cartão é amplamente aceita, os preços sobem para compensar esse custo
Em vez de pagar diretamente na mesa com um terminal, você entrega o cartão ao garçom e espera que ele o processe manualmente em algum lugar
Pode ter melhorado nos últimos anos, mas no Canadá esse método não é usado desde o início dos anos 2000
Como resultado, ela consegue atender Y% mais clientes e, se Y for maior que X, pode obter mais lucro no longo prazo
Nos EUA, graças à escala gigantesca, esse método funciona para muitos negócios
Por exemplo, para o McDonald's, durante o pico do almoço, provavelmente faz mais sentido em termos de margem processar pagamentos rapidamente do que gastar 1 segundo verificando se não há fraude
Isso pode não funcionar na Europa, mas acho que, ao analisar o custo real, está faltando a dimensão de velocidade e escala das transações
No momento em que o equilíbrio entre fraude e lucro se tornar desfavorável para as empresas, os principais mecanismos antifraude nos EUA serão ativados quase imediatamente
Há milhares de pequenos bancos regionais espalhados por 50 estados, e cada estado também é bastante independente
Nesse ambiente, implantar novas tecnologias de grande porte é muito mais difícil
Chip e PIN não funcionam para pagamentos pela internet
Transferências bancárias não se encaixam bem internacionalmente
Verificação de endereço e CVV são fáceis de ativar, mas podem rejeitar também mais transações legítimas. Às vezes, esse custo é maior do que o risco de fraude que elas detectam
A responsabilidade por fraude é empurrada para o lojista, não para o cliente
Claro que os custos de fraude do lojista acabam sendo refletidos nos preços e o cliente paga mais, mas só no sentido de que todos os custos de fraude acabam sendo repassados ao consumidor
Na prática, não é assim; é um problema complexo, e atores dos dois lados do Atlântico estão fazendo jogos de má-fé para explorar as mudanças
Também se ignoram os papéis envolvidos
Pessoas na faixa dos 20 e poucos anos com empregos estáveis estão se tornando, por vários motivos, uma parte cada vez menor do sistema real
Há também quem veja jovens trabalhadores na faixa dos 20 anos, na UE e em outras regiões, sendo explorados e perdendo direitos
Um servidor de uma empresa onde trabalhei no passado foi invadido, roubaram chaves de API e fizeram carding a partir desse servidor
O PayPal disse que devíamos pagar 100 mil dólares em tarifas
Éramos um lugar que processava no máximo 5 pagamentos por dia, de cerca de 4.500 dólares cada, por matrículas em cursos
O hacker enviava solicitações de autorização de 1 dólar por segundo para números aleatórios de cartão de crédito
No fim, não tivemos que pagar as tarifas de carding, mas eles não se importam
Eles não se importam porque ganham dinheiro com a fraude
Nas configurações, tínhamos definido que só seriam permitidos pedidos entre 2.500 e 6.000 dólares, mas eles não verificavam as solicitações de autorização
É realmente uma loucura
Isso foi por volta de 2010, e na época o Stripe não estava disponível no Canadá
A proteção antifraude do Stripe é terrível, e isso é intencional
Eles repassam descaradamente aos clientes o custo de gerenciamento de risco. É obsceno
Trabalho na área de prevenção a fraudes com cartão de crédito e, embora eu nem seja tão bom assim nisso, nossa equipe de 3,5 pessoas criou e manteve facilmente um sistema para bloquear esse tipo de ataque de carding
A principal forma de uma empresa evitar ataques de carding é tornar-se um pouco mais incômoda de atacar do que o próximo alvo
Do meu ponto de vista, o Stripe parece achar aceitável continuar sendo a grande rede mais fácil de atacar, já que consegue repassar a dor e o custo aos usuários
O Stripe poderia evitar facilmente esses prejuízos com um custo muito baixo
Eles estão escolhendo deixar os usuários sofrerem para economizar alguns trocados
Stripe Taxes e o câmbio péssimo seguem exatamente a mesma estratégia
No começo, eles não prestam o serviço direito, até que você acaba percebendo que os custos de transação do Stripe chegam a uma porcentagem de dois dígitos do preço total
Sou o Edwin, da Stripe. Quero acrescentar que este texto é uma cópia de um post antigo de um mês atrás (https://piotrmierzejewski.com/p/card-networks-exploitation)
Desde então, corrigimos a maior parte desse problema. Esse tipo de teste de cartões diminuiu, e agora o Radar deve detectar esses ataques
Quanto aos chargebacks, nós também odiamos chargebacks e queremos reduzi-los o máximo possível
Na verdade, estamos trabalhando em algumas coisas que devem ajudar nisso
Os bancos cobram taxas de chargeback em valores variados, e a média disso aparece na forma de uma taxa de US$ 20
Não é uma taxa exclusiva da Stripe, e não lucramos com chargebacks
Acabamos de concluir o planejamento da empresa para o restante do ano, e reduzir esse tipo de fraude é prioridade máxima
Se você acha que está passando por algo parecido, pode enviar um e-mail para edwin@stripe.com
Sério, estou dizendo isso como cliente de vocês
No ano passado, trabalhei em uma empresa de e-commerce numa função em que eu cuidava de sistemas, CI, infraestrutura e software
Esse tipo de coisa era muito comum, e eu passava pelo menos um dia por semana identificando e bloqueando novos padrões
Os invasores estavam validando cartões de crédito por meio do nosso sistema
No fim, bloqueamos quase todos os ataques no carrinho e no checkout, mas as requisições continuavam chegando
Mais tarde, enquanto eu vasculhava logs por causa de um problema de PHP sem relação, um engenheiro de software comentou que havia um tráfego enorme entrando na página que salvava métodos de pagamento para uso posterior
Essa plataforma disparava uma cobrança de US$ 1 para verificar se o cartão era real, e os invasores usavam isso para testar cartões continuamente
Ladrões de cartões de crédito são realmente muito engenhosos
Já ouvi o conselho de que, se você quer detectar fraude com a Stripe, quer realmente reduzi-la e tem volume suficiente de transações, é melhor treinar um modelo próprio de detecção de fraude
Até algo como um classificador logístico simples pode funcionar
O Stripe Radar não é ajustado às particularidades de cada negócio, e um modelo próprio pode incorporar sinais adicionais, como qual produto está sendo comprado e quanto tempo passa entre abrir o site e fazer a compra
Regras customizadas do Radar também funcionam até certo ponto
Entendo que muitos negócios independentes não tenham recursos nem disposição para fazer isso
Também existem soluções que dá para comprar, mas são caras e, em geral, voltadas a lojistas com alto volume de transações
Talvez um dia a Stripe lance um produto Radar ajustável com mais granularidade
Mais um motivo pelo qual a indústria de cartões de crédito deveria desaparecer
Os protocolos de segurança inexistem ou não foram atualizados desde o começo do século 21, e os abusos por intermediários são incontáveis
O custo de lidar com essa dor de cabeça é repassado aos lojistas na forma de taxas de transação mais altas e taxas de chargeback, e no fim chega aos consumidores
Também não podemos esquecer que a indústria de cartões de crédito incentiva os piores hábitos de consumo nos consumidores e perpetua um ciclo interminável de escravidão por dívida