0Pricing
Cyber Security Academy · Lección

Protección de pipelines de CI/CD

Refuerce el proceso de compilación y lanzamiento.

Protección de pipelines de CI/CD es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.

El pipeline como objetivo

Un pipeline de CI/CD tiene acceso privilegiado al código fuente, los secretos y la producción. Comprometerlo permite a un atacante inyectar puertas traseras en cada compilación futura mientras evita la revisión de código. Es uno de los objetivos de mayor valor de la ingeniería moderna.

Trate el pipeline como infraestructura de producción: merece el mismo nivel de refuerzo, supervisión y disciplina de privilegios mínimos que sus sistemas activos.

Entradas que no son de confianza en las compilaciones

Los pipelines se ejecutan automáticamente ante eventos que no controla por completo: pull requests, etiquetas y contribuciones externas. Un pull request malicioso puede intentar modificar la propia compilación.

  • Una definición del pipeline contaminada en un fork puede intentar exfiltrar secretos
  • El código que no es de confianza puede ejecutarse con los mismos permisos que las compilaciones de confianza

Separe los flujos de trabajo de confianza de los que no lo son: no exponga secretos a trabajos activados por pull requests externos.

Fije sus acciones e imágenes

Los pasos del pipeline suelen obtener acciones de terceros o imágenes de contenedor mediante una etiqueta mutable. Si esa etiqueta se redirige a contenido malicioso, la compilación queda comprometida. Fije los elementos mediante digests inmutables.

# BAD: mutable tag can be moved under you
uses: some/action@v3

# GOOD: pinned to an immutable commit SHA
uses: some/action@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0

# pin container steps by digest too
image: build-tools@sha256:9f86d081884c7d659a2feaa0c55ad015...

Privilegios mínimos para los tokens

Los tokens predeterminados del pipeline suelen tener demasiados permisos y conceden acceso de escritura a todo el repositorio o registro. Restrinja su alcance exactamente a lo que necesita cada trabajo.

# scope the default token to read-only, grant more only where needed
permissions:
  contents: read

jobs:
  publish:
    permissions:
      contents: read
      packages: write   # only this job can publish

Higiene de secretos

Los secretos codificados directamente o compartidos ampliamente son una vía principal de filtración. Aplique un tratamiento estricto:

  • Almacene los secretos en un gestor de secretos o en el almacén de secretos de CI, nunca en el código
  • Prefiera la federación OIDC de corta duración a las claves estáticas de la nube
  • Enmascare los secretos en los registros y evite que se repitan
  • Limite cada secreto a los trabajos y entornos mínimos necesarios

La federación OIDC permite que el pipeline intercambie una identidad de compilación por credenciales de nube de corta duración, eliminando por completo las claves de larga duración.

Runners efímeros y aislados

Un runner de compilación reutilizado puede transportar malware o secretos filtrados de un trabajo al siguiente. Los runners efímeros se crean desde cero para cada trabajo y se destruyen después, de modo que nada persiste.

  • Un entorno limpio por compilación, que después se descarta
  • Ningún estado compartido entre trabajos de confianza y trabajos que no lo son
  • Tráfico saliente de red restringido a los puntos de conexión necesarios

Esto respalda directamente los objetivos de aislamiento de SLSA L3.

Proteja la rama de código fuente

La confianza del pipeline comienza en el control de código fuente. Si cualquiera puede hacer push a la rama de lanzamiento, las firmas y los análisis posteriores no sirven de nada.

  • Exija la revisión de pull requests antes de fusionar
  • Exija commits firmados en las ramas protegidas
  • Exija que superen las comprobaciones de estado (pruebas y análisis)
  • Prohíba el force-push y el push directo a main
# require signed commits on a branch
git config commit.gpgsign true

# verify a commit signature locally
git verify-commit HEAD

Analice dentro del pipeline

Integre los controles de seguridad directamente en CI para que los problemas hagan fallar la compilación en lugar de llegar a producción.

# secret leak detection
gitleaks detect --source . --redact

# dependency vulnerabilities
osv-scanner --lockfile=package-lock.json

# IaC and config misconfig
trivy config .

# fail the job on critical findings (non-zero exit stops CI)

Control de dos personas para los lanzamientos

Las acciones de gran impacto merecen un control humano. Los despliegues en producción y los cambios de credenciales deben requerir la aprobación de alguien distinto de su autor.

  • Las reglas de protección del entorno exigen un revisor antes del despliegue
  • Separe la identidad de compilación de la identidad de despliegue
  • Ninguna persona puede escribir código y enviarlo a producción sin revisión

Esto limita tanto el riesgo interno como el radio de impacto de una cuenta comprometida.

Auditoría y evidencia de manipulación

Debe poder reconstruir lo que hizo el pipeline. Centralice y proteja sus registros.

  • Envíe los registros de CI a un almacén de solo adición y con acceso controlado
  • Registre quién modificó las definiciones del pipeline y cuándo
  • Genere procedencia firmada para que los artefactos se puedan rastrear hasta una compilación concreta
  • Alerta sobre anomalías: un runner autoalojado nuevo, acceso inesperado a secretos o un cambio de configuración fuera del proceso de revisión

Lista de comprobación para reforzar el pipeline

Un pipeline defendible combina controles de código fuente, compilación y lanzamiento:

  • Protección de ramas, commits revisados y firmados
  • Acciones e imágenes fijadas mediante digest
  • Tokens OIDC de corta duración y con privilegios mínimos
  • Runners efímeros y aislados
  • Análisis de secretos, dependencias y configuración dentro del pipeline
  • Aprobación de lanzamientos por dos personas
  • Artefactos firmados, SBOM y procedencia con registro de auditoría

Comprobación rápida: permisos de los tokens

Decida cuál es el control adecuado para un token de compilación privilegiado.

Repaso: protección de los pipelines de CI/CD

Ha aprendido a reforzar toda la ruta de compilación y lanzamiento.

  • Trate el pipeline como producción; puede introducir puertas traseras en cada compilación futura
  • Aísle las compilaciones de PR que no son de confianza de los secretos
  • Fije las acciones y las imágenes mediante digest; utilice tokens OIDC de corta duración y con privilegios mínimos
  • Utilice runners efímeros y aislados y proteja la rama de código fuente
  • Analice dentro del pipeline, exija la aprobación de lanzamientos por dos personas y conserve registros de auditoría con evidencia de manipulación

Curso completado: ahora puede proteger la cadena de suministro de software de extremo a extremo.

Preguntas frecuentes

¿La lección «Protección de pipelines de CI/CD» es gratis?

Sí — el texto completo de «Protección de pipelines de CI/CD» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Protección de pipelines de CI/CD»?

Refuerce el proceso de compilación y lanzamiento. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cyber Security Academy?

No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Protección de pipelines de CI/CD»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?

Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Amenazas a la cadena de suministro
  2. Lista de materiales de software (SBOM)
  3. Firma de dependencias y artefactos
  4. Protección de pipelines de CI/CD
← Volver a Cyber Security Academy