Skip to content

¿Qué es el servicio de metadatos de instancia (IMDS) y cómo mitiga IMDSv2 el SSRF?

Respuesta breve

IMDS es un endpoint link-local (169.254.169.254) que da a una instancia sus metadatos, incluidas las credenciales temporales de su rol IAM adjunto. El SSRF puede engañar al servidor para que recupere esa URL y filtre esas credenciales. IMDSv2 exige un PUT para obtener un token de sesión de corta duración, fija un TTL/límite de saltos de IP por defecto de 1, y rechaza solicitudes con ciertas cabeceras — de modo que un simple GET de SSRF ya no puede alcanzarlo.

Es una pregunta sénior de nube favorita porque enlaza una vulnerabilidad web (SSRF) con un ataque nativo de la nube (robo de credenciales) — y la solución es elegante.

Qué hace IMDS

Toda instancia puede consultar una dirección link-local, 169.254.169.254, para leer sus propios metadatos: región, ID de instancia, redes y — crucialmente — las credenciales temporales del rol IAM adjunto a ella. Las aplicaciones lo usan para no necesitar nunca claves estáticas. El problema: el endpoint confía en cualquier solicitud que se origine en la instancia.

Por qué el SSRF es tan peligroso aquí

En un ataque de falsificación de solicitud del lado del servidor (SSRF), un atacante obliga a la aplicación a realizar una solicitud HTTP a una URL elegida por él. Si la apunta a http://169.254.169.254/latest/meta-data/iam/security-credentials/..., el servidor recupera las credenciales del rol y las devuelve. El atacante ahora posee credenciales de nube válidas, acotadas al rol — la brecha de Capital One es el ejemplo canónico.

Cómo lo cierra IMDSv2

IMDSv1 respondía a un simple GET, que es exactamente lo que produce el SSRF. IMDSv2 está orientado a sesiones:

  • El cliente debe primero emitir un PUT para obtener un token de sesión de corta duración, y luego enviar ese token en una cabecera en cada lectura. La mayoría de las primitivas de SSRF solo pueden hacer simples GET, así que no pueden completar el intercambio (handshake).
  • El límite de saltos (TTL de IP) de respuesta por defecto es 1, de modo que la respuesta no puede atravesar un proxy de reenvío ni escapar del espacio de nombres de red de un contenedor para alcanzar a un atacante externo.
  • Las solicitudes que llevan una cabecera X-Forwarded-For se rechazan, bloqueando el abuso de proxy abierto.

Aplica solo IMDSv2 en el lanzamiento (y en toda la cuenta vía política), y acota igualmente el rol de la instancia para que una filtración tenga un radio de impacto mínimo.

Qué buscan los entrevistadores

Conocer la IP de metadatos, que sirve credenciales de rol, el vínculo con el SSRF, y específicamente por qué el diseño de token PUT más límite de saltos lo frustra.

Posibles preguntas de seguimiento

  • ¿Por qué un límite de saltos por defecto de 1 rompe el SSRF a través de un contenedor o proxy?
  • ¿Cómo aplicarías solo IMDSv2 en toda una cuenta?
  • ¿Qué radio de impacto tiene una credencial de rol de instancia filtrada, y cómo lo limitas?

Fuentes

Consigue 100 preguntas de entrevista de ciberseguridad + respuestas

Déjanos tu correo y te enviaremos el pack en PDF gratuito y el mazo de flashcards.

Sin spam. Cancela tu suscripción cuando quieras.