Proteside Docs

Eventos y detecciones

Tipos de evento que envía el SDK, qué detecta cada uno, su severidad y cuándo se convierte en alerta en el dashboard.

El SDK envía al dashboard dos tipos de evento: detecciones (algo sospechoso ocurrió en la página) y telemetría (pageviews, inventario, validaciones de pago). Las detecciones se convierten en alertas; la telemetría alimenta el inventario de Scripts, la Salud del SDK y la Integridad de Pagos.

Cómo un evento se convierte en alerta

  • La severidad la define el dashboard, no el SDK. La severidad que informa el SDK queda registrada en la alerta como "Severidad informada por el SDK". Las tablas de abajo muestran la severidad base en el dashboard.
  • Los eventos repetidos no crean alertas nuevas. Mientras haya una alerta abierta para el mismo problema (por ejemplo, el mismo script o el mismo destino de exfiltración), las nuevas ocurrencias se suman a la alerta existente. Si la alerta ya se resolvió, una nueva ocurrencia abre una alerta nueva.
  • La notificación sale solo cuando se crea la alerta. Las ocurrencias repetidas no vuelven a notificar.
  • Los scripts que ya estaban en el HTML cuando el SDK inició no generan alertas de bloqueo: aparecen en Scripts con el aviso de que siguen cargándose desde el HTML.

Consulta cómo gestionar las alertas en Alertas.

Calibración

En los primeros 30 segundos de cada carga (ajustable de 10 a 120 s), el SDK aprende qué es normal en la página. Durante la calibración, estas detecciones quedan en silencio, y lo que aparece entra en la referencia de la página: SCRIPT_INJECTION, KEYLOGGER_DETECTED, EXFILTRATION_ATTEMPT, WEBSOCKET_EXFILTRATION, FORM_ACTION_HIJACK, OVERLAY_DETECTED y la manipulación de texto o imagen de los códigos de pago.

Las demás detecciones funcionan desde el inicio, incluidos los bloqueos por regla, la verificación de destinatarios, el portapapeles y los iframes.

Scripts

EventoQué detectaSeveridadAlerta
SCRIPT_INJECTIONAparece un script ejecutable nuevo después de la calibración, fuera de lo que tenía la página. Se ignoran los archivos de framework del propio origen (/_next/static/, /_nuxt/ y similares).alta, ajustadasí
SCRIPT_MODIFIEDUn script conocido reaparece con contenido distinto. Solo cuando el contenido se puede leer (script inline o externo con CORS habilitado).alta, ajustadasí
SCRIPT_BLOCKEDUn script coincidió con una regla de bloqueo y se bloqueó.altasí, excepto si el script ya estaba en el HTML
GTM_CONTAINER_BLOCKEDUn contenedor de Google Tag Manager o una etiqueta gtag.js que no está en la lista de Contenedores GTM permitidos.altasí

Severidad ajustada: en SCRIPT_INJECTION y SCRIPT_MODIFIED, el dashboard la sube a crítica cuando el proveedor está marcado como amenaza en el catálogo, la baja a baja cuando es un proveedor catalogado y usa media para scripts propios y scripts inline. En los demás casos, queda en alta.

Datos del cliente

EventoQué detectaSeveridadAlerta
KEYLOGGER_DETECTEDUn script empieza a escuchar keydown, keyup, input, change o paste en un campo sensible después de la calibración. Un evento por registro de listener.críticasí
EXFILTRATION_ATTEMPTUna solicitud (fetch, XHR, beacon o imagen) a un host no confiable lleva número de tarjeta (validado con Luhn), CPF, CNPJ, correo electrónico o clave Pix. Las imágenes con query string larga a un host no confiable se reportan aunque no tengan esos patrones.ajustadasí
WEBSOCKET_EXFILTRATIONUna conexión WebSocket a un host desconocido después de la calibración. Los mensajes no se inspeccionan.críticasí
FIELD_ACCESSUn script registró un listener en un campo sensible. Un evento por script, tipo de campo y tipo de listener.informativano

Son hosts confiables para la exfiltración: el propio origen, la API de Proteside, los proveedores de pago y las herramientas de analytics conocidos, y los hosts que la página usó durante la calibración. El SDK inspecciona hasta 64 KB de cada cuerpo y envía solo los nombres de los patrones encontrados, nunca el contenido.

