Proteside Docs

Eventos e detecções

Tipos de evento que o SDK envia, o que cada um detecta, a severidade e quando vira alerta no dashboard.

O SDK envia ao dashboard dois tipos de evento: detecções (algo suspeito aconteceu na página) e telemetria (pageviews, inventário, validações de pagamento). As detecções viram alertas; a telemetria alimenta o inventário de Scripts, a Saúde do SDK e a Integridade de Pagamento.

Como um evento vira alerta

  • A severidade é definida pelo dashboard, não pelo SDK. A severidade informada pelo SDK fica registrada no alerta como "Severidade informada pelo SDK". As tabelas abaixo mostram a severidade base no dashboard.
  • Eventos repetidos não criam alertas novos. Enquanto houver um alerta aberto para o mesmo problema (por exemplo, o mesmo script ou o mesmo destino de exfiltração), novas ocorrências somam no alerta existente. Se o alerta já foi resolvido, uma nova ocorrência abre um alerta novo.
  • A notificação sai só quando o alerta é criado. Ocorrências repetidas não notificam de novo.
  • Scripts que já estavam no HTML quando o SDK iniciou não geram alerta de bloqueio: eles aparecem em Scripts com o aviso de que continuam carregando pelo HTML.

Veja como tratar os alertas em Alertas.

Calibração

Nos primeiros 30 segundos de cada carregamento (ajustável de 10 a 120 s), o SDK aprende o que é normal na página. Durante a calibração, estas detecções ficam em silêncio, e o que aparece entra na referência da página: SCRIPT_INJECTION, KEYLOGGER_DETECTED, EXFILTRATION_ATTEMPT, WEBSOCKET_EXFILTRATION, FORM_ACTION_HIJACK, OVERLAY_DETECTED e a adulteração de texto ou imagem de códigos de pagamento.

As demais detecções funcionam desde o início, inclusive bloqueios por regra, verificação de recebedores, área de transferência e iframes.

Scripts

EventoO que detectaSeveridadeAlerta
SCRIPT_INJECTIONUm script executável novo aparece depois da calibração, fora do que a página tinha. Arquivos de framework da própria origem (/_next/static/, /_nuxt/ e similares) são ignorados.alta, ajustadasim
SCRIPT_MODIFIEDUm script conhecido reaparece com conteúdo diferente. Só quando o conteúdo pode ser lido (script inline ou externo com CORS liberado).alta, ajustadasim
SCRIPT_BLOCKEDUm script casou com uma regra de bloqueio e foi barrado.altasim, exceto se o script já estava no HTML
GTM_CONTAINER_BLOCKEDUm container do Google Tag Manager ou uma tag gtag.js fora da lista de Containers GTM permitidos.altasim

Severidade ajustada: em SCRIPT_INJECTION e SCRIPT_MODIFIED, o dashboard sobe para crítica quando o fornecedor está marcado como ameaça no catálogo, baixa para baixa quando é um fornecedor catalogado e usa média para scripts próprios e scripts inline. Nos demais casos, fica alta.

Dados do cliente

EventoO que detectaSeveridadeAlerta
KEYLOGGER_DETECTEDUm script passa a escutar keydown, keyup, input, change ou paste em um campo sensível depois da calibração. Um evento por registro de listener.críticasim
EXFILTRATION_ATTEMPTUma requisição (fetch, XHR, beacon ou imagem) para um host não confiável leva número de cartão (validado por Luhn), CPF, CNPJ, e-mail ou chave Pix. Imagens com query string longa para host não confiável são reportadas mesmo sem esses padrões.ajustadasim
WEBSOCKET_EXFILTRATIONUma conexão WebSocket para um host desconhecido depois da calibração. As mensagens não são inspecionadas.críticasim
FIELD_ACCESSUm script registrou listener em um campo sensível. Um evento por script, tipo de campo e tipo de listener.informativanão

São hosts confiáveis para exfiltração: a própria origem, a API do Proteside, provedores de pagamento e ferramentas de analytics conhecidos e os hosts que a página usou durante a calibração. O SDK inspeciona até 64 KB de cada corpo e envia só os nomes dos padrões encontrados, nunca o conteúdo.

