Ir al contenido
getnextpdf.com

Integridad de la cadena de suministro

Los controles de la cadena de suministro de NextPDF operan en dos puntos: los controles de CI que se ejecutan en cada pull request que cambia dependencias y en cada etiqueta de versión, y el flujo de trabajo de publicación, que configura la generación de procedencia, la firma keyless y la emisión de SBOM.

ControlTipo
SBOM CycloneDX 1.7 de la compilaciónControl de CI, estricto
Declaración in-toto que se compromete con las entradas de la compilaciónControl de CI, estricto
Comparación de huellas SHA-256 de dependencias contra una línea base fijadaControl de CI, estricto
Comprobación de consistencia OpenVEX contra la política de avisos de dependenciasControl de CI, estricto
Comprobación de determinismo entre fixturesComprobación de CI, de mejor esfuerzo
Generación de procedencia con slsa-github-generator fijadoConfiguración de flujo de trabajo — flujo de publicación
Firma keyless con cosign de Sigstore con registro de transparencia en RekorConfiguración de flujo de trabajo — flujo de publicación
Emisión de SBOM CycloneDX 1.7 y SPDX 2.3Configuración de flujo de trabajo — flujo de publicación
Matriz nocturna de php-fuzzer sobre las rutas del analizador y del escritorCI programada

Cada pull request que toca dependencias, y cada etiqueta de versión, ejecuta:

ComprobaciónQué haceControl
InventarioEmite un SBOM CycloneDX 1.7 de la compilaciónEstricto
Registro de entradas de compilaciónEmite una declaración in-toto que se compromete con las entradas de la compilaciónEstricto
Integridad de dependenciasCompara huellas de bytes SHA-256 contra una línea base fijadaEstricto
Consistencia VEXExige que cada entrada de la política de avisos de dependencias tenga una declaración correspondiente en el documento OpenVEX v0.2.0 del repositorioEstricto
ReproducibilidadEjecuta una comprobación de determinismo sobre los fixturesDe mejor esfuerzo

El control de integridad de dependencias compara las huellas de bytes SHA-256 del árbol de dependencias contra una línea base fijada en el repositorio, con independencia de los metadatos de los paquetes.

Configuración del flujo de trabajo de publicación

Sección titulada «Configuración del flujo de trabajo de publicación»

Procedencia — configuración del flujo de trabajo

Sección titulada «Procedencia — configuración del flujo de trabajo»

El flujo de trabajo de publicación fija el flujo reutilizable canónico slsa-github-generator, configurado para generar procedencia in-toto dentro de un constructor aislado y efímero, y configura slsa-verifier para ejecutarse en línea contra la salida del generador.

Firma y transparencia — configuración del flujo de trabajo

Sección titulada «Firma y transparencia — configuración del flujo de trabajo»

El flujo de trabajo de publicación configura la firma keyless con cosign de Sigstore para el paquete de artefactos, con registro de transparencia en Rekor. La firma keyless deriva un certificado de corta duración de la identidad OIDC del flujo de trabajo (https://token.actions.githubusercontent.com), de modo que esta ruta de firma de versiones está configurada sin ninguna clave de firma de artefactos de larga duración.

SBOM — configuración del flujo de trabajo

Sección titulada «SBOM — configuración del flujo de trabajo»

El flujo de trabajo de publicación configura la emisión dual de SBOM: un documento CycloneDX 1.7 y un documento SPDX 2.3.

Una matriz nocturna de php-fuzzer, junto con un arnés de AST/árbol de estructura, ejercita las rutas del analizador y del escritor.