Severidad ajustada: la exfiltración queda en crítica cuando el destino es un proveedor marcado como amenaza o cuando el cuerpo contiene tarjeta, CPF o CNPJ; queda en baja cuando el destino es un procesador de pagos o un proveedor catalogado; en los demás casos, queda en alta.

Formularios, iframes y superposiciones

EventoQué detectaSeveridadAlerta
FORM_ACTION_HIJACKCambió el atributo action de un formulario, incluso en formularios creados después.críticasí
OVERLAY_DETECTEDUn elemento posicionado (absolute o fixed, z-index mayor que 100) cubre el centro de un campo sensible o del área de pago. Se ignoran los elementos con modal, cookie, consent, gdpr, banner, toast, notification o tooltip en la clase o en el id. Se repite en cada verificación mientras persista.altasí
IFRAME_REPLACEDCambió la dirección del iframe de un proveedor de pagos conocido.altasí
IFRAME_UNEXPECTEDUn iframe de un proveedor de pagos que no está en Orígenes de iframe esperados, o cualquier iframe que cubra la mitad o más de un iframe esperado. Requiere la lista completa.altasí
CARD_FIELD_OUTSIDE_VAULTUn campo de tarjeta editable en la página principal, fuera del iframe del proveedor. Requiere la lista de orígenes completa.altasí

Pago

EventoQué detectaSeveridadAlerta
PIX_TAMPEREDEl código Pix mostrado cambió a otro que no coincide con la referencia, o el destinatario no está entre los confiables.críticasí
BOLETO_TAMPEREDLa línea digitable cambió, o el banco no está entre los confiables.críticasí
CRYPTO_ADDRESS_SWAPLa dirección Bitcoin o Ethereum cambió, o no está entre las confiables.críticasí
UPI_TAMPEREDEl código UPI cambió, o el VPA no está entre los confiables.críticasí
QR_TAMPEREDEl código de otro método por QR (PayNow, PromptPay, DuitNow, QR Ph, HK FPS, Transferencias 3.0, CoDi o billetera QR) cambió, o la imagen de un código QR pasó a venir de otro dominio.críticasí
AMOUNT_TAMPEREDEl monto del código es distinto del informado en expectPayment(), o el mismo destinatario apareció con otro monto.críticasí
CLIPBOARD_HIJACKEl contenido copiado al portapapeles parece un código de pago y no coincide con la referencia.altasí
PAYMENT_VALIDATEDSe leyó y validó un código de pago. Alimenta la Integridad de Pagos.informativano

Detalles en Integridad de pagos y Pix.

Entorno e instalación

EventoQué detectaSeveridadAlerta
SERVICE_WORKER_BLOCKEDUn service worker registrado (nuevo o existente) que no está en Service workers permitidos. Requiere la lista completa.altasí
SERVICE_WORKER_REGISTEREDSe registró un service worker permitido.informativano
INSTALLATION_ORDER_WARNINGHay scripts antes del bootstrapper en el <head>. No se envía si Orden de instalación está en Silenciar.mediasí

Telemetría

Estos eventos nunca se convierten en alerta:

EventoCuándo se envía
PAGEVIEWEn cada carga y en cada Proteside.pageChanged(). Con el SDK en pausa, es el único evento que se envía.
BASELINE_CALIBRATINGAl inicio de la calibración.
BASELINE_CLASSIFIEDJusto después, con el inventario de scripts de la página (dirección, hash del contenido, tamaño y clasificación).
BASELINE_ESTABLISHEDAl terminar la calibración, con los totales aprendidos.

Generados por el dashboard

Algunas alertas no vienen de un evento del SDK, sino de verificaciones en el servidor:

AlertaOrigenSeveridad
SCRIPT_INTEGRITY_MISMATCHEl contenido de un script autorizado cambió respecto al hash aprobado.alta
HEADER_CHANGEDUn header de seguridad de la página de pago cambió de valor.media
CSP_VIOLATIONUn reporte de CSP enviado a Proteside señala un host que no está en el inventario. Consulta CSP y headers.baja
SDK_SILENTUn dominio con historial pasó 24 horas sin sesiones reales. Se resuelve solo cuando vuelve el tráfico.media

Próximos pasos

En esta página