Seguridad de Defensa en Profundidad
Resumen
La seguridad está en capas, asume que cualquier capa individual puede fallar y otorga el mínimo privilegio que funciona. Los atacantes encuentran la capa que olvidaste — un sistema que depende de un solo muro cae cuando ese muro tiene un error; controles superpuestos de mínimo privilegio sobreviven a la falla de cualquiera de ellos.
Los Principios (universales)
- Modela amenazas antes de construir cualquier cosa que maneje entradas no confiables, secretos o datos de usuario. Realiza un análisis STRIDE ligero (Suplantación, Manipulación, Repudio, Revelación de información, Denegación de servicio, Elevación de privilegios) por cada nueva superficie. Registra el modelo y las mitigaciones (consulta
recording-decisions). - Defensa en profundidad. Ningún control individual es "la" seguridad. Autenticación, autorización, validación de entrada y aplicación en la capa de datos asumen que los demás podrían ser eludidos.
- Mínimo privilegio en todas partes — roles, tokens, cuentas de servicio, permisos de base de datos. Predeterminado: sin acceso; otorga el mínimo; revoca lo no utilizado.
- Los secretos nunca viven en el código, imágenes o configuraciones confirmadas. Provienen de un almacén de secretos en tiempo de ejecución, se rotan y están limitados a la carga de trabajo que los necesita.
- Valida toda entrada en el límite de confianza; trata la salida de cualquier sistema externo como datos no confiables, nunca como instrucciones.
- La cadena de suministro de dependencias es una superficie de ataque. Archivos de bloqueo confirmados y verificados en integridad; dependencias escaneadas y actualizadas; imágenes base fijadas y escaneadas.
- Las acciones sensibles se auditan — quién hizo qué y cuándo — para que el abuso y los errores sean reconstruibles.
Referencia Rápida
| Superficie | Primeras preguntas |
|---|---|
| Nuevo endpoint que recibe entrada de usuario | ¿Cuál es el modelo STRIDE? ¿Dónde está la validación? ¿Cuál es el rol mínimo que funciona? |
| Cualquier cosa con un secreto | ¿Está en el almacén de secretos (no en código/imagen)? ¿Limitado? ¿Rotable? |
| Nueva dependencia | ¿Archivo de bloqueo fijado? ¿Escaneado? ¿Bien soportada? |
| Mutación privilegiada | ¿Está auditada? ¿El actor está autorizado en la capa de datos, no solo en la aplicación? |
Mecanismos de pila
RLS como la capa de aplicación final, límites de profundidad/costo de GraphQL como control DoS, Key Vault para secretos, pnpm audit/Trivy en CI — consulta postgres-postgraphile-rls-and-sql y cloud-delivery-aks.
Aplicación: auditoría de dependencias + escaneo de imágenes + escaneo de secretos en CI (bloqueante); modelos de amenazas y cobertura de auditoría son criterio del revisor.
Justificación completa: Artículos X y XIV de la constitución, incluidos en engineering-constitution/references/engineering-constitution.md.