Postura de seguridad

Seguridad enterprise por diseño, no por checklist

Cada decisión de arquitectura — desde el aislamiento de datos hasta el manejo de prompts — está diseñada para sobrevivir el escrutinio de un CISO. Esta página describe los controles reales que corren hoy en producción.

99.9%
SLA de disponibilidad para planes Enterprise
Redundancia Supabase · deploy con rollback
AES-256
Encriptación at rest sobre todos los datos del tenant
TLS 1.3 in transit · HSTS · CSP
1:1
Schema por tenant en Postgres
tenant_<slug> · middleware fail-closed
100%
Mutaciones de dashboard registradas en historial
historial_acciones · logs SSE en vivo
LFPDPPP
En producción
GDPR
Compatible
ISO 27001
Roadmap
SOC 2 II
En proceso
Azure AD
Integrado
01 · Cumplimiento

Cumplimiento normativo

Construido para los marcos regulatorios que importan en LATAM y para los que su organización exigirá mañana.

LFPDPPP — México

Aviso de privacidad publicado, principios de licitud, finalidad, lealtad y proporcionalidad aplicados al tratamiento de datos del proveedor. Retención configurable por cliente.

GDPR — Unión Europea

Diseño compatible con derechos ARCO+ del titular: acceso, rectificación, cancelación, oposición y portabilidad. DPA template disponible bajo NDA para clientes con presencia EU.

ISO 27001 — Roadmap

Controles del Anexo A mapeados a la implementación actual. Roadmap formal de certificación abierto. Documentación de SoA y políticas internas disponibles para due diligence.

SOC 2 Type II — En proceso

Trust Services Criteria de seguridad, disponibilidad y confidencialidad bajo evaluación. Período de observación arrancando. Reporte gap-assessment disponible para clientes activos.

Aviso de privacidad publicado

Versionado, accesible desde el footer, identifica responsable, finalidades, transferencias y mecanismos de ejercicio de derechos. Notificación proactiva ante cambios materiales.

Retención configurable

Cada cliente define ventanas de retención sobre conversaciones, documentos cargados y trazas de auditoría. Borrado verificable a la baja del contrato.

02 · Aislamiento

Aislamiento multi-tenant a nivel schema

Cada cliente vive en su propio schema dedicado de Postgres. La separación es física en la base, no únicamente lógica en la aplicación.

Schema-per-tenant en Postgres

Cada cliente vive en tenant_<slug> con sus propias tablas, índices y políticas. No existen tablas compartidas con datos de negocio. Backups y exportaciones operan por schema.

Middleware fail-closed

El tenant se valida en cada request antes de tocar la base. Si falta, es ambiguo o no corresponde al token, la respuesta es 401 — nunca un acceso por defecto.

Hooks pre-commit

El propio repositorio bloquea el merge de código que pudiera permitir consultas cross-tenant. La defensa empieza antes de que el código exista en main.

Verificación activa

Token de cliente A presentado al portal de cliente B → 401 inmediato. Test de regresión automatizado en CI evita que cualquier release rompa esta garantía.

Observabilidad por tenant

Métricas, logs y costo de LLM se etiquetan con el tenant en origen. Cualquier cruce de identificadores en runtime se vuelve un alerta operativo.

Portal independiente por cliente

Cada cliente recibe un subdominio dedicado con su propia base de datos, su propio set de credenciales y su propia configuración de SSO.

Flujo de un request

Cómo viaja un request de extremo a extremo

Cada capa añade una validación. Un fallo en cualquiera rechaza el request — nunca abre por defecto.

01 · ENTRY
Cliente + TLS 1.3
HSTS forzado · cipher suites legacy deshabilitados · certificado rotado.
02 · EDGE
Reverse proxy + headers
CSP · X-Frame-Options DENY · rate limit por IP · anti-bot.
03 · AUTH
Azure AD · sesión · RBAC
OAuth + state · TTL 12h · rol admin/asesor validado por handler.
04 · APP
Middleware tenant fail-closed
Token ↔ tenant validado. Mismatch → 401 inmediato. Sin acceso por defecto.
05 · DATA
tenant_<slug> · AES-256
Schema dedicado en Postgres. Audit append-only. Signed URLs 30 min.
Perímetro / edge Identidad + aplicación Datos aislados por tenant
03 · Encriptación

Encriptación en tránsito y en reposo

Estándares modernos sin tolerar configuraciones legadas. La criptografía no es una superficie a debatir.

TLS 1.3 en tránsito

Solo TLS 1.3 negociable en endpoints públicos. Cipher suites legacy deshabilitadas. Certificados rotados automáticamente.

AES-256 en reposo

Encriptación at rest manejada por Supabase sobre toda la base. Llaves gestionadas por el proveedor de infraestructura, fuera del alcance de la aplicación.

HSTS habilitado

Strict-Transport-Security forzado. El navegador nunca permite un downgrade a HTTP en el dominio del cliente.

Content Security Policy

CSP estricta más X-Frame-Options DENY para bloquear clickjacking. Headers de seguridad auditados en cada deploy.

Secrets fuera del código

Credenciales en archivos .env con permisos 0600 en disco. Hooks anti-leak (detect-secrets) bloquean cualquier llave que intente entrar al repo.

Headers de seguridad

X-Content-Type-Options, Referrer-Policy, Permissions-Policy y X-Frame-Options DENY aplicados desde el reverse proxy.

04 · Identidad

Identidad, sesiones y control de acceso

SSO corporativo de primera clase, fallbacks endurecidos y rate limiting activo en todos los puntos de autenticación.

Azure AD SSO

OAuth Authorization Code Flow con parámetro state para defensa CSRF. Provisioning y de-provisioning controlados desde el directorio corporativo del cliente.

