🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónEl pipeline de compilación móvil y los secretos que maneja
5 tareas · 45 min · Principiante
Antes de llegar a la tienda, una app pasa por un pipeline que descarga dependencias, compila, firma y publica. Si algo falla ahí, la firma de la app no sirve de nada: el paquete saldría firmado por el editor, con su clave, y aun así sería otra cosa. En esta sala se revisa, en una estación de solo lectura, la copia de un pipeline de ejemplo de Jilguero Pagos, empresa ficticia: su configuración, sus dependencias y tres registros de compilación. Las claves que aparecen son marcadores del ejercicio. Se lee, se anota el hallazgo con su medida y no se ejecuta nada.
Objetivo de la sala
Antes de llegar a la tienda, una app pasa por un pipeline que descarga dependencias, compila, firma y publica. Si algo falla ahí, la firma de la app no sirve de nada: el paquete saldría firmado por el editor, con su clave, y aun así sería otra cosa. En esta sala se revisa, en una estación de solo lectura, la copia de un pipeline de ejemplo de Jilguero Pagos, empresa ficticia: su configuración, sus dependencias y tres registros de compilación. Las claves que aparecen son marcadores del ejercicio. Se lee, se anota el hallazgo con su medida y no se ejecuta nada.La clave con la que se firma una app es el secreto más valioso de su distribución: quien la tenga firma como el editor. Si está en el repositorio, la tiene todo el que clona el código, incluidos contratistas y cuentas comprometidas. Si el pipeline la recibe de un gestor de secretos o de un servicio de firma, el pipeline pide una firma y no ve la clave, y cada petición queda en un registro de auditoría.
Algunas tiendas ofrecen además guardar la clave de firma de distribución en su propio servicio y dejar al editor una clave de subida que, si se pierde o se compromete, se puede reponer; eso reduce el daño de una fuga en el pipeline.
Responde para continuar
¿Dónde debe vivir la clave que firma la versión de publicación?
Ver pista de ayuda
Cuantas menos personas y sistemas vean la clave, y más rastro deje cada uso, mejor.
Abre la estación y lee el archivo del pipeline. Las notas de la revisión tienen un código por hallazgo. El grave es el que permite firmar como el editor sin tocar el servidor de nadie.
Responde para continuar
Escribe el código del hallazgo que deja la clave de firma al alcance de cualquiera que clone el repositorio.
Ver pista de ayuda
Lee las notas de la revisión al final de pipeline.yml y busca la que habla del almacén de firma.
Los registros de compilación los leen más personas que el repositorio: soporte, desarrollo, a veces proveedores. Una línea de depuración que imprima una variable de entorno basta para dejar un secreto a la vista, y los registros se guardan durante semanas. Un buscador de texto sobre los tres registros localiza la fuga sin abrir cada uno.
Responde para continuar
Escribe el nombre del archivo de registro en el que se imprimieron las claves.
Ver pista de ayuda
Busca la palabra CLAVE dentro de la carpeta registros con grep y fíjate en el nombre del archivo que sale.
En la lista de dependencias, una sola viene de un repositorio externo y sin huella fijada. Cuando un pipeline busca un paquete en un repositorio interno y en uno externo a la vez, alguien puede publicar fuera un paquete con el mismo nombre que uno interno y una versión mayor, y el pipeline lo elegirá. A eso se le llama confusión de dependencias. Se evita fijando cada dependencia por versión y huella, dando prioridad al repositorio interno y pasando lo externo por un espejo propio que se revisa.
Responde para continuar
Una dependencia llega de un repositorio externo y sin huella fijada. ¿Qué medida la cierra?
Ver pista de ayuda
El riesgo es que el pipeline elija un paquete que no esperaba. Lo que lo cierra es decirle exactamente cuál.
Una vez que un secreto estuvo en el repositorio, queda en su historial y en cada copia clonada. Quitarlo del archivo y hacer una confirmación nueva no lo saca de ahí. La medida que cierra el hallazgo es considerar la clave comprometida: sustituirla por otra, sacarla del repositorio y del pipeline, y repasar qué se firmó con ella. Si la clave es de firma, la rotación debe estar prevista para que los usuarios actuales puedan actualizar, como se vio en la primera sala.
Responde para continuar
Se detecta que la clave de firma estuvo en el repositorio. ¿Basta con borrarla del archivo y confirmar el cambio?
Ver pista de ayuda
Lo que estuvo en el historial lo tiene todo el que clonó. Una clave expuesta se sustituye, no se esconde.
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.