Um lojista que assiste a um ataque de card testing vê a mesma coisa toda vez. Pedidos do item mais barato do catálogo, chegando em rajadas, cada um com um nome diferente e um cartão diferente e o mesmo endereço de entrega. Centenas de checkouts abandonados por dia que nenhum humano criou. Quase nenhum deles dá certo, que é a parte que faz as pessoas presumirem que o problema é de outra pessoa.
A Signifyd mediu uma alta de 175% nos ataques de card testing entre janeiro e abril de 2026 na comparação com os mesmos meses de 2025, e atribui o aumento à validação automatizada de credenciais. Na mesma janela, ela aponta a pressão de fraude na América do Norte 33% acima e as tentativas de tomada de conta 78% acima.
O motivo de isso ser tão difícil de parar no Shopify não tem nada a ver com a qualidade das defesas. Tem a ver com onde elas ficam.
O que o atacante está de fato fazendo
A parte confusa é o motivo. Alguém está passando centenas de pedidos pela sua loja e abandonando quase todos, o que parece vandalismo até você entender que os pedidos nunca foram o objetivo.
Muitos dos números de cartão nunca foram roubados de ninguém. Eles foram adivinhados. Um número de cartão não é aleatório. Os primeiros seis a oito dígitos são o Bank Identification Number, que identifica o banco emissor, e essas faixas são públicas. O último dígito é um dígito verificador produzido pela fórmula de Luhn, que é uma aritmética que qualquer pessoa consegue rodar. Um atacante escolhe um BIN pertencente a um banco que valha a pena atacar, preenche os dígitos do meio com candidatos e calcula o dígito final para que cada número seja estruturalmente válido. Isso produz um estoque infinito de números que parecem reais para qualquer formulário que confira o formato deles.
Estruturalmente válido está bem longe de utilizável. A maioria desses números não pertence a conta nenhuma, e dos que pertencem, a maioria está vencida, congelada ou já cancelada. O mesmo vale para números obtidos em um vazamento, que ficam meses parados em um dump antes de alguém chegar até eles.
Então o atacante tem uma pilha de números candidatos e nenhuma ideia de quais estão vivos. Existe exatamente uma forma de descobrir, e é perguntar a um banco. Perguntar diretamente a um banco não é algo que um criminoso possa fazer. Perguntar a um lojista é trivial, porque todo checkout de ecommerce do mundo existe para passar um cartão a um processador de pagamentos e devolver a resposta.
Essa resposta é o produto. Um cartão que aprova uma cobrança de dois dólares é um cartão vivo, com validade em funcionamento e código de segurança válido, e vale muitas vezes mais do que um número não testado em um mercado de revenda. A mercadoria é irrelevante. O atacante não está comprando.
Por que a sua loja e não a de outra pessoa
Nada na sua loja atraiu isso. O card testing roda contra os checkouts que forem baratos de alcançar, e uma loja Shopify é barata de alcançar porque o Shopify é consistente. Os mesmos padrões de URL funcionam em todas as lojas da plataforma, então um script escrito contra uma funciona contra todas sem modificação.
Cobranças pequenas mantêm a coisa discreta. Os atacantes trabalham de um em um e de dois em dois, no produto mais barato do catálogo, porque um valor pequeno atrai menos escrutínio dos sistemas de risco e custa quase nada nas raras vezes em que passa. Vale-presente e itens de valor zero são melhores ainda, e os lojistas relatam que são os primeiros a ser visados.
Como eles chegam ao checkout sem nunca navegar pela sua loja
Esta é a parte que surpreende as pessoas, e não há nenhuma exploração de falha nela.
O Shopify oferece permalinks de carrinho, um recurso documentado que todo lojista usa em links de anúncio e campanhas de e-mail. Uma URL no formato /cart/{variant_id}:{quantity} monta um carrinho e manda o visitante direto para o checkout, pulando a página do produto, a página do carrinho e todo o resto. Ele existe para que um e-mail de Black Friday consiga jogar alguém dentro do checkout com um toque.
Um bot usa isso pelo mesmo motivo que um profissional de marketing. Uma requisição cria o carrinho e cai no checkout, com a vitrine pulada por completo. Acrescente um navegador automatizado conduzindo a etapa de pagamento, espalhe o tráfego por endereços de proxy residencial para que nenhum se destaque, e a coisa toda roda sozinha.
Nada nessa sequência está quebrado ou é incomum. O atacante está usando um recurso suportado exatamente como ele foi projetado, em um volume e com um propósito que ninguém pretendia.
O ataque nunca carrega as páginas que você está defendendo
Lojistas que descrevem esses ataques no fórum da própria comunidade do Shopify relatam que o tráfego chega direto na URL do checkout, sem navegar pela vitrine para chegar lá. Esse único detalhe explica por que as respostas de sempre voltam limpas.
Um captcha na página do produto guarda uma página que o bot nunca requisita. Um app que bloqueia países ou endereços filtra sessões de vitrine que o bot nunca abre. A análise de fraude do Shopify pontua pedidos concluídos, e uma tentativa de card testing que é recusada nunca vira um deles, então a ferramenta que deveria pegar fraude não tem nada à frente dela. Um lojista naquele tópico relata que o reCAPTCHA foi contornado e os bots continuaram chegando ao checkout.
O padrão relatado é consistente o bastante para ser reconhecido: uma nova conta de cliente por tentativa, endereços de e-mail rotativos que com frequência são reais e vieram de vazamentos, e um único endereço de entrega reutilizado por baixo de todos eles. O alvo é o que custar menos. Os lojistas citam produtos de preço baixo recém-adicionados, e vale-presente ou itens de valor zero onde a loja os tem.
O volume é o que torna caro ignorar. Um lojista relata centenas de checkouts abandonados fraudulentos por dia, outro um ataque rodando sem parar desde junho de 2025, e um terceiro mediu uma alta de 18,4% nos checkouts abandonados ao longo de quatro semanas.
Toda cobrança recusada ainda custa alguma coisa a você
Esta é a parte que os lojistas subestimam, e é o motivo pelo qual uma loja com zero pedidos fraudulentos ainda pode sair muito prejudicada de um ataque.
Uma requisição de autorização que falha é um dado sobre você, enviado ao banco que a recusou. Um número suficiente delas, próximas o bastante umas das outras, e a sua loja começa a parecer um risco ruim para as instituições que decidem se aprovam os seus clientes. O Shopify descreve o resultado diretamente: transações que falham degradam a posição de um lojista junto aos bancos, e clientes legítimos são recusados muito depois de o ataque terminar, com uma queda persistente nas taxas de autorização.
O Shopify informa que os lojistas cobertos pela sua proteção veem 13% mais das suas vendas legítimas aprovadas. Leia isso como o tamanho do buraco e não como um recurso, porque é o mesmo número visto do outro lado.
Existe um segundo custo sem nenhuma vantagem. Os registros fraudulentos de checkout abandonado não podem ser removidos, e os lojistas relatam ter confirmado isso com o Shopify Flow, com o admin e com a API igualmente. Toda taxa de conversão, todo número de abandono de carrinho e todo relatório de funil que cobre aquelas semanas está permanentemente errado.
A Visa agora monitora a enumeração como uma categoria própria
O Visa Acquirer Monitoring Program consolidou os antigos programas de fraude e de disputa em um só, com limites em vigor desde 1º de junho de 2025 e um período consultivo que se encerrou em 30 de setembro de 2025.
A métrica principal é uma razão entre fraudes e disputas e transações liquidadas:
VAMP Ratio = Count of [Fraud (TC40) + Disputes (TC15)] / Count of Settled Transactions (TC05)
Para lojistas nos Estados Unidos, no Canadá, na União Europeia e na Ásia-Pacífico, o limite Excessive era uma razão VAMP igual ou superior a 220 pontos-base junto com pelo menos 1.500 eventos de fraude e disputa em um mês. Esse limite caiu para 150 pontos-base em 1º de abril de 2026.
Abaixo dele fica a cláusula que se aplica especificamente ao card testing. A Visa exige que os adquirentes mantenham os lojistas abaixo de dois limites de enumeração:
| Medida | Limite |
|---|---|
| Enumeration Ratio: autorizações enumeradas divididas por todas as autorizações, aprovadas e recusadas igualmente | 2.000 pontos-base, ou seja, 20% |
| Enumeration Transaction Count: transações enumeradas em um mês, aprovadas e recusadas igualmente | 300.000 |
Leia a primeira linha com atenção, porque o denominador são tentativas de autorização e não pedidos concluídos. Uma loja de volume modesto pode cruzar 20% das suas tentativas de autorização durante um único ataque prolongado sem nunca chegar perto de 300.000 transações. Lojas pequenas não estão protegidas por serem pequenas aqui. Elas estão expostas por isso.
A Visa não publica os valores das taxas associadas a esses níveis. Processadores de pagamento que documentam o programa descrevem multas aplicadas por transação contabilizada na métrica assim que o período de carência termina, e pelo menos um documenta um nível de alerta antecipado que não traz taxa nenhuma. Quem precisar do número deve perguntar ao seu adquirente em vez de confiar em uma cifra de blog, e isso inclui os números que circulam com valores em dólar bem confiantes anexados.
O que o Shopify faz, e onde ele para
O Shopify publicou uma descrição das suas próprias defesas em junho de 2026, e os números que estão nela merecem ser levados a sério.
O modelo de machine learning dele pontua cada tentativa de pagamento antes que ela chegue ao processador, e bloqueia aproximadamente 90% dos ataques de card testing em checkouts de cartão de crédito feitos como convidado. Essa é uma defesa real fazendo um trabalho real, e é gratuita para quem está no Shopify Payments.
A cobertura tem limites. Ela vale para checkouts de cartão de crédito feitos como convidado, e apenas para lojistas que usam o Shopify Payments. Aproximadamente 90% também deixa mais ou menos uma tentativa em cada dez passar, o que nos volumes que os lojistas descrevem ainda é um número substancial de autorizações batendo nas suas taxas todo dia.
O Shopify também descreve como os ataques mudaram, e a descrição importa mais do que os percentuais. Os ataques modernos são distribuídos e de baixo volume, espalhados por milhares de lojistas ao mesmo tempo, roteados por proxies residenciais para parecerem tráfego comum. Esse é um projeto deliberado para derrotar exatamente a defesa que a maioria das pessoas busca primeiro.
A borda consegue ver o checkout agora, o que nem sempre foi verdade
Durante anos o conselho padrão foi manter um proxy longe do checkout. Orientações que ainda circulam hoje dizem aos lojistas Shopify para deixar os subdomínios de checkout sem proxy.
Esse conselho está desatualizado, e testá-lo leva um minuto. Requisite a URL do checkout em uma loja Shopify ativa e ela resolve para o seu próprio domínio principal, no formato yourdomain.com/checkouts/cn/<token>. Não está em um hostname pertencente ao Shopify. Uma zona que passa pelo proxy da Cloudflare vê essas requisições e pode agir sobre elas.
Isso muda o que está disponível para você. Rate limiting, managed challenges e regras de WAF podem ser escritos contra o caminho que o ataque de fato usa, e não contra a vitrine em que ele nunca toca.
Uma exceção merece ser dita claramente em vez de descoberta depois. O Shop Pay e outros checkouts acelerados redirecionam para um domínio pertencente ao Shopify fora da sua zona, e nenhuma regra sua alcança esse caminho.
Regras que combinam com o ataque
As orientações publicadas para caminhos de checkout começam em torno de 5 a 10 requisições POST por IP por minuto, e depois bloqueiam ou desafiam por vários minutos. Isso é baixo o bastante para parar um bot martelando o endpoint e alto o bastante para deixar em paz um comprador real que está tentando de novo um cartão recusado.
Escalone o rigor por caminho em vez de aumentá-lo em todo lugar. Caminhos de checkout e de pagamento merecem tratamento mais rigoroso do que a navegação por produtos, que é toda a vantagem de decidir na borda em vez de dentro de um app que não consegue distinguir os dois.
Use um desafio antes de usar um bloqueio. A LexisNexis descobriu que 56% dos varejistas dos Estados Unidos e 54% dos lojistas de ecommerce dos Estados Unidos relatam aumento de evasão de clientes ligado às suas próprias medidas antifraude, o que é um custo real pago por compradores reais. Um managed challenge custa um segundo a um falso positivo. Um bloqueio custa a venda a você.
Combine o desafio com o rate limit em vez de escolher entre os dois. Um desafio age no formulário. Um rate limit pega requisições que nunca renderizam o formulário, que é o comportamento documentado aqui.
Aceite o que um limite por IP não consegue fazer. Contra um ataque distribuído e espalhado fino por proxies residenciais, a contagem por IP é um piso e não uma resposta, e a versão honesta deste conselho diz isso. Um lojista naquele tópico da comunidade relata ter gasto milhares de dólares em um WAF com sucesso limitado, que é o que acontece quando uma boa ferramenta é apontada para a camada errada.
Tire o alvo do caminho antes de ajustar qualquer coisa
As vitórias mais baratas aqui não são regras, e os lojistas relatam que elas funcionam.
Despublique produtos de valor zero e vale-presente de que a loja não precisa, porque são esses que os bots buscam primeiro. Um lojista relata que despublicá-los junto com a mudança para um checkout de três páginas cortou a maior parte do volume.
Capturar o pagamento manualmente em vez de automaticamente remove o sinal de autorização instantânea que o atacante veio buscar, o que torna a sua loja um péssimo banco de testes e o incentiva a procurar outro lugar.
Nenhuma dessas duas coisas exige um WAF, um app ou uma conversa com o seu adquirente. As duas reduzem o quanto o alvo é atraente, que é uma resposta mais duradoura do que tentar vencer em ajustes um atacante capaz de trocar de endereço mais rápido do que você consegue listá-los.
O que isto é e o que não é
Este artigo descreve padrões de ataque que lojistas relataram publicamente e limites publicados pela Visa. Não é orientação jurídica nem de conformidade, e as taxas específicas, as exigências de remediação e as obrigações de reporte que se aplicam à sua conta vêm do seu adquirente.
Se a sua loja está sob ataque agora, a ordem das operações é curta. Tire os alvos baratos do caminho, ponha um desafio e um rate limit no caminho do checkout, e leve a sua taxa de autorização ao seu provedor de pagamentos antes que o padrão de recusas vire a coisa que você explica em vez da coisa que você conserta.