Severidade ajustada: a exfiltração fica crítica quando o destino é um fornecedor marcado como ameaça ou quando o corpo tem cartão, CPF ou CNPJ; fica baixa quando o destino é um processador de pagamento ou um fornecedor catalogado; nos demais casos, fica alta.

Formulário, iframes e sobreposições

EventoO que detectaSeveridadeAlerta
FORM_ACTION_HIJACKO atributo action de um formulário mudou, inclusive em formulários criados depois.críticasim
OVERLAY_DETECTEDUm elemento posicionado (absolute ou fixed, z-index acima de 100) cobre o centro de um campo sensível ou da área de pagamento. Elementos com modal, cookie, consent, gdpr, banner, toast, notification ou tooltip na classe ou no id são ignorados. Repete a cada verificação enquanto persistir.altasim
IFRAME_REPLACEDO endereço do iframe de um provedor de pagamento conhecido mudou.altasim
IFRAME_UNEXPECTEDUm iframe de provedor de pagamento fora das Origens de iframe esperadas, ou qualquer iframe cobrindo metade ou mais de um iframe esperado. Exige a lista preenchida.altasim
CARD_FIELD_OUTSIDE_VAULTUm campo digitável de cartão na página principal, fora do iframe do provedor. Exige a lista de origens preenchida.altasim

Pagamento

EventoO que detectaSeveridadeAlerta
PIX_TAMPEREDO código Pix exibido mudou para outro que não bate com a referência, ou o recebedor não está entre os confiáveis.críticasim
BOLETO_TAMPEREDA linha digitável mudou, ou o banco não está entre os confiáveis.críticasim
CRYPTO_ADDRESS_SWAPO endereço Bitcoin ou Ethereum mudou, ou não está entre os confiáveis.críticasim
UPI_TAMPEREDO código UPI mudou, ou o VPA não está entre os confiáveis.críticasim
QR_TAMPEREDO código de outro método por QR (PayNow, PromptPay, DuitNow, QR Ph, HK FPS, Transferencias 3.0, CoDi ou carteira QR) mudou, ou a imagem de um QR code passou a vir de outro domínio.críticasim
AMOUNT_TAMPEREDO valor do código é diferente do informado em expectPayment(), ou o mesmo recebedor apareceu com outro valor.críticasim
CLIPBOARD_HIJACKO conteúdo copiado para a área de transferência parece um código de pagamento e não bate com a referência.altasim
PAYMENT_VALIDATEDUm código de pagamento foi lido e validado. Alimenta a Integridade de Pagamento.informativanão

Detalhes em Integridade de pagamento e Pix.

Ambiente e instalação

EventoO que detectaSeveridadeAlerta
SERVICE_WORKER_BLOCKEDUm service worker registrado (novo ou existente) fora dos Service workers permitidos. Exige a lista preenchida.altasim
SERVICE_WORKER_REGISTEREDUm service worker permitido foi registrado.informativanão
INSTALLATION_ORDER_WARNINGHá scripts antes do bootstrapper no <head>. Não é enviado se Ordem de instalação estiver em Silenciar.médiasim

Telemetria

Estes eventos nunca viram alerta:

EventoQuando é enviado
PAGEVIEWA cada carregamento e a cada Proteside.pageChanged(). No SDK pausado, é o único evento enviado.
BASELINE_CALIBRATINGNo início da calibração.
BASELINE_CLASSIFIEDLogo depois, com o inventário de scripts da página (endereço, hash do conteúdo, tamanho e classificação).
BASELINE_ESTABLISHEDAo fim da calibração, com os totais aprendidos.

Gerados pelo dashboard

Alguns alertas não vêm de um evento do SDK, mas de verificações no servidor:

AlertaOrigemSeveridade
SCRIPT_INTEGRITY_MISMATCHO conteúdo de um script autorizado mudou em relação ao hash aprovado.alta
HEADER_CHANGEDUm header de segurança da página de pagamento mudou de valor.média
CSP_VIOLATIONUm relatório de CSP enviado ao Proteside aponta um host fora do inventário. Veja CSP e headers.baixa
SDK_SILENTUm domínio com histórico ficou 24 horas sem sessões reais. É resolvido sozinho quando o tráfego volta.média

Próximos passos

Nesta página