Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Variables de entorno y lo que filtran en registros

5 tareas · 35 min · Principiante

Las credenciales de un pipeline suelen viajar como variables de entorno, y de ahí pasan, sin que nadie lo pretenda, a los registros del trabajo, a la lista de procesos y a los volcados de depuración. Con la evidencia del trabajo 7310 de Molinos Zarzuela, una empresa ficticia, aprendes a rastrear una clave por todos los sitios donde acaba. El valor sensible es un marcador evidente, no una credencial real.

0 de 5 · 0%

Objetivo de la sala

Las credenciales de un pipeline suelen viajar como variables de entorno, y de ahí pasan, sin que nadie lo pretenda, a los registros del trabajo, a la lista de procesos y a los volcados de depuración. Con la evidencia del trabajo 7310 de Molinos Zarzuela, una empresa ficticia, aprendes a rastrear una clave por todos los sitios donde acaba. El valor sensible es un marcador evidente, no una credencial real.

Una variable de entorno la heredan los procesos hijos: lo que lanza el script, y lo que ese programa lance a su vez, la ven. Es cómodo y es lo que hace que una credencial puesta en el entorno del trabajo esté al alcance de cada herramienta que el trabajo ejecute, incluidas las que no la necesitan.

Las plataformas de CI añaden el enmascarado: sustituyen por asteriscos, en el registro, el valor exacto de los secretos que conocen. Ayuda, pero tiene límites: solo cubre los valores que la plataforma tiene declarados como secretos y solo cuando el texto coincide exacto (una versión recortada o transformada no se reconoce).

Responde para continuar

¿Qué implica que una variable de entorno se defina en el script de un trabajo?

Ver pista de ayuda

Piensa en padres e hijos: ¿qué recibe un proceso hijo?

Abre el volcado de env del trabajo 7310. Hay variables cuyo valor aparece como *** y otra cuyo valor sale tal cual: nadie la declaró como secreto en la plataforma, así que no se enmascaró.

Responde para continuar

Escribe el nombre de la variable de entorno cuyo valor aparece sin enmascarar en el volcado.

Ver pista de ayuda

Ejecuta cat entorno-trabajo-7310.txt y busca la línea sin asteriscos que parezca una clave.

Pasar un secreto como argumento de un programa (--clave valor) lo deja visible: en la configuración habitual de Linux, cualquier usuario del equipo puede ver las líneas de comandos de los procesos de otros con ps, salvo que /proc se monte con restricciones. Los programas bien hechos aceptan el secreto por archivo o por entrada estándar, como hace el que notifica en este ejemplo.

Mira la lista de procesos del ejecutor mientras corre el trabajo 7310.

Responde para continuar

Escribe el PID del proceso que lleva el valor sensible dentro de su línea de comandos.

Ver pista de ayuda

Ejecuta ps y lee el final de cada comando.

El script paso-firmar.sh empieza con set -x, que imprime cada comando con sus variables ya sustituidas. Es una ayuda de depuración excelente y una fuga fácil: lo que va en el comando va al registro. Cuenta cuántas líneas del registro del trabajo 7310 contienen el valor sensible, tanto las del rastro como las de otras etapas.

Responde para continuar

¿En cuántas líneas del registro trabajo-7310.log aparece el valor sensible sin enmascarar?

Ver pista de ayuda

grep CLAVE-FICTICIA trabajo-7310.log te enseña las líneas; cuéntalas.

El secreto ya está en un registro que otras personas leen. Quitar el set -x evita fugas futuras, pero no limpia lo ya escrito. Y confiar en el enmascarado no es una defensa: es una red por si algo se escapa.

Responde para continuar

¿Qué orden de correcciones propones para esta fuga?

Ver pista de ayuda

Una clave que se ha visto en un registro ya no es privada.

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

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