Seguridad & residencia de datos

Anti-quishing en el lado del emisor. Residencia de datos en el lado del almacenamiento.

Cada enlace Pro pasa por un pipeline anti-quishing de siete capas al emitirse, en cada cambio de destino y de forma periódica. El registro de escaneos es solo país + tipo de dispositivo, sin IP, sin user agent, sin cookie, sin perfil conductual que pueda filtrarse. El D1 en región única está disponible en Agency y Enterprise personalizado.

Datos que recopilamos

Cada byte que llega a nuestros servidores pertenece a uno de estos cuatro grupos:

Datos de cuenta

Correo, tier del plan, estado del plan, IDs de cliente y suscripción de Stripe, nombre de equipo y etiqueta de workspace opcionales. Nada más. Sin teléfono, sin dirección (la dirección de facturación permanece en Stripe), sin perfil conductual.

Datos de código

La URL de destino, un shortcode Base58 de 7 caracteres, una etiqueta + tags que defines tú, diseño QR opcional (colores / logo / marco), puerta de contraseña opcional, programación opcional. Propietario tuyo; exportable como CSV en cualquier momento.

Datos de escaneo

Bucket de día UTC + país (de CF-IPCountry) + tipo de dispositivo (móvil / tableta / escritorio / desconocido). El User-Agent en crudo se descarta de inmediato tras la clasificación. La IP nunca entra en la base de datos. Se cachea en KV para la ruta de redirección y se agrega en D1 mediante ctx.waitUntil. Los agregados de país con menos de 5 escaneos se agrupan en «Other» para evitar la reidentificación.

Metadatos de auditoría / facturación

Log append-only de mutaciones (quién hizo qué, cuándo, en qué scope), retención de 180 días. Eventos de webhooks de Stripe deduplicados por idempotencia, sin PII de clientes más allá del ID de cliente de Stripe. Log de solicitudes GDPR (exportar / eliminar / restaurar), retenido tras la eliminación de cuenta para demostrar el cumplimiento en tiempo de cada solicitud.

Para el esquema completo, consulta docs/SCHEMA.md en nuestro repositorio de código fuente; cada columna está documentada con una política de retención.

Dónde residen los datos

SuperficieProveedorRegión¿Opción de región única?
Panel + APICloudflare Pages FunctionsEdge global (PoP más cercano)Sí, solo Agency+
Registros de código (D1)Cloudflare D1 (SQLite)Región principal asignada al provisionar (hoy: ENAM)Sí, shard por tenant para Agency+
Ruta de redirección (KV)Cloudflare Workers KVReplicado en el edge globalmente para p99 <50msNo disponible (la replicación es el producto)
Backups cifradosCloudflare R2Región principal asignada al crear el bucketSí, bucket con jurisdicción EU / APAC bajo petición
PagosStripeEE. UU., gestión de PII regional mediante la propia residencia de StripeMediante contrato con Stripe
Correo transaccionalZeptoMail (Zoho)IN (región EU de Zoho disponible bajo petición)Sí, región EU de Zoho

Qué cruza fronteras, exactamente

  • Los escaneos nunca cruzan fronteras de forma que pierdan privacidad. Un escaneo desde Lisboa llega al PoP de Cloudflare en Lisboa, el worker escribe día/país/dispositivo en KV en el edge y agrega de forma asíncrona en D1 en su región principal. La IP del escaneador original reside en el estado de solicitud efímero de Cloudflare durante la duración de la solicitud HTTP y nunca se persiste en nuestra base de datos.
  • Las solicitudes al panel terminan en el PoP de Cloudflare más cercano y llaman a D1 a través de la red privada de Cloudflare. Nuestras Pages Functions leen/escriben D1 en su región asignada; el PoP del edge sirve el bundle HTML + JS desde la caché de activos estáticos global.
  • Los webhooks de Stripe cruzan la frontera una vez, Stripe (EE. UU.) hace POST a nuestro endpoint de Cloudflare Pages, que verifica el HMAC, escribe una fila mínima (event_id, type) para la idempotencia y despacha eventos posteriores.
  • El correo transaccional (Zepto) cruza la frontera una vez por envío, nuestro worker entrega una plantilla renderizada a la API de Zepto; Zepto la entrega al servidor de correo del destinatario. El contenido son enlaces de invitación, notificaciones del ciclo de vida de facturación y alertas de límite de escaneos, sin datos de escaneo de clientes.

