¿Porque utilizar IMDSv2?

IMDSv2 (Instance Metadata Service version 2) mejora significativamente la seguridad respecto a su predecesor, IMDSv1, mediante la introducción de medidas que requieren un mayor grado de autenticación para acceder a los metadatos de las instancias de EC2. Estas mejoras abordan vulnerabilidades específicas que podrían ser explotadas en la versión anterior.

¿Por qué IMDSv2 es más seguro?

  1. Requiere Tokens de Sesión: IMDSv2 introduce un requisito de token de sesión para todas las solicitudes de metadatos. Los clientes deben primero hacer una llamada PUT a una URL especial para obtener un token que luego se usa en las solicitudes subsiguientes a los metadatos. Este token es un requisito de seguridad que asegura que solo las entidades autenticadas puedan acceder a los metadatos.

  2. Tokens de Sesión de Tiempo Limitado: Los tokens de sesión tienen una vida útil limitada, configurada por el usuario, que puede ser de hasta 6 horas. Esto limita la ventana de tiempo durante la cual un token es válido, reduciendo el riesgo de que tokens robados sean utilizados para acceder a los metadatos.

  3. Métodos HTTP Restrictivos: IMDSv2 solo permite solicitudes HTTP PUT para obtener un token y solicitudes HTTP GET para acceder a los metadatos con un token, restringiendo los métodos que pueden ser utilizados para interactuar con el servicio de metadatos y reduciendo la superficie de ataque.

Tipo de Ataques que Impide

IMDSv2 está diseñado para prevenir varios tipos de ataques, incluyendo:

  • Ataques de SSRF (Server-Side Request Forgery): En el pasado, si una aplicación vulnerable a SSRF se ejecutaba en una instancia de EC2, un atacante podría explotar esta vulnerabilidad para realizar solicitudes no autorizadas a IMDSv1 y obtener metadatos sensibles. Con IMDSv2, el requisito de un token de sesión obtenido mediante una llamada PUT previene efectivamente este tipo de ataque, ya que los atacantes no pueden fácilmente obtener o reutilizar un token válido sin acceso directo a la instancia.

Ejemplo de Ataque Impedido

Imagina una aplicación web vulnerable a SSRF alojada en una instancia EC2 que utiliza IMDSv1. Un atacante podría enviar una solicitud maliciosa diseñada para que el servidor realice una solicitud a http://169.254.169.254/latest/meta-data/ y obtenga credenciales IAM o cualquier otro dato sensible almacenado en los metadatos de la instancia.

Con IMDSv2, este ataque sería mucho más difícil de realizar porque el atacante primero necesitaría obtener un token válido realizando una solicitud PUT a http://169.254.169.254/latest/api/token. Dado que los ataques SSRF generalmente solo permiten realizar solicitudes GET y no PUT, el atacante no podría obtener el token necesario para luego acceder a los metadatos.

En resumen, IMDSv2 mejora considerablemente la seguridad de las instancias EC2 al introducir requisitos de tokens de sesión y métodos HTTP restrictivos, lo que ayuda a mitigar ataques de SSRF y asegura que solo las entidades autenticadas puedan acceder a los metadatos sensibles de la instancia.

Última actualización