Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Observar en caliente: un secreto que no es cadena estática también se recupera

4 tareas · 30 min · Principiante

Enganchar una función sirve para dos cosas distintas, y la sala anterior usó solo una. Además de forzar un valor para saltar un control, se puede enganchar para observar: leer lo que una función recibe y devuelve mientras la aplicación corre, sin cambiar nada. Esa observación responde una pregunta que el análisis estático no puede: qué pasa con un secreto que la aplicación no guarda como una cadena fija, sino que arma o descifra en ejecución. La respuesta incómoda es que da igual: en cuanto la aplicación lo usa, está en memoria y se lee. En esta sala se observa la instrumentación de Colibrí para ver eso, y entender por qué armar o cifrar un secreto en el cliente no lo protege. Todo sobre la aplicación de laboratorio propia, para corregir lo que revele.

0 de 4 · 0%

Objetivo de la sala

Enganchar una función sirve para dos cosas distintas, y la sala anterior usó solo una. Además de forzar un valor para saltar un control, se puede enganchar para observar: leer lo que una función recibe y devuelve mientras la aplicación corre, sin cambiar nada. Esa observación responde una pregunta que el análisis estático no puede: qué pasa con un secreto que la aplicación no guarda como una cadena fija, sino que arma o descifra en ejecución. La respuesta incómoda es que da igual: en cuanto la aplicación lo usa, está en memoria y se lee. En esta sala se observa la instrumentación de Colibrí para ver eso, y entender por qué armar o cifrar un secreto en el cliente no lo protege. Todo sobre la aplicación de laboratorio propia, para corregir lo que revele.

Colibrí tiene una clave de firma de peticiones que el análisis estático no encontró entera: la aplicación no la guarda como una cadena fija, sino que la arma en ejecución juntando varios trozos. Parece más seguro, y no lo es. Enganchando la función que la construye para leer lo que devuelve, la clave aparece completa en memoria, lista tal como la aplicación la va a usar. Armar un secreto en ejecución solo retrasa a quien lee el código estático; a quien observa la aplicación corriendo no lo frena.

La lección es la misma que la del secreto embebido: la mitigación no es ofuscar ni fragmentar, es que el secreto no viva en el cliente. Si la firma la necesita el servidor, se firma en el servidor.

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 de firma de Colibrí se arma en ejecución y aparece completa al observar la función. ¿Qué enseña y cómo se cierra?

Ver pista de ayuda

Lo que se arma en el cliente se usa en el cliente, y ahí se observa. Ofuscar retrasa el análisis estático, no la observación en vivo.

Conviene separar los dos usos del enganche. En la sala anterior se forzaba un valor —esAdministrador a verdadero— para probar que un control cedía: eso es cambiar el comportamiento. Aquí se lee lo que una función devuelve sin tocarlo: eso es análisis, no manipulación. La traza de la clave no prueba que un control esté mal puesto; prueba que un dato que se creía escondido es recuperable. Entender la diferencia evita escribir el hallazgo equivocado: «salté un control» y «recuperé un secreto» son cosas distintas, con arreglos distintos.

En Colibrí la observación se anota como lo que es: una lectura en ejecución que demuestra que el secreto del cliente no está protegido por armarse en caliente.

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

Enganchas una función de Colibrí solo para leer lo que devuelve, sin cambiarlo. ¿Qué tipo de hallazgo produce eso?

Ver pista de ayuda

Leer lo que devuelve una función es análisis; forzar su valor es manipulación. Producen hallazgos distintos.

La observación encuentra un segundo caso: Colibrí guarda un archivo de configuración cifrado, pero la clave para descifrarlo está incrustada en la propia aplicación. Al observar la función que descifra, el contenido aparece en claro en memoria. Esto conecta con el almacenamiento local: cifrar un dato en el cliente con una clave que también vive en el cliente solo traslada el problema un paso, porque quien controla el dispositivo tiene las dos piezas. No es inútil del todo —sube un poco el listón—, pero no es lo que cierra el fallo, y venderlo como cifrado de verdad engaña.

En Colibrí se anota que el cifrado con clave incrustada no protege frente a quien tiene el dispositivo; lo que protege de verdad es no guardar el secreto, o guardarlo en el almacén del sistema.

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

Colibrí cifra un archivo local con una clave incrustada en la aplicación, y al observar la función aparece descifrado. ¿Cómo se valora?

Ver pista de ayuda

Si la llave viaja con la cerradura, no hay cerradura. El algoritmo no es el problema; la clave en el cliente sí.

Abre el laboratorio y lee la traza de observación sobre Colibrí. Aísla la traza donde la clave de firma, que no era una cadena fija, apareció completa al leer lo que devolvía la función: junto a esa traza hay un código de la sala. Escríbelo tal cual.

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

Localiza la traza donde se recupera la clave de firma armada en ejecución y escribe el código de la sala anotado en ella.

Formato esperado: MOV-____

Ver pista de ayuda

El código está en la traza de la clave de firma que se arma en ejecución, no en la del archivo de configuración cifrado.

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