Guia · 3 min de leitura

Pare os skimmers de cartão no seu checkout

Um skimmer é um punhado de linhas de JavaScript que copia os dados do cartão enquanto o cliente digita. Veja como eles entram e as camadas que os mantêm do lado de fora.

Atualizado em · HackGrade

O código e a configuração ficam em inglês.

Como os skimmers entram

  • Um plugin ou tema vulnerável permite que um atacante adicione um script às suas páginas ou ao banco de dados.
  • Um script de terceiros que você carrega (chat, analytics, avaliações) é ele próprio comprometido.
  • Uma senha de administrador roubada permite que alguém cole um script no tema ou numa caixa de “código personalizado”.

1. Faça o inventário de todos os scripts do checkout

Liste cada script das páginas de carrinho e checkout, quem é o responsável e por que ele é necessário. Remova o resto. É exatamente o que pede o requisito 6.4.3 do PCI DSS v4.0.

2. Use campos de pagamento hospedados

Gateways de pagamento que exibem os campos do cartão no próprio iframe (por exemplo, o Payment Element da Stripe ou os hosted fields do PayPal) mantêm os números de cartão fora da sua página. Skimmers ainda podem injetar um formulário falso, então mantenha também as outras camadas.

3. Tranque o checkout com CSP

Limite de onde os scripts podem carregar e, tão importante quanto, para onde podem enviar dados (connect-src, form-action):

header
Content-Security-Policy: default-src 'self'; script-src 'self' https://js.stripe.com; frame-src https://js.stripe.com; connect-src 'self' https://api.stripe.com; form-action 'self'; object-src 'none'; base-uri 'self'

4. Fixe arquivos de terceiros com SRI

Para arquivos estáticos de uma CDN, o Subresource Integrity faz o navegador recusar um arquivo alterado:

HTML
<script src="https://cdn.example.com/lib.min.js"
        integrity="sha384-REPLACE_WITH_THE_FILE_HASH"
        crossorigin="anonymous"></script>

SDKs de pagamento que mudam com frequência (como o Stripe.js) não podem ser fixados assim. Use CSP para eles.

5. Detecte alterações

O requisito 11.6.1 do PCI DSS v4.0 pede uma forma de detectar alterações não autorizadas nos scripts e cabeçalhos das páginas de pagamento. A análise profunda do plano Pro do HackGrade acompanha os scripts do checkout em busca de novas origens, alterações, código inline que envia dados para fora e formulários de pagamento falsos.

6. Impeça testes de cartão

Bots usam checkouts fracos para testar cartões roubados. Ative as ferramentas antifraude do seu provedor de pagamento, adicione um CAPTCHA ou um limite de taxa ao checkout e fique de olho em rajadas de pedidos pequenos que falham.

Fontes

Guias relacionados

Grátis · Na hora · Sem cadastro

Descubra sua nota antes que outra pessoa descubra.

Análise passiva. Nada é atacado sem a sua permissão.

Comece grátis. Planos pagos a partir de US$ 12 por mês, ou um relatório avulso por US$ 29. Ver preços