🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónCredenciales que salen por el servicio de metadatos
5 tareas · 30 min · Principiante
Cada máquina virtual en la nube puede preguntarle a un servicio interno "¿quién soy y qué credenciales tengo?", y ese servicio de metadatos le entrega las claves temporales del rol de la instancia. Es cómodo — la aplicación no guarda contraseñas — y es una trampa si se configura mal: si un fallo de la aplicación permite que una petición hecha desde fuera se reenvíe hacia ese servicio interno, el atacante se lleva las credenciales de la máquina sin haber entrado en ella. En la cuenta de Cobalto hay una instancia con la versión insegura del servicio y un rol amplio detrás. En esta sala aprendes a reconocer las dos piezas y a cerrarlas. La superficie ofensiva la ves en detalle en el curso de profundizar; aquí el trabajo es defenderla.
Objetivo de la sala
Cada máquina virtual en la nube puede preguntarle a un servicio interno "¿quién soy y qué credenciales tengo?", y ese servicio de metadatos le entrega las claves temporales del rol de la instancia. Es cómodo — la aplicación no guarda contraseñas — y es una trampa si se configura mal: si un fallo de la aplicación permite que una petición hecha desde fuera se reenvíe hacia ese servicio interno, el atacante se lleva las credenciales de la máquina sin haber entrado en ella. En la cuenta de Cobalto hay una instancia con la versión insegura del servicio y un rol amplio detrás. En esta sala aprendes a reconocer las dos piezas y a cerrarlas. La superficie ofensiva la ves en detalle en el curso de profundizar; aquí el trabajo es defenderla.El servicio de metadatos de instancia vive en una dirección interna fija, alcanzable solo desde dentro de la propia máquina. Entre otras cosas, entrega las credenciales temporales del rol que la instancia tiene asignado: unas claves que sirven para actuar como ese rol en la nube. Mientras solo procesos legítimos de la máquina lo consulten, es un mecanismo sano y hasta más seguro que guardar una clave fija. El problema aparece cuando algo que no es la máquina consigue que la máquina haga esa consulta por él.
Entender que el servicio de metadatos reparte credenciales del rol es lo que explica por qué robar una petición hacia él equivale a robar la identidad de la máquina.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿Qué entrega el servicio de metadatos de una instancia cuando se le consulta desde dentro?
Ver pista de ayuda
Sirve para que la aplicación actúe como su rol sin guardar una clave fija.
Hay dos versiones del servicio. La primera responde a cualquier petición que llegue a su dirección interna, sin más. La segunda exige que quien pregunte obtenga antes un vale de sesión con una petición especial que un simple reenvío desde fuera no puede hacer. La instancia de Cobalto usa la primera. Con ella, si la aplicación tiene un fallo que permite pedirle que traiga una dirección arbitraria —y esa dirección es la del servicio de metadatos—, la respuesta con las credenciales vuelve al atacante. Es robo de credenciales por el servicio de metadatos de instancia: no se explota el servicio, se explota que la máquina lo consulte de parte de otro.
La versión que responde sin exigir un vale de sesión es la que convierte un fallo de la aplicación en un robo de las credenciales de la máquina.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
La instancia usa la versión del servicio de metadatos que responde a cualquier petición interna. ¿Por qué es un riesgo?
Ver pista de ayuda
El servicio no se rompe; se le pregunta de parte de otro. ¿Qué lo impide?
Robar las credenciales de la instancia solo vale lo que esas credenciales permitan hacer. La instancia de Cobalto tiene asignado un rol amplio —puede leer varios almacenamientos y tocar la base de datos— cuando la aplicación que corre allí solo necesita leer un almacenamiento de imágenes. Así, un robo por metadatos no se queda en la máquina: hereda todo lo que el rol puede hacer en la cuenta. Es la misma lección del permiso de más, ahora combinada con la ventana de los metadatos: la exposición y el privilegio se multiplican, no se suman. Cerrar solo una de las dos deja la mitad del problema.
Un rol de instancia recortado al mínimo hace que, incluso si las credenciales se filtran, sirvan para muy poco.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
La instancia tiene un rol que puede tocar varios almacenamientos y la base de datos, y su aplicación solo lee imágenes. ¿Qué añade eso al riesgo de metadatos?
Ver pista de ayuda
Las credenciales robadas valen exactamente lo que el rol permita.
El arreglo cierra las dos piezas a la vez. Primero, obligar a la versión del servicio que exige el vale de sesión, de modo que un reenvío desde fuera ya no obtenga respuesta — en AWS es requerir la versión 2 del servicio en la instancia; en Azure, el servicio de metadatos ya exige una cabecera equivalente, y se comprueba que la aplicación no la reenvíe. Segundo, recortar el rol de la instancia al mínimo que la aplicación usa. Con la ventana cerrada y el rol recortado, ni se roban las credenciales fácilmente ni sirven de mucho si se roban. Hacer solo lo primero deja un rol amplio esperando; solo lo segundo, una ventana abierta.
Requerir el vale de sesión y recortar el rol son un solo arreglo en dos mitades: quitar la vía y quitarle el valor a lo que saldría por ella.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿Cuál es la corrección completa del riesgo de metadatos en la instancia de Cobalto?
Ver pista de ayuda
Son dos piezas —la ventana y el privilegio—; el arreglo cierra las dos.
Abre el laboratorio de instancias de Cobalto. Lee la configuración de la instancia de la web —la versión de su servicio de metadatos y el rol que lleva adjunto— y después el informe de la revisión, que cierra con el código del hallazgo.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Confirma en la instancia la versión insegura del servicio de metadatos y el rol amplio adjunto, y escribe el código del hallazgo que cierra el informe de la revisión de metadatos.
Formato esperado: IMD-____
Ver pista de ayuda
Con la terminal, `cat revision.txt`. El hallazgo es la versión del servicio que responde sin vale de sesión más el rol amplio; el código está en la última línea.
Preparando el escritorio…
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.