Cyber Security Academy · Lección

Firma de dependencias y artefactos

Verifique la procedencia con SLSA y Sigstore.

Lección 3 de 413 pasos

Firma de dependencias y artefactos es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 3 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.

Por qué importa la procedencia

Una SBOM le indica qué contiene un artefacto. La procedencia le indica de dónde proviene y cómo se compiló. La firma vincula un artefacto con un origen verificable, de modo que los consumidores puedan rechazar cualquier elemento que no haya producido su pipeline de confianza.

Sin procedencia, un atacante que sustituya un tarball en su registro resulta indistinguible de una versión legítima.

Digests, no etiquetas

La base de la integridad es el direccionamiento por contenido. Un hash criptográfico (digest) de un artefacto identifica de forma única esa secuencia exacta de bytes. Las etiquetas mutables como latest pueden redirigirse; un digest no.

# pull by immutable digest, not a tag
docker pull my-app@sha256:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613f

# compute a file digest
sha256sum release-1.4.0.tar.gz

Fundamentos de las firmas digitales

Una firma digital utiliza una clave privada para firmar el hash del artefacto; cualquiera que tenga la clave pública correspondiente puede verificarla. Esto proporciona dos garantías:

  • Integridad — el artefacto no se modificó después de firmarlo
  • Autenticidad — lo firmó quien posee la clave privada

La parte difícil no son las matemáticas, sino la gestión de claves y la distribución de la confianza: ¿cómo sabe un verificador en qué clave pública confiar?

Firma sin claves con Sigstore

La firma tradicional obliga a los equipos a proteger claves privadas de larga duración, que pueden filtrarse. Sigstore ofrece firma sin claves: emite un certificado de corta duración vinculado a una identidad OIDC (como una carga de trabajo de CI o el correo electrónico de un desarrollador), firma y registra el evento en un registro público de transparencia llamado Rekor.

No hay ninguna clave de larga duración que robar, y cada firma se puede auditar públicamente.

Firmar con Cosign

Cosign es la herramienta de Sigstore para firmar imágenes de contenedor y otros artefactos. En el modo sin claves utiliza el token OIDC del pipeline, por lo que no hay ningún archivo de claves en el disco.

# keyless sign in CI (uses ambient OIDC identity)
COSIGN_EXPERIMENTAL=1 cosign sign my-registry/my-app@sha256:1d5283...

# verify, asserting the expected signer identity
cosign verify my-registry/my-app@sha256:1d5283... \
  --certificate-identity-regexp '.*@my-org\.com' \
  --certificate-oidc-issuer https://accounts.google.com

El registro de transparencia

Sigstore registra cada evento de firma en Rekor, un registro público, de solo adición y con evidencia de manipulación. Este es un potente control de detección:

  • Puede demostrar cuándo se firmó algo
  • Un atacante que robe una identidad no puede firmar en secreto — el evento queda registrado públicamente
  • Las firmas anómalas (identidad inesperada, fuera del horario habitual) se vuelven detectables

La transparencia convierte una intrusión silenciosa en evidencia observable.

SLSA: niveles de integridad de las compilaciones

SLSA (Supply-chain Levels for Software Artifacts) es un marco que evalúa el nivel de confianza de su proceso de compilación. Los niveles superiores exigen garantías más sólidas contra la manipulación.

  • L1 — existe una procedencia documentada
  • L2 — procedencia firmada procedente de un servicio de compilación alojado
  • L3 — compilaciones reforzadas y aisladas; la procedencia no se puede falsificar, ni siquiera por alguien interno del pipeline

SLSA es una hoja de ruta: elija un nivel objetivo y cierre las brechas.

Atestaciones de procedencia de la compilación

Una atestación de procedencia es una declaración firmada que describe cómo se compiló un artefacto: el commit de origen, la identidad del compilador, los parámetros de compilación y las entradas. El formato in-toto lo estandariza.

# generate and attach SLSA provenance for an image
cosign attest --type slsaprovenance \
  --predicate provenance.json \
  my-registry/my-app@sha256:1d5283...

# verify provenance matches expected source repo
cosign verify-attestation --type slsaprovenance my-registry/my-app@sha256:1d5283...

Aplicación de firmas en la admisión

La firma solo resulta útil si algo rechaza los artefactos sin firmar. En Kubernetes, un controlador de admisión puede bloquear cualquier imagen que no tenga una firma válida y procedencia de su identidad de confianza.

  • Los controladores de políticas verifican las firmas de cosign antes de iniciar un pod
  • Rechace las imágenes firmadas por identidades inesperadas
  • Exija una procedencia que apunte a su repositorio de código fuente aprobado

Esto cierra el ciclo: los artefactos que no son de confianza nunca se ejecutan.

Firma de dependencias upstream

La procedencia es más valiosa cuando se extiende a lo que consume, no solo a lo que distribuye. Los ecosistemas están incorporando firma y procedencia nativas:

  • npm provenance vincula un paquete publicado con su commit de origen y su ejecución de CI
  • Las imágenes base de contenedores incluyen cada vez más firmas de cosign
  • Los registros de lenguajes están probando la verificación respaldada por Sigstore

Prefiera las dependencias que publiquen una procedencia verificable y verifíquela durante la instalación cuando sea compatible.

Priorizar la verificación

Una estrategia de firma práctica se aplica por capas y se verifica de extremo a extremo:

  • Fije las entradas mediante digest
  • Firme sin claves los artefactos y adjunte la SBOM y las atestaciones de procedencia
  • Regístrelo todo en un registro de transparencia
  • Exija la verificación durante el despliegue mediante una política de admisión

La cadena solo es tan sólida como su eslabón no verificado más débil, así que verifique en cada punto de consumo.

Comprobación rápida: firma sin claves

Analice por qué la firma sin claves mejora la seguridad de la cadena de suministro.

Repaso: firma de dependencias y artefactos

Ha aprendido a demostrar la procedencia y a exigirla.

  • Fije mediante digest, no mediante etiquetas mutables
  • Las firmas digitales proporcionan integridad y autenticidad; el desafío es la gestión de claves
  • Sigstore + cosign permiten firmar sin claves con un registro público de transparencia Rekor
  • SLSA evalúa la integridad de las compilaciones; las atestaciones de procedencia registran cómo se compilaron los artefactos
  • Las políticas de admisión rechazan durante el despliegue todo lo que no esté firmado o no sea de confianza

A continuación: reforzar el pipeline de CI/CD que produce estos artefactos.

Gratis para empezar

Aprende Cyber Security Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
76
Lecciones
303

Preguntas frecuentes

¿La lección «Firma de dependencias y artefactos» es gratis?

Sí — el texto completo de «Firma de dependencias y artefactos» 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 «Firma de dependencias y artefactos»?

Verifique la procedencia con SLSA y Sigstore. 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 3 de 4.

¿Cuánto tiempo toma la lección «Firma de dependencias y artefactos»?

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