Seguridad
Última revisión: Mayo 2026 · Estado actual:/status
1. Aislamiento por tenant
Cada cliente tiene un schema dedicado en CockroachDB Cloud (tenant_<slug>). El middleware resuelve el tenant desde el subdominio y pinea el search_path antes de ejecutar cualquier query — tanto la app como una query maliciosa accidental no pueden cruzar el límite del schema.
2. Cifrado
- En tránsito: TLS 1.3 forzado, HSTS con preload, mTLS hacia DNIT/SIFEN.
- En reposo: CockroachDB cifra todos los volúmenes con AES-256.
- PII sensible (cédula, salario, dirección): AES-256-GCM aplicado a nivel de aplicación con clave en
MASTER_ENCRYPTION_KEY. - Cert SIFEN P12: nunca persistido en disco; se carga desde env var en cada firma.
3. Autenticación
- Vía Clerk con sesiones JWT firmadas RS256.
- 2FA TOTP obligatorio para roles owner / admin / dotribo_super.
- Backup codes para recuperación.
- Magic links + password resetable solo desde dispositivos verificados.
4. Autorización
RBAC por rol (owner, admin, manager, accountant, employee, auditor, dotribo_super) × permiso granular (~150 permisos del estilohr:payroll:close). Cada API mutating verifica el permiso + el estado MFA + el feature gating del plan suscripto antes de ejecutar.
5. Audit log
Cada acción mutating se registra en public.audit_logscon cadena de hash SHA-256: hash_n = SHA256(hash_n-1 || canonical(row_n)). Un cron diario verifica la integridad y emite a Sentry si detecta una ruptura. Operadores pueden ver el log desde Configuración → Cumplimiento → Auditoría.
6. Rate limiting
Por IP, por user, y por endpoint sensible (login, AI chat, SIFEN emit). Backed by Upstash Redis con burst tolerance configurada por plan.
7. Backups y recuperación
- Backups diarios automáticos (
pg_dumppor tenant + S3, encriptados). - Retención: 30 días.
- RPO objetivo: 24 h.
- RTO objetivo: 2 h.
- Plan completo: Disaster Recovery.
8. Observabilidad
- OpenTelemetry traces sobre cada request, con spans manuales en SIFEN sign/submit/KuDE.
- Sentry captura errores con scrubbing de PII.
- Página pública de estado: /status.
9. Headers de seguridad
HSTS, X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy strict-origin, Permissions-Policy restrictiva, CSP con nonce.
10. Pen-test y bug bounty
Pen-test anual por tercero independiente. Disclosure responsable: enviá hallazgos asecurity@dotribo.com. PGP key bajo solicitud. Reconocemos vulnerabilidades en nuestroSECURITY.md con permiso del reportante.
11. Reportar un incidente
Sospechás de un acceso no autorizado, phishing dirigido a tu equipo, o cualquier comportamiento extraño:security@dotribo.com(respuesta < 4 h en horario hábil).