Pipeline anti-quishing

El phishing mediante QR creció un 146% en el primer trimestre de 2026. El proveedor estándar de short links reacciona después de una queja de un cliente. Nosotros verificamos cada enlace al emitirlo, cada vez que se cambia el destino desde nuestro lado, y de forma periódica porque un cliente puede redirigir su propia URL en su propio servidor sin llamar nunca a nuestra API. El mismo pipeline de inteligencia de amenazas que impulsa nuestro escáner público en check.qr.abundera.ai se ejecuta contra cada enlace que emitimos.

Siete capas de detección, cada una con una solicitud de patente US pendiente. Cada capa alimenta un veredicto unificado; un positivo en cualquiera puede bloquear una creación, rechazar un cambio de destino o suspender un enlace ya activo.

CapaQué detectaCuándo se ejecuta
Mutabilidad de cadena de redirecciónCuántas partes independientes controlan el camino entre nuestro short link y la página final. Una cadena de dos saltos a través del redirector de otra parte es una clase de riesgo distinta a un destino directo.Creación, cambio de destino, reverificación periódica
Análisis de carga multimodalWiFi, contacto, telefonía, correo, calendario, geolocalización, criptomoneda, intent de Android y cargas de datos inline reciben cada una un analizador específico por tipo. Los esquemas bloqueados de forma estricta se rechazan al enviarse.Creación, cambio de destino
Cloaking crawler vs. navegadorPáginas que sirven contenido limpio a los escáneres y phishing a los humanos. Se detecta mediante capturas paralelas con varianza controlada de fingerprint y una puntuación de divergencia.Creación, reverificación periódica
Mutabilidad del servidor de destinoDominios recién registrados, certificados nuevos, TLDs de alta rotación, HSTS ausente y degradación del esquema de transporte. Independiente de la cadena de redirección; una cadena estática de un salto a un certificado de seis días en un TLD sospechoso sigue marcándose.Creación, cambio de destino, reverificación periódica
Procedencia de instancia físicaRegistro hash de origen colectivo, indexado por carga decodificada. Un único QR escaneado en muchas regiones dispares en una ventana corta aparece como candidato a ataque de pegatina. Cada enlace que emitimos recibe una entrada de procedencia limpia en el momento de creación, por lo que los ataques de superposición contra códigos Pro legítimos quedan detectados.Continuo
Divergencia visual de marcaSi un código lleva el logo de una marca cuyo conjunto de dominios canónicos no incluye el destino decodificado, el código es divergente respecto a la marca. Se aplica a cada código Pro que usa nuestra función de logo central; un phisher no puede emitir un código con el logo de Chase apuntando a un dominio que no sea Chase.Creación, cambio de logo, cambio de destino
Topología de sensor / ubicaciónPara códigos vinculados a ubicaciones (parquímetros, check-in de hotel, menús de restaurante, exhibiciones de museo), el contexto RF ambiental del dispositivo escaneador se verifica contra la topología registrada para esa ubicación. Una discrepancia devuelve una anomalía de contexto de sensor incluso en el primer escaneo de una pegatina fraudulenta. Tier Enterprise; el operador de la ubicación registra la topología esperada al crear el código.Cada escaneo

El problema del cambio en el lado del cliente

