> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpna/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpna/introduccion-a-ec2/fundamentos-ofensivos-para-el-servicio-de-imdsv1/porque-utilizar-imdsv2.md).

# ¿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.

## <mark style="color:orange;">¿Por qué IMDSv2 es más seguro?</mark>

1. <mark style="color:orange;">**Requiere Tokens de Sesión**</mark><mark style="color:orange;">:</mark> 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. <mark style="color:orange;">**Tokens de Sesión de Tiempo Limitado**</mark><mark style="color:orange;">:</mark> 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. <mark style="color:orange;">**Métodos HTTP Restrictivos**</mark><mark style="color:orange;">:</mark> 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.

## <mark style="color:orange;">Tipo de Ataques que Impide</mark>

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

* <mark style="color:orange;">**Ataques de SSRF (Server-Side Request Forgery)**</mark><mark style="color:orange;">:</mark> 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.

## <mark style="color:orange;">Ejemplo de Ataque Impedido</mark>

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.

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://books.spartan-cybersec.com/cpna/introduccion-a-ec2/fundamentos-ofensivos-para-el-servicio-de-imdsv1/porque-utilizar-imdsv2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
