Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Secretos guardados en la propia máquina

5 tareas · 25 min · Principiante

La sala anterior vio cómo salen las credenciales por el servicio de metadatos sin que nadie las guarde. Esta mira el otro camino, el más viejo y el más común a la vez: las credenciales que alguien guardó a mano dentro de la máquina. Una clave pegada en el script de arranque de la instancia, un fichero de credenciales olvidado en el disco, un secreto en una variable de entorno — todas son claves que viven en la propia máquina y que, el día que se compromete, se van con el atacante. En la cuenta de Cobalto hay una instancia cuyo script de arranque lleva una clave de acceso de larga vida en texto plano. En esta sala aprendes a reconocer dónde se esconden esos secretos y cómo se evita tenerlos ahí.

0 de 5 · 0%

Objetivo de la sala

La sala anterior vio cómo salen las credenciales por el servicio de metadatos sin que nadie las guarde. Esta mira el otro camino, el más viejo y el más común a la vez: las credenciales que alguien guardó a mano dentro de la máquina. Una clave pegada en el script de arranque de la instancia, un fichero de credenciales olvidado en el disco, un secreto en una variable de entorno — todas son claves que viven en la propia máquina y que, el día que se compromete, se van con el atacante. En la cuenta de Cobalto hay una instancia cuyo script de arranque lleva una clave de acceso de larga vida en texto plano. En esta sala aprendes a reconocer dónde se esconden esos secretos y cómo se evita tenerlos ahí.

Cada instancia puede llevar un script de arranque —los datos de usuario— que se ejecuta cuando la máquina se enciende para dejarla configurada. Es cómodo meter ahí una clave de acceso "para que la aplicación la tenga al arrancar", y es un error por dos motivos. Primero, ese script no es secreto: suele poder leerse consultando la propia instancia, incluso a través del servicio de metadatos, así que una clave ahí está casi publicada dentro de la máquina. Segundo, queda guardado tal cual, de modo que cualquiera que acceda a la configuración de la instancia se la lleva. Una credencial en el script de arranque es una credencial esperando a ser leída.

El script de arranque se puede consultar; una clave escrita ahí no está guardada, está expuesta dentro 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.

Preparando el escritorio…

Responde para continuar

¿Por qué es peligroso poner una clave de acceso en el script de arranque de una instancia?

Ver pista de ayuda

¿Quién puede leer ese script, y qué pasa con lo que escribiste dentro?

El secreto que Cobalto dejó en el arranque es, además, una clave de acceso de larga vida: no caduca sola. Eso la hace peor que una credencial temporal en el mismo sitio, porque si la máquina se compromete, la clave sigue valiendo fuera de ella indefinidamente, hasta que alguien la revoque. La alternativa es no tener ninguna clave en la máquina: la instancia ya tiene un rol asignado que le entrega credenciales temporales por el servicio de metadatos, que caducan solas y se revocan quitando el rol. Si la aplicación puede autenticarse con el rol de la instancia, meterle una clave de larga vida a mano solo añade un secreto robable sin ganar nada.

Una clave de larga vida en la máquina vale fuera de ella para siempre; el rol de la instancia da credenciales que caducan y se revocan.

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.

Preparando el escritorio…

Responde para continuar

La clave del arranque es de larga vida. ¿Qué la hace peor que usar el rol de la instancia?

Ver pista de ayuda

Compara cuánto sigue valiendo cada cosa si alguien la saca de la máquina.

En la misma instancia de Cobalto hay, además, un fichero de credenciales en el disco con otra clave de larga vida. Es la misma familia de problema que el script de arranque: un secreto en reposo dentro de la máquina, que viaja con cualquier copia del disco, con cualquier respaldo y con cualquier acceso de lectura al sistema de archivos. No importa que el fichero esté "en una ruta que nadie conoce": las rutas de los ficheros de credenciales son estándar y se buscan las primeras. Mientras haya una clave escrita en el disco de la máquina, hay un secreto que se filtra con la máquina.

Un secreto en el disco se va con cada copia y con cada acceso de lectura; la ruta "discreta" no es una defensa.

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.

Preparando el escritorio…

Responde para continuar

Hay un fichero de credenciales de larga vida en el disco de la instancia. ¿Cómo lo calificas?

Ver pista de ayuda

¿Con qué se va ese fichero, y sirve de algo que su ruta sea poco conocida?

La corrección tiene dos partes. Quitar los secretos de donde están —borrar la clave del script de arranque y el fichero del disco— y, como las dos claves ya estuvieron expuestas, rotarlas, porque una clave que anduvo en texto plano se da por filtrada. Y cambiar el modo de autenticar: si la aplicación puede usar el rol de la instancia, que lo use y no guarde ninguna clave; y los secretos que de verdad no se pueden evitar van en un almacén de secretos gestionado, del que la aplicación los lee en tiempo de ejecución con su rol, nunca escritos en el arranque ni en el disco. Así la máquina deja de llevar encima nada que valga la pena robar.

Sacar el secreto de la máquina, rotar lo que estuvo expuesto y leer de un almacén con el rol es lo que hace que comprometer la instancia no entregue una clave.

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.

Preparando el escritorio…

Responde para continuar

¿Cuál es la corrección completa de los secretos de la instancia de Cobalto?

Ver pista de ayuda

No basta con moverlas: estuvieron en claro, así que se rotan, y se deja de guardarlas en la máquina.

Abre el laboratorio de secretos de la instancia de Cobalto. Lee el script de arranque y el disco de la máquina, localiza las claves de larga vida guardadas a mano y después el informe de la revisión, que cierra con el código de la sala.

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.

Preparando el escritorio…

Responde para continuar

Confirma en la instancia la clave de larga vida escrita en el script de arranque y el fichero de credenciales en el disco, y escribe el código de la sala que cierra el informe de la revisión de secretos.

Formato esperado: SEC-____

Ver pista de ayuda

Con la terminal, `cat revision.txt`. El hallazgo cruza la clave del arranque con el fichero del disco; el código está en la última línea.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Preparando el escritorio…

16:24
Terminal (user@whoami)
user@whoami:~$
Tab Autocompletar ↑/↓ Historial
bash 5.2.21
Whoami-Labs OS v3.0.1 LTS · build bcc89e

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