Saltar al contenido

Temas

Defensa en profundidad

Apilar controles independientes para que, cuando uno falle (y alguno fallará), el siguiente detenga, detecte o contenga el ataque.

FundamentosEn progreso 8 min de lectura1 oct 2026#defensa-en-profundidad#capas#controles#principios

En 2019, un atacante sacó de la nube (en este caso, AWS) los datos de más de 100 millones de clientes de Capital One. No hubo un único fallo: un WAF mal configurado permitió una petición SSRF, esa petición alcanzó el servicio de metadatos de la instancia, las credenciales obtenidas pertenecían a un rol con permisos de lectura sobre demasiados almacenes de objetos, y la exfiltración no se detectó hasta meses después, por un aviso externo. Cada capa tenía un agujero, y los agujeros estaban alineados. La defensa en profundidadDefensa en profundidadEstrategia de apilar controles independientes y de distinto tipo para que, si uno falla, otro detenga, detecte o contenga el ataque. busca justo lo contrario: que los agujeros no se alineen.

La idea#

NIST la define como una estrategia que integra personas, tecnología y operaciones para establecer barreras variadas a lo largo de múltiples capas de la organización. La metáfora viene de la estrategia militar: en lugar de una sola muralla, varias líneas sucesivas que retrasan al enemigo y te dan tiempo para reaccionar. La NSA la llevó a la seguridad de la información a principios de los 2000, con tres ejes: personas, tecnología y operaciones.

Hay dos ideas clave:

  1. Asume que cada capa va a fallar. No porque esté mal hecha, sino porque ningún control es perfecto: los WAF tienen evasiones, las reglas de red tienen excepciones y la gente hace clic en enlaces.
  2. Las capas deben fallar por motivos distintos. Dos filtros que se saltan con el mismo truco cuentan como una sola capa.
Defensa en profundidad: cuando una capa falla
L1EdgeCDN · WAFL2Redsolo 443L3Cómputorol mínimoL4AplicaciónSQL param.L5DatoscifradoAtacanteOR/**/1=1BD · PIIcifradaMONITORIZACIÓNlogs WAF · auditoría · detección⚠ alerta: SQLievadidaregla nueva443 permitidobloqueadadaño acotadoSQLi¿y si…?

Paso 1 de 6Capas

Entre Internet y los datos de Citas hay cinco capas independientes. Ninguna es perfecta: la idea es que fallen por motivos distintos.

Las capas de Citas#

Así se reparten los controles de la app de referencia, descritos por lo que hacen, desde Internet hasta el dato:

Capa Control en Citas Tipo
Edge CDN con WAF (reglas gestionadas y rate-based) y protección DDoS Preventivo
Red el balanceador solo acepta 443 desde el CDN; contenedores en subredes privadas; base de datos en subredes aisladas; listas de control de red Preventivo
Cómputo contenedores gestionados (sin SSH), sistema de ficheros de solo lectura, imágenes escaneadas en el registro, identidad de carga de trabajo mínima Preventivo
Aplicación verificación del token de sesión firmado, autorización por clínica, validación de entrada, consultas parametrizadas Preventivo
Datos cifrado con claves gestionadas en la base de datos y el almacén de objetos, usuario de BD con mínimo privilegioMínimo privilegioCada identidad (persona, servicio o máquina) tiene solo los permisos imprescindibles para su tarea, durante el tiempo imprescindible., backups y versionado Preventivo y correctivo
Identidad control de acceso por identidad (IAM), MFA, barreras a nivel de organización que prohíben lo peligroso, despliegue por OIDC sin claves de larga duración Preventivo
Monitorización registros de auditoría firmados en una cuenta aislada, detección de amenazas gestionada, logs del WAF, registros de flujos de red, alarmas Detectivo

Cada capa recibe un nombre distinto en cada nube, pero el control es el mismo:

Capa AWS Azure Google Cloud
Edge (WAF + DDoS) CloudFront + WAF + Shield Front Door + WAF + DDoS Protection Cloud CDN + Cloud Armor
Red (balanceador, subredes) ALB + VPC + Security Groups/NACL Load Balancer + VNet + NSG Cloud Load Balancing + VPC + firewall rules
Cómputo (contenedores) ECS/Fargate + ECR Container Apps + ACR Cloud Run + Artifact Registry
Datos (cifrado gestionado) RDS/S3 + KMS Azure SQL/Blob + Key Vault Cloud SQL/Storage + Cloud KMS
Identidad (barreras org.) IAM + SCP (Organizations) Entra ID + Azure Policy IAM + Organization Policy
Monitorización (auditoría + detección) CloudTrail + GuardDuty Activity Log + Defender Cloud Audit Logs + SCC

La identidad no es “una capa más” en línea: es transversal. En la nube, quien tenga una credencial de administrador habla directamente con la API del proveedor y se salta el WAF, los grupos de seguridad y la aplicación. Por eso la identidad necesita sus propias capas: MFA, barreras a nivel de organización que prohíben lo peligroso aunque la política lo permita, y detección sobre los registros de auditoría.

Un ejemplo en código: dos capas distintas para la misma amenaza#

Contra la inyección SQL, el WAF filtra por patrones en el borde. Pero la capa que de verdad la elimina es la aplicación:

Vulnerable

Seguro

api/citas.js
// Si el WAF no reconoce el payload, esta línea es explotable
const r = await db.query(
`SELECT * FROM citas WHERE paciente = '${req.query.nombre}'`,
);
api/citas.js
// El payload viaja como dato, nunca como SQL. Y solo ve su clínica.
const r = await db.query(
'SELECT * FROM citas WHERE paciente = $1 AND clinica_id = $2',
[req.query.nombre, req.user.clinicaId],
);

Y si también fallara la aplicación, la capa de datos acota el daño: el usuario con el que conecta la API no puede leer otras tablas ni borrar nada.

En la red, el balanceador no debería aceptar tráfico que no venga del CDN. Si no, el WAF del borde se puede rodear yendo directamente al balanceador. El control concreto es una regla del grupo de seguridad que solo admite el puerto 443 desde los rangos del CDN (en AWS, la managed prefix list de CloudFront; en Azure, una restricción de servicio de Front Door; en Google Cloud, política que exige pasar por Cloud Armor), de modo que no haya una puerta trasera al origen.

En identidad, una barrera a nivel de organización impide que nadie apague el registro de auditoría, ni siquiera un administrador de la cuenta de producción. Así se ve la forma de la política, como ejemplo en AWS (una service control policy que niega las acciones de parada del trail):

scp-proteger-cloudtrail.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ProtegerCloudTrail",
"Effect": "Deny",
"Action": [
"cloudtrail:StopLogging",
"cloudtrail:DeleteTrail",
"cloudtrail:UpdateTrail",
"cloudtrail:PutEventSelectors"
],
"Resource": "*"
}
]
}

Prevenir, detectar, corregir#

Las capas no solo bloquean. Un diseño equilibrado mezcla tres tipos de control:

  • Preventivos: impiden que ocurra (WAF, grupos de seguridad, control de acceso por identidad, consultas parametrizadas).
  • Detectivos: avisan cuando ocurre o ha ocurrido (registros de auditoría, detección de amenazas gestionada, alarmas sobre los logs del WAF).
  • Correctivos: devuelven el sistema a un estado bueno (restaurar un backup, revocar credenciales, añadir una regla al WAF tras un incidente).

Si todas tus capas son preventivas, el día que el atacante las atraviese no te enterarás. La animación lo muestra: la prevención falla dos veces, la detección avisa, una capa posterior detiene el ataque y un control correctivo cierra la primera brecha.