Hashing bcrypt 12 rounds

Para usuarios legacy sin SSO, contraseñas con bcrypt a 12 rounds. Sin algoritmos rotos, sin almacenamiento en claro, sin recuperación reversible.

Sesiones con TTL 12h

Tokens con vencimiento de 12 horas. Daemon de cleanup diario expira sesiones huérfanas. Logout invalida server-side, no solo borra cookie.

RBAC por rol

Roles diferenciados admin y asesor con permisos validados en cada handler. Privilegio mínimo aplicado a operaciones sensibles.

Rate limiting

5 intentos de login cada 15 minutos, 20 por hora por origen. Bloqueo automático y telemetría para cualquier patrón de fuerza bruta.

Defensa CSRF en SSO

Parámetro state firmado en el redirect URI. Cualquier callback sin state válido es rechazado antes de tocar el handler de identidad.

05 · Datos

Manejo seguro de datos del proveedor

Documentos, archivos cargados e inputs hacia el LLM están sometidos a las mismas reglas: validar, encriptar, auditar.

Datos del proveedor encriptados

RFC, CSF, CLABE, identificaciones y comprobantes residen encriptados at rest y se transmiten siempre sobre TLS 1.3.

Signed URLs de 30 minutos

Acceso a documentos vía URLs firmadas con expiración corta. No existen enlaces públicos persistentes a archivos del cliente.

MIME whitelist · 25 MB cap

Solo tipos de archivo en la lista blanca son aceptados. Tamaño máximo 25 MB. Verificación del MIME real, no solo de la extensión declarada.

Defensa contra path traversal

Normalización estricta de rutas, allow-list de directorios destino, rechazo categórico de cualquier intento de salir del scope del tenant.

Defensa contra prompt injection

Inputs del usuario envueltos en tags XML aislados del system prompt. Salidas validadas con Pydantic. Acciones del agente restringidas a una allow-list explícita.

Mínimo PII en logs

Los logs operativos no contienen identificadores fiscales ni datos sensibles del proveedor. La trazabilidad usa identificadores opacos.

Defensa en profundidad

Cinco capas, cada una independiente

Ningún control individual protege al negocio. La defensa real está en que atravesar una no implica atravesar la siguiente.

L1 · Perímetro TLS 1.3, HSTS, CSP, rate limit por IP, bloqueo automático ante patrones de fuerza bruta.
L2 · Identidad Azure AD SSO con CSRF state, bcrypt 12 rounds para fallback, sesiones TTL 12h con invalidación server-side.
L3 · Aplicación Middleware tenant fail-closed, RBAC por handler, validación Pydantic, prompt-injection defense en LLM.
L4 · Datos Schema-per-tenant en Postgres, AES-256 at rest, signed URLs de 30 min, MIME whitelist, path traversal defense.
L5 · Observabilidad historial_acciones append-only, logs SSE en vivo, costo LLM por tenant, exportación bajo demanda a SIEM.
06 · Auditoría

Auditoría completa y observabilidad

Toda mutación deja huella. Toda llamada a un LLM tiene un costo trazable. Toda alerta llega antes que el incidente.

historial_acciones

Tabla append-only que registra TODA mutación generada desde el dashboard: quién, qué, cuándo, sobre qué entidad y con qué payload anterior/nuevo.

Logs SSE en vivo

Server-Sent Events transmiten la actividad del agente al operador en tiempo real. Investigaciones forenses no requieren bajar archivos a una laptop.

Métricas por cliente

Throughput, latencia y errores etiquetados por tenant. Dashboards independientes con visibilidad inmediata de degradaciones.

Costo LLM trackeable

Cada llamada al modelo está atribuida a un tenant, un módulo y un caso de uso. Permite auditoría financiera y detección de uso anómalo.

Retención configurable

Período de retención del historial definido por contrato. Borrado verificable y reportable, no diferido a un cron silencioso.

Exportación bajo demanda

El cliente puede solicitar exportación de su historial de auditoría en cualquier momento. Formato estructurado, listo para SIEM o data lake.

07 · Disponibilidad

Disponibilidad y entrega continua

SLA real, backups gestionados y un pipeline de CI/CD que no permite que un cambio inseguro llegue a producción.

SLA 99.9% Enterprise

Objetivo de disponibilidad mensual del 99.9% para clientes Enterprise. Reportes mensuales y créditos de servicio si el SLA se incumple.

Redundancia Supabase

Base gestionada con replicación, backups automatizados con point-in-time recovery y monitoreo de salud continuo.

Deploy con rollback

Cada release puede revertirse en menos de un minuto. Migraciones de base diseñadas para ser hacia adelante y reversibles cuando es posible.

CI con tests obligatorios

Suite de pytest verde en cada PR. No se mergea código rojo. Tests cubren autenticación, autorización y lógica de negocio crítica.

Linters y supply chain

ruff sobre el código, pip-audit sobre dependencias y detect-secrets sobre commits. Cualquier alerta detiene el pipeline.

Anti-print · commit-convention

Hooks bloquean print() en producción y exigen mensajes de commit estructurados. La trazabilidad operativa es parte del contrato del repo.

08 · Documentos

Documentación disponible para due diligence

Material listo para acelerar revisiones de su equipo legal, de seguridad y de procurement. Algunos requieren NDA por contenido sensible.

Aviso de privacidad
Público
DPA template
Bajo solicitud
Security questionnaire
Bajo solicitud
Pen-test results
Bajo NDA
Arquitectura técnica
Bajo NDA
Incident response
Bajo solicitud

Solicita el security questionnaire completo

Le hacemos llegar el cuestionario respondido, el DPA template y la documentación que su equipo de seguridad necesite para cerrar la revisión.