ATALAIA
  1. Inicio
  2. Servicios
  3. CI/CD Pipeline Audit
06Estación 06 · Build

CI/CD Pipeline Audit

Tu pipeline guarda las claves de producción. Auditamos runners, tokens, actions de terceros y quién puede cambiar el propio workflow.

Un pipeline, cinco puntos calientes

Un workflow típico desde la pull request hasta producción. Cada número es un lugar donde un cambio malicioso puede convertirse en release.

  1. 1Pull requestdesde un fork
  2. 2ci.ymlfichero de workflow
  3. 3Runnercompartido, conserva la caché
  4. 4Actionsuses: …@v3
  5. 5SecretsDEPLOY_TOKEN
  6. Produccióndeploy
  1. 1
    Las PR desde forks se ejecutan con los mismos permisos que las PR de rama

    Workflow aparte para forks, sin secretos.

  2. 2
    Cualquiera con permiso de escritura puede editar ci.yml

    CODEOWNERS y ficheros de workflow protegidos.

  3. 3
    El runner conserva su caché entre jobs

    Runners efímeros, uno por job.

  4. 4
    Actions fijadas a un tag que su propietario puede mover

    Fija cada action a un SHA de commit.

  5. 5
    Un token llega a todos los entornos, desde cualquier job

    Un token por entorno, acotado al job de deploy.

Siguiendo las claves

Elige un paso o déjalo correr. Cada línea es lo que alguien dice de verdad en la sala.

Paso 1Mapea la línea

Repos, workflows, runners, secretos y destinos de deploy.

ATALAIAPrimero listemos cada workflow, runner y secreto.

PLATAFORMA23 workflows, dos runners compartidos y secretos en cada repo.

Sale de la salaMapa: 23 workflows, 4 runners, 31 secrets

Paso 2Sigue las claves

Qué paso puede llegar a qué secret y a qué entorno.

ATALAIAEste token de deploy es visible para todos los jobs, tests incluidos.

PLATAFORMAEs un token para todos los entornos. Más fácil de rotar.

ATALAIAY más fácil de robar. Un paso de test puede desplegar en producción.

Sale de la sala1 token llega a prod desde cada job

Paso 3Rómpelo sobre el papel

Cómo se movería una PR, una action o un runner maliciosos.

ATALAIAUna PR desde un fork se ejecuta en el runner compartido, y el runner conserva su caché.

DEV LEAD¿O sea que una PR maliciosa podría envenenar el siguiente build?

ATALAIASí. Y esta action está fijada a un tag. Quien la mantiene puede mover el tag.

Sale de la salaAttack path: PR desde fork → runner → prod

Paso 4Refuerza las plantillas

Actions fijadas, tokens acotados, runners efímeros, workflows protegidos.

PLATAFORMAPlantilla nueva: actions fijadas por SHA, un token por entorno.

ATALAIARunners efímeros para los forks y CODEOWNERS en los ficheros de workflow.

DEV LEADLo desplegamos en los 23 repos, una PR en cada uno.

Sale de la salaPlantilla: SHAs fijados, tokens acotados, runners efímeros

  • ATALAIA
  • PLATAFORMA
  • DEV LEAD
  • DESARROLLADOR

Qué sale mal

Un pipeline que puede desplegar cualquier cosa puede ser forzado a desplegar cualquier cosa. Los runners compartidos, los tokens amplios y las actions sin fijar convierten un paso comprometido en una release comprometida.

SEÑALES DE QUE ESTÁS AQUÍ

  • Las actions de terceros se referencian por tag, no por commit
  • Un único token de deploy sirve para todos los entornos
  • Cualquiera con permiso de escritura puede editar los ficheros de workflow

Qué recibes

  • Un mapa de cada pipeline, runner y secret
  • Hallazgos ordenados por radio de impacto
  • Plantillas de workflow fijadas y con mínimo privilegio
  • Ajustes de protección de branches y workflows que aplicar

Formato típico: De dos a cuatro semanas, según el número de pipelines.

Habladlo

Una llamada de 30 minutos. Sin diapositivas, sin lista de precios y con un siguiente paso en cualquier caso.