¿Cómo deshabilitar los metadatos de AWS EC2?

Este artículo le enseñará sobre los metadatos de EC2 y por qué son importantes. También aprenderá a deshabilitar metadatos para protegerse de ataques como SSRF.

Amazon Web Services (AWS) tiene un servicio Amazon Elastic Compute Cloud (Amazon EC2), que proporciona capacidad de procesamiento escalable. Al utilizar Amazon EC2, puede desarrollar e implementar aplicaciones más rápidamente sin realizar una inversión inicial en hardware.

Según sus necesidades, inicie tantos o tan pocos servidores virtuales. Configure los ajustes de red y seguridad y controle el almacenamiento con Amazon EC2.

La información sobre su instancia que se puede personalizar o administrar en una instancia en ejecución se conoce como metadatos de la instancia. Las categorías de metadatos de instancia incluyen nombre de host, eventos y grupos de seguridad. Además, puede acceder a los datos de usuario que especificó al iniciar su instancia utilizando los metadatos de la instancia.

Puede incluir un script corto o especificar parámetros mientras configura su instancia. Con los datos de usuario, puede crear AMI genéricas y modificar los archivos de configuración de tiempo de lanzamiento.

Puede configurar instancias nuevas o existentes para realizar las siguientes tareas mediante las opciones de metadatos de la instancia:

  • Requerir que las solicitudes de metadatos de instancia se envíen a través de IMDSv2
  • Ingrese el límite de salto de respuesta PUT.
  • Acceso a metadatos de la instancia de bloqueo

Es posible acceder a los metadatos desde una instancia EC2 activa utilizando una de las siguientes técnicas: IMDSv1sIMDSv2

El servicio de metadatos de instancia se conoce como IMDS. Como puede suponer, las metodologías son ligeramente diferentes; IMDSv1 emplea un método de solicitud/respuesta, mientras que IMDSv2 está orientado a sesiones.

AWS le insta a utilizar IMDSv2, que es el método preferido. De forma predeterminada, el SDK de AWS utiliza llamadas IMDSv2 y puede solicitar a los usuarios que configuren un nuevo EC2 con IMDSv2 habilitado mediante el uso de claves de condición de IAM en una política de IAM.

Utilice los siguientes URI de IPv4 o IPv6 para ver todos los tipos de metadatos de instancia de una instancia en ejecución.

IPv4

enrollamiento http://169.254.169.254/latest/meta-data/

IPv6

rizo http://[fd00:ec2::254]/últimos/metadatos/

Las direcciones IP son direcciones locales de enlace y solo son válidas desde la instancia.

Para ver los metadatos de la instancia, solo puede usar la dirección de vínculo local de 169.254.169.254 . Las solicitudes de metadatos a través de la URI son gratuitas, por lo que no hay cargos adicionales de AWS.

Necesidad de deshabilitar los metadatos

En las configuraciones de AWS, el ataque SSRF es frecuente y conocido por todos. Mandiant (una firma de seguridad cibernética) ha encontrado atacantes que automatizan el escaneo de vulnerabilidades y recopilan credenciales de IAM de aplicaciones en línea de acceso público.

Implementar IMDSv2 para todas las instancias EC2, que tiene ventajas de seguridad adicionales, reduciría estos riesgos para su empresa. La posibilidad de que un enemigo robe credenciales de IAM a través de SSRF disminuiría significativamente con IMDSv2.

El uso de falsificación de solicitudes del lado del servidor (SSRF) para obtener acceso al servicio de metadatos EC2 es una de las técnicas para la explotación de AWS que se enseña con más frecuencia.

El servicio de metadatos está disponible para la mayoría de las instancias EC2 en 169.254.169.254. Este contiene información beneficiosa sobre la instancia, como su dirección IP, el nombre del grupo de seguridad, etc.

Si se adjunta una función de IAM a una instancia EC2, el servicio de metadatos también contendrá las credenciales de IAM para autenticarse como esta función. Podemos robar esas credenciales según la versión de IMDS en uso y las capacidades de la SSRF.

También vale la pena considerar que un adversario con acceso de shell a la instancia EC2 podría obtener estas credenciales.

En este ejemplo, un servidor web se ejecuta en el puerto 80 de la instancia EC2. Este servidor web tiene una vulnerabilidad SSRF simple, que nos permite enviar solicitudes GET a cualquier dirección. Esto se puede usar para enviar una solicitud a http://169.254.169.254.

Para deshabilitar los metadatos

Al bloquear el extremo HTTP del servicio de metadatos de la instancia, puede evitar el acceso a los metadatos de la instancia, independientemente de la versión del servicio de metadatos de la instancia que esté utilizando.

Puede revertir este cambio en cualquier momento habilitando el punto final HTTP. Utilice el comando de la CLI modify-instance-metadata-options y establezca el parámetro http-endpoint en disabled para deshabilitar los metadatos de su instancia.

Para deshabilitar los metadatos, ejecute este comando:

aws ec2 modificar-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint disabled

deshabilitar metadatos

Puede ver que después de deshabilitar mis metadatos, si intento acceder a ellos, recibo un mensaje PROHIBIDO.

Si desea habilitar sus metadatos nuevamente, ejecute este comando:

aws ec2 modificar-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint habilitado

habilitando metadatos nuevamente

Conclusión

Los metadatos pueden ser útiles para extraer información de grandes almacenes de datos. Sin embargo, también se puede utilizar indebidamente para conocer la ubicación o la identidad de una persona sin su conocimiento o consentimiento. Debido a que registra todos los cambios que realiza, incluidas las eliminaciones y los comentarios, debe tener en cuenta que puede contener información que no le gustaría que otros pudieran ver. Como resultado, la eliminación de metadatos es fundamental para mantener su privacidad y anonimato en línea.

También puede explorar algunas terminologías clave de AWS que mejoran su aprendizaje de AWS.