La URL de destino de un enlace Pro vive en el servidor del cliente, no en el nuestro. El cliente puede redirigir example.com/promo de una promoción real a una página de phishing sin llamar nunca a la API de Abundera. Tratamos esto como la ruta de abuso principal, no como un caso extremo. Las reverificaciones periódicas contra destinos activos se ejecutan de forma programada, y nuestra capa de detección de cloaking apunta específicamente a páginas que cambian después de enviarse. Cuando un destino comienza a fallar las comprobaciones tras su creación, el enlace se pausa automáticamente, se envía un correo al propietario con el veredicto específico y el evento queda registrado en el historial de auditoría.

Falsos positivos y apelaciones

La inteligencia de amenazas se equivoca a veces. Una marca legítima con un certificado recién emitido, una promoción real cuya página cambió legítimamente, un dominio migrado. Cada bloqueo y cada pausa automática incluye la capa de veredicto específica que se activó, la entrada que la desencadenó y una apelación en un clic que escala a un humano en un día hábil. Preferimos pausar antes que eliminar; un enlace pausado puede reactivarse en segundos una vez resuelta la apelación.

Residencia en región única (Agency+ y Enterprise personalizado)

Para compradores con restricción a la EU o a APAC, los clientes del tier Agency pueden solicitar:

  • D1 en una sola jurisdicción (EU: EEUR o WEUR; APAC: APAC). Cloudflare respeta una sugerencia de location al crear la base de datos; desplegamos un shard D1 por tenant en la región solicitada (ADR-0010).
  • Bucket R2 en la misma jurisdicción, los backups nocturnos cifrados de D1 → R2 se almacenan en la región correspondiente.
  • Región EU de Zepto para correo transaccional, configurado a nivel de servicio, sin cambios de código.
  • KV permanece global, la replicación en el edge es fundamental para la garantía de redirección en <50ms. Si KV en una sola región es un requisito estricto, consúltanos; podemos evaluar si una variante de Worker solo regional es viable para tu campaña.

El precio del complemento de región única es tarifa fija (sin recargo por puesto) y depende de la combinación específica. Escribe a enterprise@abundera.ai con tu jurisdicción objetivo + volumen de escaneos proyectado y te damos un presupuesto.

Postura de cumplimiento

  • GDPR, mínimos datos por diseño (solo país + tipo de dispositivo, sin IP, sin UA, sin cookies) más exportación en un clic y eliminación definitiva en 30 días. DPA + SCCs de la EU disponibles para todos los tiers de pago.
  • CCPA, cubierto por la misma superficie de exportación + eliminación. La «venta de datos» no es algo que hagamos: sin intercambio con terceros, sin socios publicitarios, sin retargeting.
  • Aprovisionamiento SSO + SCIM, inicio de sesión único SAML 2.0 + OIDC y ciclo de vida de usuarios y grupos SCIM 2.0 (tiers Agency + Enterprise personalizado). Cumplimiento RFC 7643/7644 verificado (20/20 en la suite de pruebas derivada de PingIdentity). El indicador de función por conexión significa que SCIM está desactivado por defecto y se habilita por cliente; limitado a 50 RPS por token; registrado en auditoría. Okta/Entra/JumpCloud funcionan hoy como apps SCIM personalizadas mientras se tramitan los listados en catálogos de socios.
  • SOC 2 Tipo II, en definición de alcance. Proceso de 6-9 meses. Si es un requisito estricto para ti, escribe a enterprise@abundera.ai; podemos compartir el estado actual + la línea temporal proyectada.
  • PCI-DSS, fuera de nuestro alcance directo; los pagos los gestiona íntegramente Stripe (certificado PCI Nivel 1).

Divulgación de vulnerabilidades

¿Encontraste una vulnerabilidad? Escribe a security@abundera.ai. Divulgación coordinada, acusamos recibo en 24h (días hábiles), realizamos el triaje en 72h y coordinamos contigo la corrección y el calendario de divulgación. Sin programa de recompensas todavía; reconocemos públicamente a los investigadores en abundera.ai/security/thanks/ una vez publicada la corrección.