F00 · Montar el laboratorio
LABORATORIO · LECCIÓN 01
Anatomía del laboratorio
Objetivo: Entender qué piezas componen un laboratorio local y por qué cada una está aislada.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
LABORATORIO · LECCIÓN 02
Docker y Compose como plataforma de práctica
Objetivo: Manejar redes, volúmenes y variables de entorno para montar entornos reproducibles.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
LABORATORIO · LECCIÓN 03
Máquinas virtuales, snapshots y ventanas de daño
Objetivo: Aislar el laboratorio del equipo real y poder revertirlo a un estado conocido.
lab-00-vm
6 ejercicios + reto
laboratorio local
Estudiar lección →
LABORATORIO · LECCIÓN 04
Levantar, destruir y reconstruir
Objetivo: Adquirir la disciplina de reset y cerrar el laboratorio con un firewall local.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
F01 · Fundamentos de seguridad
FUNDAMENTOS · LECCIÓN 01
CIA, riesgo, amenaza, vulnerabilidad y exploit
Objetivo: Nombrar con precisión qué se protege, de qué y con qué probabilidad e impacto.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
FUNDAMENTOS · LECCIÓN 02
Superficie de ataque y fronteras de confianza
Objetivo: Dibujar dónde termina lo que controlas y empieza lo que solo esperas que se porte bien.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
FUNDAMENTOS · LECCIÓN 03
Defensa en profundidad, mínimo privilegio y fallo seguro
Objetivo: Diseñar para que romper una capa no sea el final de la historia.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
FUNDAMENTOS · LECCIÓN 04
Zero Trust y separación de responsabilidades
Objetivo: Sustituir la confianza por ubicación de red por verificación por petición.
lab-00-base
6 ejercicios + reto
laboratorio local
Estudiar lección →
F02 · Redes, TLS y perímetro
REDES · LECCIÓN 01
TCP/IP, puertos y qué escucha de verdad
Objetivo: Leer la tabla de sockets de una máquina y saber exactamente qué expone.
lab-net-captura
6 ejercicios + reto
laboratorio local
Estudiar lección →
REDES · LECCIÓN 02
DNS, DHCP y ARP: resolución y suplantación
Objetivo: Seguir una resolución completa y ver dónde se puede envenenar.
lab-net-captura
6 ejercicios + reto
laboratorio local
Estudiar lección →
REDES · LECCIÓN 03
HTTP a fondo: métodos, cabeceras, cookies y proxies
Objetivo: Ver la petición como la ve un intermediario y entender qué puede modificar.
lab-net-proxy
6 ejercicios + reto
laboratorio local
Estudiar lección →
REDES · LECCIÓN 04
TLS y certificados: qué garantiza y qué no
Objetivo: Explicar el handshake, la cadena de confianza y dónde falla la verificación.
lab-net-tls
6 ejercicios + reto
laboratorio local
Estudiar lección →
REDES · LECCIÓN 05
Firewalls, default-deny y control de egress
Objetivo: Segmentar redes y cortar la salida para contener el movimiento lateral.
lab-net-firewall
6 ejercicios + reto
laboratorio local
Estudiar lección →
F03 · Linux y seguridad de sistemas
LINUX · LECCIÓN 01
Usuarios, grupos, permisos y sudo
Objetivo: Leer y romper los permisos de archivo del sistema de ficheros.
lab-linux-privesc
6 ejercicios + reto
laboratorio local
Estudiar lección →
LINUX · LECCIÓN 02
Procesos, /proc, PATH y variables de entorno
Objetivo: Ver qué filtra un proceso sobre sí mismo y cómo se secuestra su ejecución.
lab-linux-privesc
6 ejercicios + reto
laboratorio local
Estudiar lección →
LINUX · LECCIÓN 03
cron, systemd y mecanismos de persistencia
Objetivo: Reconocer los puntos donde un atacante se queda a vivir en el sistema.
lab-linux-persist
6 ejercicios + reto
laboratorio local
Estudiar lección →
LINUX · LECCIÓN 04
Capabilities: por qué root es demasiado
Objetivo: Sustituir "ser root" por el permiso exacto que el proceso necesita.
lab-linux-caps
6 ejercicios + reto
laboratorio local
Estudiar lección →
LINUX · LECCIÓN 05
Namespaces, cgroups, seccomp y AppArmor
Objetivo: Confinar un proceso por syscalls, recursos y vista del sistema.
lab-linux-caps
6 ejercicios + reto
laboratorio local
Estudiar lección →
F04 · Seguridad web
WEB · LECCIÓN 01
Autenticación y gestión de sesión
Objetivo: Distinguir identidad de sesión y endurecer cookies, fijación y rotación.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 02
Control de acceso roto e IDOR
Objetivo: Separar autenticación de autorización y detectar objetos accesibles por identificador.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 03
Inyección SQL: del ataque a la consulta preparada
Objetivo: Extraer datos por concatenación y cerrar la vía con parámetros y privilegio mínimo.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 04
Inyección de comandos y path traversal
Objetivo: Ir de una cadena de shell a ejecución remota, y de "../" a leer lo que no toca.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 05
XSS reflejado, almacenado y en DOM
Objetivo: Ejecutar código en el navegador de otro usuario y cortarlo con codificación y CSP.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 06
CSRF y SSRF
Objetivo: Usar la sesión de la víctima y hacer que el servidor pida por ti hacia dentro.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 07
Subida de archivos y deserialización insegura
Objetivo: De la imagen "inocente" al webshell, y del objeto reconstruido a la ejecución.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
WEB · LECCIÓN 08
Condiciones de carrera, configuración insegura y secretos expuestos
Objetivo: Explotar el hueco entre comprobar y usar, y encontrar lo que la app filtra sola.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
F05 · Modelado de amenazas
THREAT MODELING · LECCIÓN 01
Activos, actores, puntos de entrada y flujos de datos
Objetivo: Dibujar el sistema como un mapa de datos que cruzan fronteras.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
THREAT MODELING · LECCIÓN 02
STRIDE aplicado a un sistema real
Objetivo: Generar amenazas de forma sistemática en vez de por intuición.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
THREAT MODELING · LECCIÓN 03
Modelar tu propio proyecto y priorizar mitigaciones
Objetivo: Convertir un modelo de amenazas en una lista de trabajo ordenada por riesgo.
lab-web-vulnshop
6 ejercicios + reto
laboratorio local
En preparación
F06 · Seguridad de APIs
APIS · LECCIÓN 01
Autorización de API, scopes y mass assignment
Objetivo: Impedir que el cliente escriba campos que no le corresponden.
lab-api-vuln
6 ejercicios + reto
laboratorio local
En preparación
APIS · LECCIÓN 02
Validación de esquema, entrada, salida y enumeración
Objetivo: Rechazar lo que no encaja antes de que llegue a la lógica de negocio.
lab-api-vuln
6 ejercicios + reto
laboratorio local
En preparación
APIS · LECCIÓN 03
Rate limiting, replay, firmas e idempotencia
Objetivo: Encarecer el abuso y conseguir que repetir una petición no cause daño.
lab-api-vuln
6 ejercicios + reto
laboratorio local
En preparación
F07 · Identidad y acceso
IAM · LECCIÓN 01
RBAC y ABAC: diseñar la autorización
Objetivo: Elegir el modelo correcto y escribir políticas que se puedan probar.
lab-iam-oidc
6 ejercicios + reto
laboratorio local
En preparación
IAM · LECCIÓN 02
OAuth 2.1 y OIDC: qué resuelven y qué no
Objetivo: Delegar acceso e identidad sin repartir credenciales, con code + PKCE.
lab-iam-oidc
6 ejercicios + reto
laboratorio local
En preparación
IAM · LECCIÓN 03
JWT: firma, claims, expiración y errores clásicos
Objetivo: Validar un token de verdad y reconocer alg=none, confusión de claves y kid traversal.
lab-iam-jwt
6 ejercicios + reto
laboratorio local
En preparación
IAM · LECCIÓN 04
Identidad de máquina: tokens efímeros y rotación
Objetivo: Dar identidad a un servicio sin secretos de larga vida.
lab-iam-jwt
6 ejercicios + reto
laboratorio local
En preparación
F08 · Gestión de secretos
SECRETOS · LECCIÓN 01
Dónde NO viven los secretos
Objetivo: Encontrar credenciales en código, .env, logs, historial de git y CI.
lab-secrets-git
6 ejercicios + reto
laboratorio local
En preparación
SECRETOS · LECCIÓN 02
Secret managers, Vault y KMS
Objetivo: Sacar el secreto del código y del entorno, y cifrar con sobres.
lab-secrets-vault
6 ejercicios + reto
laboratorio local
En preparación
SECRETOS · LECCIÓN 03
Credential broker: el patrón para workloads y agentes
Objetivo: Conseguir que nadie toque la credencial, solo su efecto.
lab-secrets-vault
6 ejercicios + reto
laboratorio local
En preparación
F09 · Criptografía práctica
CRIPTOGRAFÍA · LECCIÓN 01
Hashing y cifrado: elegir la primitiva correcta
Objetivo: Separar integridad, confidencialidad y autenticidad, y no confundirlas nunca.
lab-crypto
6 ejercicios + reto
laboratorio local
En preparación
CRIPTOGRAFÍA · LECCIÓN 02
Contraseñas, salt y funciones de derivación
Objetivo: Entender por qué SHA256(password) está mal y qué coste debe tener argon2.
lab-crypto
6 ejercicios + reto
laboratorio local
En preparación
CRIPTOGRAFÍA · LECCIÓN 03
Firmas, certificados y rotación de claves
Objetivo: Firmar y verificar un artefacto, y planificar el cambio de clave.
lab-crypto
6 ejercicios + reto
laboratorio local
En preparación
F10 · Seguridad de contenedores
CONTENEDORES · LECCIÓN 01
Qué es realmente un contenedor
Objetivo: Construir uno a mano con namespaces y cgroups para ver que no es una máquina.
lab-ctr-escape
6 ejercicios + reto
laboratorio local
En preparación
CONTENEDORES · LECCIÓN 02
root, rootless, privileged y capabilities en Docker
Objetivo: Medir cuánto poder cede cada bandera antes de escribirla en un compose.
lab-ctr-escape
6 ejercicios + reto
laboratorio local
En preparación
CONTENEDORES · LECCIÓN 03
El socket de Docker y los host mounts
Objetivo: Ver la fuga trivial del contenedor al host y por qué un agente nunca debe tener ese socket.
lab-ctr-escape
6 ejercicios + reto
laboratorio local
En preparación
CONTENEDORES · LECCIÓN 04
Hardening: read-only, seccomp, límites y políticas de red
Objetivo: Hacer que el mismo exploit de la lección anterior falle.
lab-ctr-hardening
6 ejercicios + reto
laboratorio local
En preparación
CONTENEDORES · LECCIÓN 05
Imágenes: escaneo, firma y procedencia
Objetivo: Saber qué corres, de dónde vino y qué se quedó en una capa borrada.
lab-ctr-imagenes
6 ejercicios + reto
laboratorio local
En preparación
F11 · Seguridad cloud y Cloudflare
CLOUD · LECCIÓN 01
Responsabilidad compartida y aislamiento de red
Objetivo: Saber exactamente dónde termina el proveedor y empieza tu problema.
lab-cloud-metadata
6 ejercicios + reto
laboratorio local
En preparación
CLOUD · LECCIÓN 03
Cloudflare: API tokens y el alcance mínimo
Objetivo: Emitir el token más pequeño que resuelve la tarea, y verificar que no puede más.
lab-cloud-cf
6 ejercicios + reto
laboratorio local
En preparación
CLOUD · LECCIÓN 04
Cloudflare: WAF, Tunnels y Zero Trust
Objetivo: Publicar un servicio sin abrir un puerto y poner política de acceso delante.
lab-cloud-cf
6 ejercicios + reto
laboratorio local
En preparación
F12 · Cadena de suministro
SUPPLY CHAIN · LECCIÓN 01
Dependencias, lockfiles y confusión de dependencias
Objetivo: Fijar lo que realmente se instala y cerrar la puerta al paquete equivocado.
lab-sc-registro
6 ejercicios + reto
laboratorio local
En preparación
SUPPLY CHAIN · LECCIÓN 02
SBOM, firmas y procedencia del artefacto
Objetivo: Demostrar de qué está hecho lo que despliegas y quién lo construyó.
lab-sc-registro
6 ejercicios + reto
laboratorio local
En preparación
SUPPLY CHAIN · LECCIÓN 03
Anatomía de un paquete malicioso
Objetivo: Ver cómo entra y qué hace, en un registro propio dentro del laboratorio.
lab-sc-paquete
6 ejercicios + reto
laboratorio local
En preparación
F13 · Seguridad del pipeline
CI/CD · LECCIÓN 01
GitHub Actions: permisos, secrets y runners
Objetivo: Reducir el permiso del token del workflow y fijar cada acción por commit.
lab-cicd
6 ejercicios + reto
laboratorio local
En preparación
CI/CD · LECCIÓN 02
Pull requests, protección de rama e integridad de artefactos
Objetivo: Entender por qué pull_request_target es peligroso y cómo se blinda la rama.
lab-cicd
6 ejercicios + reto
laboratorio local
En preparación
CI/CD · LECCIÓN 03
SAST, DAST y escaneo de contenedores en el pipeline
Objetivo: Poner puertas de calidad que fallen por un hallazgo real, no por ruido.
lab-cicd
6 ejercicios + reto
laboratorio local
En preparación
F14 · Logging, detección y respuesta
DETECCIÓN · LECCIÓN 01
Qué loggear: acceso, autenticación, aplicación, contenedor y red
Objetivo: Registrar lo que sirve para investigar, no lo que llena disco.
lab-blue-siem
6 ejercicios + reto
laboratorio local
En preparación
DETECCIÓN · LECCIÓN 02
Ingeniería de detección: de log a regla a alerta
Objetivo: Escribir reglas que detecten los ataques que ya ejecutaste en el laboratorio.
lab-blue-siem
6 ejercicios + reto
laboratorio local
En preparación
DETECCIÓN · LECCIÓN 03
Respuesta a incidentes y contención
Objetivo: Contener sin destruir la evidencia y erradicar sin dejar la puerta abierta.
lab-blue-siem
6 ejercicios + reto
laboratorio local
En preparación
F15 · Ofensiva en entornos autorizados
OFENSIVA · LECCIÓN 01
Alcance, autorización y reglas de compromiso
Objetivo: Saber qué documento te separa de un delito antes de tocar una tecla.
lab-red-recon
6 ejercicios + reto
laboratorio local
En preparación
OFENSIVA · LECCIÓN 02
Reconocimiento y enumeración en tu propio laboratorio
Objetivo: Ver tu sistema como lo ve alguien que acaba de llegar a la red.
lab-red-recon
6 ejercicios + reto
laboratorio local
En preparación
OFENSIVA · LECCIÓN 03
Escalada, movimiento lateral y persistencia
Objetivo: Entender la cadena posterior al primer acceso para poder cortarla.
lab-red-recon
6 ejercicios + reto
laboratorio local
En preparación
F16 · Seguridad de agentes de IA
AGENTES IA · LECCIÓN 01
La superficie de ataque de un agente
Objetivo: Inventariar las capacidades de un agente y tratar al modelo como entrada no confiable.
lab-ai-agente
6 ejercicios + reto
laboratorio local
En preparación
AGENTES IA · LECCIÓN 02
Prompt injection directa e indirecta
Objetivo: Sobrescribir la instrucción del sistema, y hacerlo desde el contenido que el agente lee.
lab-ai-agente
6 ejercicios + reto
laboratorio local
En preparación
AGENTES IA · LECCIÓN 04
Contexto y memoria envenenados
Objetivo: Entender la persistencia dentro del propio agente, entre sesiones.
lab-ai-agente
6 ejercicios + reto
laboratorio local
En preparación
AGENTES IA · LECCIÓN 05
Excessive agency y confused deputy
Objetivo: Ver el daño cuando el agente usa tu autoridad en nombre de otro.
lab-ai-agente
6 ejercicios + reto
laboratorio local
En preparación
AGENTES IA · LECCIÓN 06
Servidores MCP no confiables y cadena de herramientas
Objetivo: Saber qué entra a tu proceso cuando conectas un servidor MCP ajeno.
lab-ai-mcp
6 ejercicios + reto
laboratorio local
En preparación
F17 · Proyecto: Secure AI Control Plane
CONTROL PLANE · LECCIÓN 01
v0: AI → CLI, y por qué es indefendible
Objetivo: Construir el diseño obvio y enumerar por qué no se puede defender.
lab-control-plane
6 ejercicios + reto
laboratorio local
En preparación
CONTROL PLANE · LECCIÓN 02
v1: intención estructurada y motor de políticas
Objetivo: Sacar la ejecución del texto libre y decidir por política, no por prompt.
lab-control-plane
6 ejercicios + reto
laboratorio local
En preparación
CONTROL PLANE · LECCIÓN 03
v2: capability broker, aprobación y ejecutor efímero
Objetivo: Separar quién pide de quién puede, y ejecutar sin credenciales persistentes.
lab-control-plane
6 ejercicios + reto
laboratorio local
En preparación
CONTROL PLANE · LECCIÓN 04
v3: audit log y el supuesto del LLM comprometido
Objetivo: Poder reconstruir qué pasó incluso asumiendo que el modelo ya está en tu contra.
lab-control-plane
6 ejercicios + reto
laboratorio local
En preparación
CAP · Proyectos finales
CAPSTONES · LECCIÓN 01
Capstone 1 · API segura
Objetivo: Construir y defender una API completa contra todo lo visto en las fases 04 a 06.
lab-api-vuln
6 ejercicios + reto
laboratorio local
En preparación
CAPSTONES · LECCIÓN 02
Capstone 2 · Entorno Docker endurecido
Objetivo: Entregar un compose que sobreviva a los tres escapes de la fase 10.
lab-ctr-hardening
6 ejercicios + reto
laboratorio local
En preparación
CAPSTONES · LECCIÓN 03
Capstone 3 · Aplicación interna Zero Trust
Objetivo: Publicar una aplicación interna sin puertos abiertos y con acceso por identidad.
lab-cloud-cf
6 ejercicios + reto
laboratorio local
En preparación
CAPSTONES · LECCIÓN 04
Capstone 4 · Infraestructura cloud segura
Objetivo: Definir la infraestructura como código con el mínimo privilegio demostrable.
lab-cloud-cf
6 ejercicios + reto
laboratorio local
En preparación
CAPSTONES · LECCIÓN 05
Capstone 5 · Sandbox de agente de IA
Objetivo: Encerrar un agente de forma que un prompt injection no consiga nada útil.
lab-ai-agente
6 ejercicios + reto
laboratorio local
En preparación
CAPSTONES · LECCIÓN 06
Capstone final · Secure AI Infrastructure Control Plane
Objetivo: Integrar todo el curso en un plano de control que asume el modelo comprometido.
lab-control-plane
6 ejercicios + reto
laboratorio local
En preparación