Catálogo
Todos los labs
Cada lab es autocontenido: lo corrés en local, completás el reto y lo practicás en tu propia máquina. Aprendizaje libre y open source.
Permisos, usuarios y procesos: la base real de Linux
Quién sos, qué podés tocar y qué se está ejecutando. Los tres ejes que explican casi todo lo que pasa en un sistema Linux.
Permisos en octal: leer 644 sin pensar
Un lab quirúrgico: solo traducir entre rwx y los tres dígitos octales, hasta que te salga automático.
systemd y journalctl: por qué un servicio no arranca
Un servicio falla y el reflejo es reiniciar a ciegas. Acá aprendés a leer el estado real con systemctl y a encontrar la causa en los logs con journalctl.
Una request no es magia: DNS, TCP, HTTP y logs
Qué pasa de verdad entre que escribís una URL y ves una respuesta. Resolución de nombres, conexión, request, respuesta y dónde mirar cuando falla.
4xx vs 5xx: ¿de quién es la culpa?
Lab quirúrgico para decidir, en un segundo, si un error HTTP es culpa de la request o del servidor. Con árbol de decisión y quiz.
Leer un /24 sin calculadora
Lab quirúrgico para entender la notación CIDR: cuántas IPs entran en un /24, /16 o /30, y por qué el prefijo es la clave. Con calculadora interactiva.
DNS paso a paso: de un nombre a una IP
Antes de la primera conexión hay una pregunta: ¿a qué IP voy? DNS la responde en varios saltos. Acá lo seguís con dig y entendés por qué a veces 'funciona en mi máquina'.
JWT no es autorización
Un token válido te dice quién sos, no qué podés hacer. La diferencia entre autenticación y autorización, y por qué confundirlas produce IDOR.
IDOR: el ataque de cambiar un número
Lab quirúrgico sobre el bug de autorización más común: pedir el recurso de otro cambiando un id en la URL. Con diagrama y quiz.
Idempotencia: por qué un reintento te cobra dos veces
La red falla, el cliente reintenta, y el usuario termina con dos cobros. El problema no es el retry: es que el endpoint no es idempotente. Acá ves la diferencia y el fix.
CloudTrail: quién hizo qué en AWS
En la nube, la identidad es el perímetro. CloudTrail registra cada acción de cada identidad. Aprendé a leer esos eventos para investigar un incidente.
IAM: leer una policy antes de que te muerda
En AWS, los permisos los decide una policy JSON, no tu intuición. Aprendé a leer Effect, Action, Resource y por qué un Deny le gana a cualquier Allow.
S3: el bucket que quedó público sin querer
La fuga de datos más común en la nube no es un hackeo: es un bucket mal configurado. Acá ves las cuatro capas que deciden si un objeto es público y cómo verificarlo antes de que lo haga un escáner ajeno.
Docker socket to host: cuando el contenedor toca el sistema
Montar /var/run/docker.sock dentro de un contenedor suele equivaler a entregar el host. Por qué se rompe el aislamiento y cómo no hacerlo.
Por qué chmod 777 es un problema, no una solución
Micro-lab: qué hace realmente 777, por qué 'lo arreglé con 777' suele abrir un agujero, y qué poner en su lugar.
Hashear no es cifrar
Lab quirúrgico para no volver a confundir hash, encoding y cifrado. base64 se deshace, SHA-256 no. Con playground interactivo para verlo.
Threat modeling de una app chica
No necesitás un framework caro ni un equipo de seguridad para pensar en amenazas. Con cuatro preguntas y un diagrama de flujo de datos, encontrás los riesgos reales de tu app antes de escribir una línea de defensa.
Un agente no debería tocar archivos a ciegas
Si tu agente de IA tiene herramientas, tiene permisos, y los permisos son superficie de ataque. Allowlists, rutas denegadas, auditoría y confirmación humana.
Secret scanning: el token que se te escapó al repo
Tarde o temprano alguien commitea una API key. Aprendé a detectarla con escaneo automático, a frenarla antes del commit y qué hacer cuando ya se filtró.
GitHub Actions: el secreto que terminó en los logs
Un secret bien guardado se filtra igual si lo imprimís, si corre en un PR de un fork, o si una acción de terceros lo lee. Acá ves cómo se escapan los secretos en CI y cómo cerrar cada puerta.