Anti-patrones#

  • Capas correlacionadas: dos WAF con reglas parecidas, o tres servicios que usan la misma credencial. Fallan juntos.
  • Capas sin dueño: un control que nadie monitoriza ni prueba es una suposición, no una capa.
  • Más capas siempre es mejor: cada capa añade latencia, coste, complejidad y alertas. Una capa que genera 500 alertas al día acaba ignorada, y eso es peor que no tenerla.
  • La oscuridad como capa: cambiar el puerto de SSH o esconder /admin en una ruta rara puede reducir el ruido, pero no cuenta como control.

Cómo diseñarla para un flujo concreto#

  1. Elige un activo y un flujo

    Por ejemplo: “un recepcionista consulta las citas del día”. Dibuja el camino completo, desde el navegador hasta la base de datos.

  2. Enumera los controles por capa

    Para cada salto (edge, red, cómputo, aplicación, datos, identidad), anota qué control existe y de qué tipo es.

  3. Rompe una capa cada vez

    Pregúntate: si esta capa falla, ¿qué capa posterior lo detiene? ¿Quién se entera, y en cuánto tiempo?

  4. Busca fallos compartidos

    Si dos capas dependen de la misma credencial, la misma librería o el mismo equipo, cuentan como una sola.

  5. Prueba de verdad

    Pentests, game days y simulaciones de detección. Una capa que nunca has visto actuar es solo una hipótesis.

Tu turno

Explica la defensa en profundidad con un ejemplo de tu trabajo actual

Elige una petición real de un sistema que conozcas (un login, una subida de fichero, una llamada a una API interna) y sigue su camino capa a capa.

  • ¿Qué controles atraviesa? ¿Cuántos son preventivos, cuántos detectivos y cuántos correctivos?
  • Si el primer control fallara, ¿cuál sería el siguiente en actuar? ¿Lo has comprobado alguna vez?
  • ¿Hay dos capas que fallarían por el mismo motivo?
  • Si alguien robara la credencial más poderosa de ese flujo, ¿qué capa quedaría en pie?
defensa-en-profundidad-mi-trabajo.md
Flujo: ...
| Capa | Control | Tipo (P/D/C) | ¿Qué pasa si falla? |
| -------------- | ------- | ------------ | ------------------- |
| Edge | | | |
| Red | | | |
| Cómputo | | | |
| Aplicación | | | |
| Datos | | | |
| Identidad | | | |
| Monitorización | | | |

Reto

Citas pone un segundo WAF de otro proveedor delante del CDN con su propio WAF. ¿Has ganado una capa de defensa en profundidad?

▸Mostrar solución

Muy poco. Ambos son filtros por patrones en el borde y es probable que fallen ante las mismas técnicas de ofuscación: son capas correlacionadas. Rinde mucho más invertir en una capa de otro tipo, como consultas parametrizadas, un usuario de BD con mínimos privilegios o alertas sobre los logs del WAF.

Reto

Un atacante roba las credenciales de larga duración de un administrador de la cuenta de producción. ¿Qué capas de Citas le siguen frenando?

▸Mostrar solución

Las de red y edge no le afectan: habla directamente con la API del proveedor, no pasa por la red privada ni por el WAF. Le frenan las capas de identidad y detección: las barreras a nivel de organización (no puede apagar los registros de auditoría), las condiciones de MFA en acciones sensibles, la detección de amenazas gestionada (llamadas desde ubicaciones o patrones anómalos) y que los logs vivan en una cuenta aislada, donde no puede borrarlos. Por eso, en la nube, la identidad es una capa transversal.

En resumen#

  • Defensa en profundidad significa varias barreras independientes entre el atacante y el activo, porque cualquier capa puede fallar.
  • Las capas valen si fallan por motivos distintos. Las correlacionadas cuentan como una.
  • Mezcla controles preventivos, detectivos y correctivos: la detección es lo que te salva cuando la prevención falla.
  • En la nube, la identidad es transversal: una credencial poderosa se salta la red, así que protégela con MFA, barreras a nivel de organización y monitorización.
  • Evita la cáscara de huevo, las capas sin dueño y añadir capas que solo generan ruido.

Referencias#

Notas relacionadas

ESC
↑↓ para navegar↵ para abriresc para cerrar