2.0 Tareas de la Fase 2 del Marco de Desarrollo de Software Seguro

2.0 Marco de Desarrollo de Software Seguro y pasos de CI/CD en Build/Deploy

2.0 Cumpliendo las Tareas de Compilación y Despliegue del Marco de Desarrollo de Software Seguro

Este capítulo se enfoca específicamente en las herramientas y prácticas de DevSecOps relacionadas con las acciones de Compilar y Desplegar en el pipeline de CI/CD para cumplir las tareas definidas por el Marco de Desarrollo de Software Seguro.

El Marco de Desarrollo de Software Seguro, desarrollado por el Instituto Nacional de Estándares y Tecnología (NIST), proporciona un enfoque integral para garantizar la seguridad a lo largo del proceso de desarrollo de software, desde el diseño inicial hasta el despliegue y mantenimiento. El marco describe prácticas y directrices clave que las organizaciones pueden implementar para asegurar su ciclo de vida de desarrollo de software (SDLC), con un énfasis particular en integrar la seguridad en los procesos automatizados.

2.1 Preparar la Organización (PO) Las organizaciones deben asegurarse de que su personal, procesos y tecnología estén preparados para realizar desarrollo de software seguro a nivel organizacional. Muchas organizaciones encontrarán que algunas prácticas de PO también son aplicables a subconjuntos de su desarrollo de software, como grupos de desarrollo individuales o proyectos específicos.
2.2 Proteger el Software (PS) Las organizaciones deben proteger todos los componentes de su software contra manipulaciones y accesos no autorizados.
2.3 Producir Software Bien Asegurado (PW) Las organizaciones deben producir software seguro con vulnerabilidades mínimas en sus versiones.
2.4 Responder a Vulnerabilidades (RV) Las organizaciones deben identificar vulnerabilidades residuales en sus versiones de software y responder adecuadamente para abordarlas y prevenir que ocurran vulnerabilidades similares en el futuro.

1 - 2.1 Preparar la Organización (PO)

2.1 Preparar la Organización (PO) para los pasos de CI/CD de Build y Deploy

2.1 Preparar la Organización (PO) - Tareas de Build y Deploy

Las organizaciones deben asegurarse de que su personal, procesos y tecnología estén preparados para realizar desarrollo de software seguro a nivel organizacional. Muchas organizaciones encontrarán que algunas prácticas de PO también son aplicables a subconjuntos de su desarrollo de software, como grupos de desarrollo individuales o proyectos.


PO.1 Definir Requisitos de Seguridad para el Desarrollo de Software: Asegurar que los requisitos de seguridad para el desarrollo de software sean conocidos en todo momento, de manera que puedan ser considerados a lo largo del SDLC y se minimice la duplicación de esfuerzos, ya que la información de los requisitos puede recopilarse una sola vez y compartirse. Esto incluye requisitos de fuentes internas (por ejemplo, las políticas de la organización, objetivos de negocio y estrategia de gestión de riesgos) y fuentes externas (por ejemplo, leyes y regulaciones aplicables).


Para cumplir con SSDF PO.1 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se desplaza de solo definir a:

  • Aplicar políticas de seguridad sobre dependencias, código y configuraciones.

  • Verificar el cumplimiento con las bases de seguridad establecidas antes del despliegue.

  • Asegurar que los artefactos cumplan con los requisitos de seguridad del DoD, NIST u organizacionales.


Tareas Herramientas
PO.1.1:

Identificar y documentar todos los requisitos de seguridad para las infraestructuras y procesos de desarrollo de software de la organización, y mantener dichos requisitos a lo largo del tiempo.

PO.1.2:

Identificar y documentar todos los requisitos de seguridad que el software desarrollado por la organización debe cumplir, y mantener dichos requisitos a lo largo del tiempo.

Open Policy Agent

Motor de políticas de propósito general usando Rego para aplicar políticas en servicios, CI/CD e infraestructura.

Conftest

Usa el lenguaje Rego de OPA para probar manifests de Kubernetes, Terraform y Dockerfiles contra requisitos de seguridad predefinidos.

InSpec

Prueba infraestructuras y aplicaciones desplegadas contra frameworks de cumplimiento (por ejemplo, CIS Benchmarks, NIST 800-53).

Kyverno

Motor de políticas nativo de Kubernetes para aplicar configuraciones seguras en el momento del despliegue.

Checkov

Escanea Infraestructura como Código (IaC) durante la compilación para asegurar el cumplimiento de los requisitos de seguridad antes del despliegue.

Trivy

Escanea imágenes de contenedores, IaC y SBOMs para vulnerabilidades y configuraciones incorrectas antes del despliegue.

Clair

Análisis estático de imágenes de contenedores para asegurar que cumplan con los requisitos de seguridad antes de enviarlas al registro.

Grype

Escaneo de vulnerabilidades en imágenes de contenedores y sistemas de archivos para validar artefactos contra políticas antes del despliegue.

Sigstore Cosign

Firmar y verificar imágenes de contenedores y otros artefactos de compilación para asegurar su integridad y procedencia.

Conforma

Verifica de forma segura artefactos de la cadena de suministro y aplica políticas sobre cómo fueron construidos y probados. Construido con Sigstore y Open Policy Agent, puede verificar el cumplimiento de procedencia SLSA con políticas extensibles.

PO.2

Implementar Roles y Responsabilidades: Asegurar que todas las personas, dentro y fuera de la organización, involucradas en el SDLC estén preparadas para desempeñar sus roles y responsabilidades relacionadas con el SDLC durante todo el ciclo de vida del desarrollo de software.


Para cumplir con SSDF PO.2 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se traslada a:

  • Aplicar control de acceso basado en roles (RBAC) para limitar quién puede iniciar compilaciones, aprobar cambios y desplegar.

  • Proporcionar registros de auditoría y trazabilidad de las acciones para garantizar responsabilidad.

  • Asegurar que los cambios de código y despliegues sean revisados por personal autorizado.


Tareas Herramientas
PO.2.1:

Crear nuevos roles y modificar responsabilidades de los roles existentes según sea necesario para abarcar todas las partes del SDLC. Revisar y mantener periódicamente los roles y responsabilidades definidos, actualizándolos según se requiera.


PO.2.2:

Proporcionar formación basada en roles para todo el personal con responsabilidades que contribuyan al desarrollo seguro. Revisar periódicamente la competencia del personal y la formación basada en roles, y actualizar la formación según sea necesario.


PO.2.3:

Obtener el compromiso de la alta dirección o del funcionario autorizado con el desarrollo seguro y comunicar ese compromiso a todos los involucrados en roles y responsabilidades relacionadas con el desarrollo.

Keycloak

Gestión de identidad y acceso de código abierto para aplicar RBAC en pipelines de CI/CD y herramientas de despliegue.

Dex

Proveedor federado de OpenID Connect para integrar identidades de desarrolladores en sistemas de build y deploy con control de acceso basado en roles.

Vault by HashiCorp

Gestiona y controla de manera segura el acceso a secretos según roles definidos durante builds y despliegues.

Argo CD

Herramienta de despliegue GitOps con RBAC para controlar quién puede sincronizar, aprobar o revertir despliegues.

Jenkins with Role Strategy Plugin

Agrega RBAC detallado a pipelines de Jenkins, limitando acciones de build y deploy a roles autorizados.

Tekton Pipelines

CI/CD nativo de Kubernetes con RBAC de Kubernetes para controlar permisos de ejecución de pipelines.

Flux CD

Herramienta GitOps que aplica RBAC para workflows de despliegue y requiere aprobaciones para cambios.

Kubernetes RBAC

Control de acceso incorporado para restringir quién puede desplegar, modificar o eliminar cargas de trabajo.

Gitea

Servicio Git autoalojado con roles de usuario y permisos de repositorio para aplicar flujos de trabajo de aprobación y revisión.

Auditbeat

Proporciona registro de auditoría para acciones de build y deploy, ayudando a rastrear el cumplimiento de las responsabilidades asignadas.

PO.3

Implementar Cadenas de Herramientas de Soporte: Utilizar automatización para reducir el esfuerzo humano y mejorar la precisión, reproducibilidad, usabilidad y exhaustividad de las prácticas de seguridad a lo largo del SDLC, así como proporcionar una forma de documentar y demostrar el uso de estas prácticas. Las cadenas de herramientas y herramientas pueden utilizarse en diferentes niveles de la organización, como a nivel organizacional o específico de proyecto, y pueden abordar una parte particular del SDLC, como un pipeline de build.


Para cumplir con SSDF PO.3 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se centra en:

  • Asegurar que las herramientas de build y despliegue estén configuradas de forma segura y se mantengan actualizadas.

  • Proteger contra ataques a la cadena de suministro que apunten al pipeline de CI/CD.

  • Verificar la integridad de herramientas y artefactos antes de su uso.

  • Controlar y monitorear el acceso a las cadenas de herramientas.


Tareas Herramientas
PO.3.1:

Especificar qué herramientas o tipos de herramientas deben o deberían incluirse en cada cadena de herramientas para mitigar los riesgos identificados, así como cómo se deben integrar entre sí los componentes de la cadena de herramientas.


PO.3.2:

Seguir las prácticas de seguridad recomendadas para desplegar, operar y mantener herramientas y cadenas de herramientas.


PO.3.3:

Configurar las herramientas para generar artefactos que respalden las prácticas de desarrollo de software seguro definidas por la organización.

Sigstore Cosign

Firma y verifica artefactos de build para evitar el despliegue de software manipulado.

Marco SLSA + slsa-verifier

Garantiza la procedencia del build y verifica la integridad de los artefactos antes del despliegue.

Gitleaks

Escanea repositorios y pipelines de build en busca de secretos antes de la ejecución del build.

Argo CD

Herramienta de despliegue GitOps con RBAC para controlar quién puede sincronizar, aprobar o revertir despliegues.

Trivy

Escanea contenedores de herramientas CI/CD y sus dependencias en busca de vulnerabilidades.

Syft

Genera SBOMs de artefactos de build para rastrear los componentes usados en la cadena de herramientas.

Builds herméticos con Konflux-ci

Builds con dependencias fijadas y predescargadas en entornos aislados para habilitar builds reproducibles y verificables.

Hermeto

Pre-descarga dependencias para builds herméticos, genera SBOMs y asegura builds de contenedores aislados de red con checksums verificables.

Clair

Analiza imágenes de contenedores usados en builds/despliegues para detectar vulnerabilidades.

Vault de HashiCorp

Protege secretos usados por herramientas de build/despliegue, asegurando que no se expongan en los pipelines.

Open Policy Agent (OPA)

Aplica políticas como código en workflows de CI/CD y despliegue usando Rego para prevenir acciones inseguras.

Fábrica de software Konflux-ci para Tekton

Implementa el framework In-toto usando pipelines como código.

Auditbeat

Monitorea y registra la actividad de la cadena de herramientas CI/CD para garantizar integridad y cumplimiento.

PO.4 Define and Use Criteria for Software Security Checks: Help ensure that the software resulting from the SDLC meets the organization’s expectations by defining and using criteria for checking the software’s security during development.


Para cumplir con SSDF PO.4 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se centra en:

  • Aplicar prácticas consistentes de pruebas y validación de seguridad antes del lanzamiento.

  • Automatizar las verificaciones de seguridad en los pipelines de CI/CD.

  • Utilizar procesos estandarizados para verificar, firmar y rastrear artefactos.

  • Integrar controles de seguridad para que ningún artefacto inseguro sea desplegado.


Tareas Herramientas
PO.4.1:

Definir criterios para las verificaciones de seguridad del software y hacer seguimiento a lo largo del SDLC.

PO.4.2:

Implementar procesos, mecanismos, etc., para recopilar y proteger la información necesaria en apoyo de los criterios.

OWASP Dependency-Check

Automatiza el escaneo de dependencias de código abierto en los builds para aplicar una detección consistente de vulnerabilidades.

Semgrep

Análisis estático integrado en los builds para asegurar verificaciones consistentes de seguridad del código antes del despliegue.

Bandit (para Python)

Linter de seguridad para Python en pipelines de build para mantener verificaciones consistentes por lenguaje.

Trivy

Escaneo consistente de vulnerabilidades e IaC antes del despliegue.

Grype

Mantiene escaneos de vulnerabilidades consistentes para todos los artefactos de build.

InSpec

Automatiza verificaciones de cumplimiento antes del despliegue para asegurar que las prácticas coincidan con los estándares organizacionales.

Sigstore Cosign

Estandariza la firma y verificación de artefactos para que solo builds confiables sean desplegados.

Open Policy Agent (OPA)

Aplica políticas de despliegue a nivel organizacional en todos los entornos.

DefectDojo

Centraliza y estandariza el seguimiento de vulnerabilidades y flujos de remediación en todos los builds.

PO.5 Implementar y Mantener Entornos Seguros para el Desarrollo de Software: Asegúrese de que todos los componentes de los entornos de desarrollo de software estén fuertemente protegidos contra amenazas internas y externas, para evitar compromisos de los entornos o del software que se desarrolla o mantiene en ellos. Ejemplos de entornos de desarrollo incluyen entornos de desarrollo, build, prueba y distribución.


Para cumplir con SSDF PO.5 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se centra en:

Proteger la infraestructura de CI/CD contra amenazas internas y externas. Endurecer servidores de build, registros de contenedores y sistemas de despliegue. Asegurar que los entornos de build y despliegue estén parchados, monitoreados y con control de acceso. Prevenir código malicioso o manipulación en la cadena de suministro de software.

Tareas Herramientas
PO.5.1:

Separar y proteger cada entorno involucrado en el desarrollo de software.

PO.5.2:

Asegurar y reforzar los endpoints de desarrollo (i.e., endpoints para diseñadores de software, desarrolladores, testers, builders, etc.) para realizar tareas de desarrollo utilizando un enfoque basado en riesgos.

Jenkins Configuration as Code + Role Strategy Plugin

Protege los servidores de build de Jenkins con configuraciones codificadas y RBAC para limitar el acceso a trabajos críticos de build.

Tekton Pipelines

Framework CI/CD nativo de Kubernetes con control de acceso basado en roles (RBAC).

Argo CD

Despliegue GitOps con RBAC y verificación de commits firmados para despliegues a producción.

Vault by HashiCorp

Protege secretos en entornos de build y despliegue, previniendo fugas en los pipelines.

Sigstore Cosign

Firma artefactos de build y los verifica antes del despliegue para asegurar que no fueron manipulados.

In-toto

Proporciona seguridad de extremo a extremo en la cadena de suministro de software, asegurando que cada paso del build/despliegue esté firmado y verificado.

InSpec

Ejecuta escaneos de cumplimiento continuo en servidores de desarrollo y build; aplica benchmarks CIS/NIST.

SLSA + slsa-verifier

Verifica la procedencia del build, asegurando que los artefactos provienen de un entorno de build confiable y no comprometido.

Trivy

Escanea contenedores e infraestructura de build/despliegue en busca de vulnerabilidades y configuraciones incorrectas.

Falco

Seguridad en tiempo de ejecución para entornos de build y despliegue, detectando comportamientos maliciosos o actividad no autorizada.

Auditbeat

Monitorea servidores de build y despliegue para cambios en la integridad de archivos, accesos no autorizados y eventos de seguridad.

Kyverno

Aplica políticas de seguridad de Kubernetes en los entornos de despliegue (ej., no permitir pods privilegiados).

2 - 2.2 Proteger el Software (PS)

2.2 Proteger el Software (PS) para pasos de Build y Deploy CI/CD

2.2 Proteger el Software (PS) en Tareas de Build y Deploy

Proteger el Software (PS): Las organizaciones deben proteger todos los componentes de su software contra manipulaciones y accesos no autorizados.


PS.1

Proteger Todas las Formas de Código de Accesos y Manipulaciones No Autorizadas: Ayuda a prevenir cambios no autorizados en el código, tanto inadvertidos como intencionales, que podrían eludir o anular las características de seguridad previstas del software. Para el código que no está destinado a ser accesible públicamente, esto ayuda a prevenir el robo del software y puede dificultar o retrasar que los atacantes encuentren vulnerabilidades en el software.


Para cumplir con SSDF PS.1 en un contexto de build y deploy usando herramientas de código abierto, el enfoque se desplaza de solo definir a:

  • Asegurar la propia pipeline CI/CD: garantizar que solo procesos confiables y autenticados puedan producir outputs de build.

  • Proteger los inputs de código fuente y dependencias, bloquear versiones, usar checksums y prevenir la inyección de código malicioso en el proceso de build.

  • Firmar artefactos y registrar su procedencia, generando metadatos criptográficamente verificables que prueben qué se construyó, desde qué fuente y por quién.

  • Aplicar builds reproducibles para que cualquier manipulación genere una discrepancia en hash/firma.

  • Restringir el acceso al sistema de build y aplicar permisos basados en roles, MFA y principio de menor privilegio para los servidores de build.

Tareas Herramientas
PS.1.1:

Almacenar todas las formas de código, incluyendo código fuente, código ejecutable y configuración-como-código, basándose en el principio de menor privilegio para que solo el personal, herramientas, servicios, etc., autorizados tengan acceso.

cosign Sigstore

Firmar los resultados de construcción (binarios, contenedores, SBOMs) y crear atestaciones; verificar en CI antes de la promoción.

Git commits/tags firmados

Requerir commits/tags firmados y rechazar los no firmados en CI para evitar que código no autorizado entre en las construcciones.

Sigstore Fulcio + Rekor

Emitir certificados de corta duración (Fulcio) y registrar firmas/atestaciones en un registro de transparencia (Rekor) para detectar/seguir manipulaciones.

Procedencia SLSA (generadores + verificador)

Emitir y firmar la procedencia de la construcción; verificar quién/qué/dónde se construyó el artefacto antes de enviarlo.

In-toto

Definir un diseño de cadena de suministro y verificar los materiales/productos de cada paso para asegurar que nada fue manipulado a lo largo de la canalización.

Tekton Chains

Firmar automáticamente los resultados de tareas (imágenes, archivos) en pipelines de Tekton y almacenar atestaciones (por ejemplo, en Rekor).

Notation (CNCF Notary v2)

Firmar artefactos OCI (imágenes, Helm charts) durante la construcción para verificación posterior en registros y clusters.

Nix

Bloquear insumos y hacer las construcciones determinísticas para que los cambios no autorizados sean detectables mediante discrepancia de hash/procedencia.

Bazel

Bloquear insumos y hacer las construcciones determinísticas para que los cambios no autorizados sean detectables mediante discrepancia de hash/procedencia.

Grafeas

Persistir firmas, SBOMs y metadatos de políticas para auditar la integridad de las construcciones a través de los servicios.

Harbor

Aplicar confianza de contenido, cuentas de robots y políticas sobre quién puede subir/descargar; requerir artefactos firmados antes de la liberación.

Sigstore Policy Controller

Controlador de admisión que bloquea imágenes no firmadas o firmadas incorrectamente; aplica políticas de clave/issuer/sujeto.

Kyverno

Políticas de Kubernetes que requieren firmas de imágenes, fijan por digest y prohíben etiquetas mutables en despliegues.

OPA Gatekeeper

Control de admisión para despliegues con políticas personalizadas (por ejemplo, “solo imágenes firmadas de registros/namespaces aprobados”).

Ratify

Verifica firmas/atestaciones OCI (Cosign/Notation) en tiempo de admisión y bloquea todo lo que falle la verificación.

Connaisseur

Controlador de admisión de Kubernetes dedicado a verificar las firmas de imágenes de contenedores antes de su programación.

Sigstore Cosign

Verificar firmas/atestaciones como puerta de liberación en su pipeline de CD antes de aplicar los manifests.

PS.2

Proporcionar un Mecanismo para Verificar la Integridad del Software: Ayuda a los adquirentes de software a asegurarse de que el software que reciben es legítimo y no ha sido manipulado. Hacer que la información de verificación de integridad esté disponible para los adquirentes de software.


Para cumplir con SSDF PS.2 en un contexto de build y deploy usando herramientas open-source, el enfoque se centra en:

  • Generar artefactos de integridad para cada release

  • Vincular artefactos con el código fuente versionado

  • Publicar materiales de verificación

  • Requerir chequeos de integridad como puerta de release

  • Exponer datos de verificación a los consumidores

  • Control de admisión basado en integridad


Tasks Tools
PS.2.1:

Poner la información de verificación de integridad del software a disposición de los adquirentes de software.

Cosign Sigstore

Firmar binarios, imágenes de contenedores, SBOMs y atestaciones durante la construcción; soporta firmas sin clave.

Git signed commits/tags

Firmar etiquetas de liberación para vincular criptográficamente el código fuente con el artefacto construido.

Sigstore Fulcio + Rekor

Fulcio emite certificados de firma efímeros; Rekor registra todas las firmas en un registro de transparencia a prueba de manipulaciones para verificación posterior.

SLSA provenance (generators + verifier)

Genera automáticamente metadatos de procedencia describiendo el origen, insumos y proceso de construcción. Valida los archivos de procedencia para asegurar la integridad del artefacto antes de su distribución.

In-toto

Define un diseño verificable de la cadena de suministro de software; crea metadatos de enlace que prueban cada paso de la construcción.

Grafeas

Almacena metadatos (firmas, checksums, SBOMs) para que puedan ser consultados para verificación.

GNU Coreutils / sha256sum

Crear y publicar checksums de artefactos de liberación para que los receptores puedan verificar manual o automáticamente la integridad.

Harbor

Aplicar confianza de contenido; asegurar que solo se almacenen y distribuyan imágenes firmadas, con políticas sobre quién puede subir/descargar; requerir artefactos firmados antes de la liberación.

Sigstore Policy Controller

Controlador de admisión de Kubernetes que aplica políticas de firma/procedencia antes del despliegue. Bloquea imágenes no firmadas o firmadas incorrectamente; aplica políticas de clave/issuer/sujeto.

Kyverno

Políticas de Kubernetes que requieren firmas de imágenes, fijan por digest y prohíben etiquetas mutables en despliegues. Valida firmas y digests de imágenes de contenedor antes de desplegarlas.

OPA Gatekeeper

Control de admisión personalizado para aplicar integridad de artefactos y políticas de firmantes confiables.

Ratify

Framework de verificación plugable para registros/imágenes OCI; funciona con Cosign, Notation, in-toto.

Connaisseur

Controlador de admisión de Kubernetes dedicado a la verificación de firmas y políticas de confianza de imágenes.

Notation

Firma artefactos OCI (contenedores, Helm charts) y los verifica antes de instalar o desplegar.

Sigstore Cosign

Se usa en pipelines de CD o hooks de admisión para verificar que firmas y atestaciones coincidan con claves/políticas confiables antes de la promoción.

PS.3

Archivar y Proteger Cada Versión de Software: Conservar las versiones de software para ayudar a identificar, analizar y eliminar vulnerabilidades descubiertas después de su liberación.


Para cumplir con SSDF PS.3 en un contexto de construcción y despliegue usando herramientas de código abierto, el enfoque se centra en:

  • Construcción: El énfasis está en capturar, almacenar y asegurar cada versión oficial (código fuente, binarios, SBOM, firmas, procedencia) en un almacenamiento inmutable y versionado.

  • Despliegue: El énfasis está en asegurar que solo se utilicen en producción aquellas versiones archivadas y protegidas, aplicando inmutabilidad, fijación por digest y verificación de firmas/procedencia como mecanismos de cumplimiento.

Tareas Herramientas
PS.3.1:

Archivar de manera segura los archivos necesarios y los datos de soporte (por ejemplo, información de verificación de integridad, datos de procedencia) que se deben conservar para cada liberación de software.

PS.3.2:

Recopilar, proteger, mantener y compartir los datos de procedencia de todos los componentes de cada liberación de software (por ejemplo, en una lista de materiales de software [SBOM]).

Git (Etiquetado de Liberación)

Crear etiquetas firmadas e inmutables para cada liberación; preserva el snapshot del código fuente para auditoría.

Git LFS

Almacenar artefactos binarios grandes junto con el código fuente, asegurando la integridad.

Nexus Repository OSS

Hospedar y versionar artefactos de liberación (JARs, binarios, contenedores) con control de acceso basado en roles y validación de checksums.

JFrog Artifactory OSS

Archivar resultados de construcción en un repositorio controlado y versionado; soporta checksums y políticas de retención.

Harbor

Almacenar imágenes de contenedores con escaneo de vulnerabilidades, RBAC y confianza de contenido firmado para preservar la integridad de la liberación. Aplicar etiquetas inmutables y evitar sobrescrituras para que los artefactos desplegados siempre se puedan rastrear hasta la copia archivada.

OSS Review Toolkit

(ORT) Archivar SBOMs, archivos de licencia y reportes de vulnerabilidades junto con la liberación para cumplimiento y auditoría.

Sigstore Cosign

Firmar artefactos de liberación antes de archivarlos para que la integridad pueda ser verificada posteriormente.

Kyverno

Aplicar imágenes con digest fijo para asegurar que los despliegues siempre coincidan con las versiones archivadas.

OPA Gatekeeper

Aplicación de políticas para garantizar que solo se desplieguen artefactos archivados y aprobados.

Ratify

Verifica firmas y atestaciones de artefactos contra los metadatos de liberaciones archivadas antes del despliegue.

Connaisseur

Controlador de admisión que asegura que solo se desplieguen imágenes firmadas del conjunto archivado.

Backblaze B2 / Rclone (Integración OSS)

Archivado a largo plazo de versiones de artefactos desplegados para recuperación o investigación.

SLSA Provenance + Rekor

Conservar la procedencia de construcción en un registro de transparencia para que las liberaciones desplegadas puedan ser verificadas cruzadamente con los originales archivados.

rebuilderd

rebuilderd verifica de manera independiente que los paquetes binarios puedan reproducirse desde el código fuente, lo que es un mecanismo sólido para la integridad de componentes de terceros y para preservar/verificar la evidencia de integridad de la liberación.

TestifySec

El enfoque de TestifySec es la verificación de evidencia, atestaciones y políticas en torno a las construcciones; su herramienta Witness se usa para crear y verificar atestaciones y aplicar políticas, es decir, generación de procedencia + verificación de políticas.

3 - 2.3 Producir Software Bien Asegurado (PW)

2.3 Producir Software Bien Asegurado (PW) en los pasos de Build y Deploy de CI/CD

2.3 Producir Software Bien Asegurado (PW) para las Tareas de Build y Deploy

Las organizaciones deben producir software bien asegurado con mínimas vulnerabilidades de seguridad en sus versiones.


PW.1

Diseñar Software para Cumplir Requisitos de Seguridad y Mitigar Riesgos de Seguridad: Identificar y evaluar los requisitos de seguridad del software; determinar qué riesgos de seguridad es probable que enfrente el software durante su operación y cómo el diseño y la arquitectura del software deberían mitigar esos riesgos; y justificar cualquier caso en el que el análisis basado en riesgos indique que los requisitos de seguridad deberían relajarse o omitirse. Abordar los requisitos y riesgos de seguridad durante el diseño del software (seguro por diseño) es clave para mejorar la seguridad del software y también contribuye a aumentar la eficiencia del desarrollo.


Para cumplir con SSDF PW.1 en un contexto de construcción y despliegue usando herramientas de código abierto, el enfoque se centra en:

  • Incrustar controles de seguridad directamente en el proceso de construcción

  • Validar que los resultados de la construcción (binarios, contenedores, paquetes) estén reforzados y libres de debilidades conocidas a nivel de diseño

  • Preservar la trazabilidad desde los requisitos de diseño hasta los artefactos desplegados

Tareas Herramientas
PW.1.1:

Usar formas de modelado de riesgos, como modelado de amenazas, modelado de ataques o mapeo de superficie de ataque para ayudar a evaluar el riesgo de seguridad del software.

PW.1.2:

Rastrear y mantener los requisitos de seguridad, riesgos y decisiones de diseño del software.

PW.1.3:

Cuando sea apropiado, integrar soporte para el uso de funciones y servicios de seguridad estandarizados (por ejemplo, permitir que el software se integre con sistemas existentes de gestión de registros, gestión de identidades, control de acceso y gestión de vulnerabilidades) en lugar de crear implementaciones propietarias de funciones y servicios de seguridad.

Semgrep

Evita que código inseguro sea empaquetado y desplegado.

Trivy

Asegura que los artefactos desplegados cumplan con configuraciones base seguras.

Zap (Zed Attack Proxy)

Aplica listas de componentes aprobados y configuraciones base de seguridad antes del despliegue.

Syft

Genera SBOMs para aplicaciones desplegadas para monitoreo continuo.

OWASP Dependency-Track

Aplica listas de componentes aprobados y configuraciones base de seguridad antes del despliegue.

Grype

Escaneo de vulnerabilidades enfocado en artefactos desplegados.

Nix

Garantiza que los artefactos de construcción coincidan exactamente con el diseño aprobado de seguridad, sin desviaciones ni diferencias ambientales.

GNU Guix

Asegura que todos los artefactos desplegados se construyan desde un entorno trazable y verificable que cumpla con las bases de seguridad del diseño.

Bazel

Aplica reglas de construcción seguras, evita cambios no autorizados y produce resultados idénticos en todos los agentes de construcción.

Reproducible Builds Framework

Fortalece la seguridad de la cadena de suministro al detectar modificaciones no autorizadas entre el código fuente y el despliegue.

Apko (Chainguard)

Implementa principios de diseño seguro como superficie de ataque mínima y selección verificada de dependencias.

Sigstore(Cosign,Fulcio, Rekor)

Asegura que los artefactos provengan de un proceso de construcción confiable y verificado y que no hayan sido alterados.

Notary

Proporciona garantía criptográfica de que los artefactos desplegados son auténticos y no han sido manipulados.

In-Toto

Aplica integridad y responsabilidad en toda la canalización de construcción y despliegue.

The Update Framework (TUF)

Protege la integridad de los canales de despliegue y distribución de actualizaciones.

OpenSSL

Genera y gestiona claves para firmar artefactos de construcción. Implementa TLS/SSL para comunicación segura entre agentes de construcción y repositorios de artefactos.

GnuPG

Firma el código fuente, commits y resultados de construcción y verifica las firmas antes de desplegar artefactos.

Bouncy Castle

Incorpora firma y verificación criptográfica en pipelines de construcción Java/.NET.

Keylime

Valida que los entornos de despliegue cumplan los requisitos de integridad basados en hardware antes del despliegue.

Ethereum Attestation Service (EAS)

Publica atestaciones criptográficas de procedencia de construcción o aprobaciones de despliegue y proporciona un registro de auditoría descentralizado e inalterable de los datos de confianza de los artefactos.

Kyverno

Aplica políticas de diseño de despliegue seguro (por ejemplo, imágenes base aprobadas, configuraciones no permitidas).

OPA

Aplica los requisitos de diseño de seguridad en tiempo de construcción (por ejemplo, aprobación de dependencias, umbrales de CVE). Aplica políticas consistentes desde la construcción hasta el tiempo de ejecución.

SPIFFE/SPIRE

Asegura que las cargas de trabajo desplegadas cumplan con los requisitos de seguridad para autenticación mutua y confianza cero, y vincula la identidad de la carga de trabajo con la procedencia en tiempo de construcción para garantizar la integridad del despliegue.

Hermeto

Pre-descarga dependencias para construcciones herméticas, genera SBOMs y asegura construcciones reproducibles con seguimiento explícito de dependencias y checksums verificables.

OWASP Threat Dragon

Incorpora modelos de amenazas en CI/CD, asegurando que los requisitos de seguridad estén vinculados a los componentes arquitectónicos antes de la construcción. (Cumple PW.1.1 y PW.1.2)

OWASP Amass

Ayuda a refinar los requisitos de seguridad relacionados con la exposición de la red y el inventario de activos. (Cumple PW.1.1)

CAIRIS

Integra los requisitos de seguridad en los modelos del sistema, que luego pueden ser validados en la construcción y despliegue. (Cumple PW.1.1)

Threagile

Incorpora modelos de amenazas en CI/CD, asegurando que los requisitos de seguridad estén vinculados a los componentes arquitectónicos antes de la construcción. (Cumple PW.1.1)

Open-Needs

Herramienta de gestión de requisitos para definir, rastrear y validar requisitos de seguridad. Documenta los requisitos de seguridad y los vincula a commits y resultados de construcción. (Cumple PW.1.1 y PW.1.2)

rmtoo

Herramienta de gestión de requisitos usando texto plano y control de versiones para trazabilidad. Soporta trazabilidad desde el diseño hasta la construcción, asegurando que los requisitos se reflejen en los artefactos finales. (Cumple PW.1.2)

OpenRMF® OSS

Herramienta de marco de trabajo de cumplimiento y gestión de riesgos de código abierto para rastrear controles RMF (NIST 800-37). Los requisitos de seguridad se mapean a controles de cumplimiento formales que pueden verificarse en artefactos de construcción y despliegue. (Cumple PW.1.2)

PW.2

Revisar el Diseño del Software para Verificar Cumplimiento con los Requisitos de Seguridad y la Información de Riesgos: Ayuda a garantizar que el software cumpla con los requisitos de seguridad y aborde satisfactoriamente la información de riesgos identificada.


Para satisfacer SSDF PW.2 en un contexto de construcción y despliegue usando herramientas de código abierto, se enfoca en:

  • Validar las decisiones de arquitectura de seguridad antes del despliegue

  • Revisar las configuraciones de IaC y CI/CD para asegurar que cumplan con las bases de seguridad

  • Aplicar automáticamente reglas de diseño en los pipelines de construcción

  • Detectar configuraciones incorrectas y brechas de seguridad antes del lanzamiento

Tareas Herramientas
PW.2.1:

Contar con (1) una persona calificada (o personas) que no haya participado en el diseño y/o (2) procesos automatizados en la cadena de herramientas que revisen el diseño del software para confirmar y asegurar que cumple con todos los requisitos de seguridad y aborda satisfactoriamente la información de riesgos identificada.

OPA

Control automatizado de cumplimiento de diseño en CI/CD

Kyverno

Valida que las configuraciones de despliegue coincidan con la arquitectura de seguridad aprobada.

Checkov

Aplica reglas de segmentación de red, requisitos de cifrado y configuraciones seguras por defecto.

KICS (Keeping Infrastructure as Code Secure)

Agrega automatización de revisión de IaC al proceso de construcción.

Semgrep

Revisión automatizada de código para asegurar alineación con los requisitos de diseño de seguridad.

Trivy (Escaneo de Configuración)

Verificación de cumplimiento de configuraciones antes del despliegue.

ThreatSpec

Garantiza que los requisitos de diseño impulsados por el modelo de amenazas estén implementados.

Cartography

Verificación de arquitectura post-construcción/pre-despliegue. Detecta desviaciones respecto a la arquitectura prevista.

kube-score

Revisa los manifiestos de Kubernetes para cumplimiento de diseño antes del despliegue. Asegura que la configuración de seguridad de los pods coincida con los diseños aprobados.

Dependabot

PRs automatizados de actualización de dependencias con alertas de vulnerabilidades. Ayuda a verificar que las dependencias cumplan los requisitos de seguridad (p. ej., sin CVEs conocidos, versiones mínimas).

OpenRMF

Herramienta de seguimiento del Marco de Gestión de Riesgos. Puede mapear los requisitos de seguridad a nivel de diseño a controles NIST 800-53 y verificar que dichos controles estén implementados en las configuraciones de construcción.

ESLint

Se ejecuta en pipelines CI/CD o como pre-commit hook para bloquear merges si el código viola las reglas de seguridad o arquitectura aprobadas antes de la construcción.

Grype

Escáner de vulnerabilidades basado en SBOM para imágenes/sistemas de archivos. Verifica que las dependencias en la construcción cumplan con las bases de seguridad y estén libres de componentes no permitidos.

Clair

Análisis estático de vulnerabilidades para imágenes de contenedor. Confirma que las imágenes finales cumplan con los requisitos de seguridad de diseño antes del despliegue.

Terrascan

Escaneo de IaC y aplicación de políticas (basado en OPA). Aplica el diseño de seguridad aprobado en configuraciones de Terraform, Kubernetes, Docker y AWS CloudFormation antes del despliegue.

Gerrit

Herramienta de flujo de trabajo para revisión y aprobación de código. Garantiza revisión humana contra los requisitos de diseño y seguridad antes de fusionar a las ramas de lanzamiento.


PW.4

Reutilizar software existente, bien asegurado, cuando sea factible en lugar de duplicar funcionalidades: Reduce los costos de desarrollo de software, acelera el desarrollo y disminuye la probabilidad de introducir vulnerabilidades de seguridad adicionales al reutilizar módulos y servicios de software que ya han sido verificados en cuanto a su postura de seguridad. Esto es particularmente importante para software que implementa funcionalidades de seguridad, como módulos y protocolos criptográficos.


Nota: PW.3 se movió a PW.4


Para cumplir con SSDF PW.4 en un contexto de build y deploy usando herramientas de código abierto, el enfoque se desplaza a:

  • Incorporar valores predeterminados seguros en el código de la aplicación, contenedores y manifiestos de despliegue

  • Eliminar funciones inseguras, obsoletas o innecesarias de los artefactos de build

  • Aplicar automáticamente configuraciones de seguridad base durante el despliegue

  • Hacer cumplir estándares de hardening antes del lanzamiento

Tareas Herramientas
PW.4.1:

Adquirir y mantener componentes de software bien asegurados (por ejemplo, bibliotecas de software, módulos, middleware, frameworks) de desarrolladores comerciales, de código abierto y otros terceros para su uso en el software de la organización.

PW.4.2:

Crear y mantener componentes de software bien asegurados internamente siguiendo procesos SDLC para satisfacer necesidades internas de desarrollo de software que no pueden ser mejor atendidas por componentes de software de terceros.

PW.4.3:

Movido a PW.1.3

PW.4.4:

Verificar que los componentes de software comerciales, de código abierto y de terceros cumplan con los requisitos definidos por la organización durante todo su ciclo de vida.

Kyverno

Garantiza que los manifiestos cumplan con los valores predeterminados seguros antes del despliegue.

OPA

Valida que las configuraciones predeterminadas cumplan con los requisitos de seguridad.

Checkovn

Detecta y bloquea valores predeterminados inseguros en Terraform, Helm o CloudFormation antes del lanzamiento.

KICS (Keeping Infrastructure as Code Secure)

Valida los valores predeterminados fortalecidos en la provisión de infraestructura en la nube.

Trivy

Verificación automatizada de cumplimiento de configuraciones durante CI/CD.

CIS-CAT Lite

Automatiza pruebas de cumplimiento para valores predeterminados seguros.

DevSec Hardening Framework

Incorpora valores predeterminados fortalecidos en imágenes de contenedor o VM antes del lanzamiento.

kube-score

Validación previa al despliegue de valores predeterminados seguros en manifiestos.

OpenSCAP

Garantiza que las imágenes del sistema operativo desplegadas cumplan con los valores predeterminados fortalecidos.

CycloneDX

Formato SBOM para documentar componentes/configuraciones exactas en el build final; ayuda a verificar que los valores predeterminados seguros estén presentes.

SPDX

Estándar SBOM para registrar todos los componentes, licencias y procedencia; puede confirmar la inclusión de dependencias fortalecidas.

ArtifactHub

Catálogo de Helm charts, operadores OLM, etc., verificados; puede hacer cumplir el uso de paquetes seguros por defecto.

JFrog Artifactory OSS

Gestor de repositorios para almacenar artefactos firmados y verificados con controles de acceso.

Sonartype Nexus OSS

Hospeda artefactos y hace cumplir comprobaciones de políticas antes de su promoción.

Harbor

Registro OCI con escaneo de vulnerabilidades, firma de contenido y aplicación de políticas para imágenes.

GitLab Signing

Firma de commits/tags en GitLab CE para verificar procedencia.

GitHub CodeQL

Detecta patrones de código que violan los requisitos de seguridad.

AquaSec Trivy

Escanea imágenes de contenedores, IaC y configuraciones para valores predeterminados inseguros.

Allstar

App de GitHub que aplica políticas de seguridad en repositorios.

OWASP SAMM

Modelo de madurez de seguridad para guiar prácticas de valores predeterminados seguros.

OWASP ASVS

Requisitos de seguridad de aplicaciones para verificar valores predeterminados seguros.

OWASP Defectdojo

Rastreo central de vulnerabilidades; garantiza que los problemas encontrados en builds se solucionen antes del lanzamiento.

OWASP Dependency-Check

Detecta dependencias conocidas vulnerables en los builds.

Gitea

Servicio Git autohospedado con soporte de firma y políticas.

GitLab (Community Edition)

Plataforma Git con firma, escaneo e integración de políticas CI/CD.

Pytest

Pruebas automatizadas para confirmar que los valores predeterminados funcionen.

Selenium

Automatización de pruebas funcionales/UI para verificar configuraciones seguras.

Playwright

Automatización de pruebas funcionales/UI para verificar configuraciones seguras.

OWASP ZAP

Escáner DAST para verificar que los valores predeterminados de la aplicación no sean explotables.

TestNG

Framework de pruebas Java para comprobaciones de seguridad/funcionales.

Cucumber

Framework BDD para verificar requisitos funcionales y de seguridad.

Clair

Escáner de vulnerabilidades de imágenes para registros OCI.

Grype

Escáner de vulnerabilidades basado en SBOM para builds e imágenes.

Bandit para Python

Detecta patrones de código y valores predeterminados inseguros en Python.

Semgrep

Encuentra patrones que violan políticas en el código.

Brakeman

Detecta problemas de seguridad y valores predeterminados específicos de Rails.

Gitleaks

Detecta secretos en el código (previene exposición de credenciales predeterminadas).

TruffleHog

Encuentra secretos en repositorios/historial para evitar valores predeterminados inseguros.

OWASP Dependency-Check

Detecta dependencias conocidas vulnerables en los builds.

OSS Review Toolkit (ORT)

Automatiza verificaciones de licencias/seguridad; bloquea componentes no conformes.

FOSSA (Community Edition)

Escaneo de licencias/dependencias; garantiza cumplimiento con políticas predeterminadas.

ScanCode Toolkit

Detecta licencias, derechos de autor y metadatos de seguridad en los artefactos.

Tern

Inspección de imágenes de contenedor para detalles de dependencias/componentes.

Open Policy Agent (OPA)

Política como código para build & deploy; bloquea valores predeterminados inseguros en configuraciones/manifiestos.

rebuilderd

rebuilderd verifica de manera independiente que los paquetes binarios puedan reproducirse desde la fuente, lo que es un mecanismo sólido para la integridad/validación de componentes de terceros y para preservar/verificar evidencia de integridad de lanzamientos.

PW.5

Crear Código Fuente Siguiendo Prácticas de Codificación Segura: Disminuir el número de vulnerabilidades de seguridad en el software y reducir costos minimizando las vulnerabilidades introducidas durante la creación del código fuente que cumplan o superen los criterios de severidad de vulnerabilidades definidos por la organización.


Para cumplir con SSDF PW.5 en un contexto de construcción y despliegue utilizando herramientas de código abierto, el enfoque se desplaza a:

  • Los artefactos de software se almacenan en repositorios seguros y controlados.

  • Solo se almacenan y despliegan compilaciones aprobadas y verificadas.

  • El acceso a los repositorios está restringido y es auditable.

  • Se aplican verificaciones de procedencia e integridad antes de que los artefactos sean aceptados o desplegados.

Tareas Herramientas
PW.5.1:

Sigue todas las prácticas de codificación segura que sean apropiadas para los lenguajes de desarrollo y el entorno para cumplir con los requisitos de la organización.

Artifactory Community Edition

Funciona como el repositorio central de artefactos confiable.

Nexus Repository OSS

Funciona como el repositorio central de artefactos confiable.

Harbor

Funciona como el repositorio central de artefactos confiable.

Sigstore(Cosign,Fulcio, Rekor)

Garantiza que el contenido del repositorio sea auténtico y no haya sido alterado.

Clair

Asegura que los artefactos almacenados cumplan los requisitos de vulnerabilidad antes del despliegue.

In-Toto

Aplica verificaciones de procedencia al ingresar artefactos al repositorio.

The Update Framework (TUF)

Protege contra la manipulación del repositorio y de las actualizaciones.

Notary (v2)

Controla la entrada en la cadena de suministro y el almacenamiento interno de artefactos.

Tekton Chains

Relaciona los artefactos del repositorio con pipelines de compilación seguros.

Semgrep

Se ejecuta como parte de la pipeline CI para escanear automáticamente el código en busca de fallas de seguridad, violaciones de políticas y patrones inseguros antes de construir los artefactos. Soporta reglas como código para aplicar políticas de compilación segura.

Bandit para Python

Analizador estático enfocado en Python que revisa funciones inseguras, criptografía débil y problemas de seguridad comunes antes del empaquetado o despliegue.

FindBugs

Análisis estático legado de Java; puede usarse para señalar patrones de código inseguros conocidos antes de la compilación. Ha sido reemplazado por SpotBugs.

SpotBugs

Reemplazo moderno de FindBugs. Escáner de bytecode de Java para aplicar prácticas de código seguro antes de compilar los artefactos finales.

SonarQube

Plataforma SAST completa; puede integrarse en CI/CD para aplicar gates de calidad, deteniendo compilaciones que incumplan reglas de seguridad.

OWASP ZAP

Se ejecuta contra aplicaciones construidas/etapas en entornos previos al despliegue para detectar vulnerabilidades explotables, asegurando que no se promueva ninguna versión insegura.

Arachni

Escáner de vulnerabilidades de aplicaciones web que puede formar parte de la etapa de QA de la compilación para asegurar que el lanzamiento sea seguro.

OWASP Dependency-Check

Escanea dependencias conocidas como vulnerables en la compilación, bloqueando versiones inseguras para su despliegue.

PW.6

Configurar los Procesos de Compilación, Intérprete y Construcción para Mejorar la Seguridad de los Ejecutables: Disminuir la cantidad de vulnerabilidades de seguridad en el software y reducir costos al eliminar vulnerabilidades antes de que ocurran las pruebas.


Para cumplir con SSDF PW.6 en un contexto de compilación y despliegue usando herramientas de código abierto, el enfoque se centra en hacer que las pruebas de seguridad sean continuas y automáticas, de modo que cada build y cada candidato a despliegue se evalúe frente a un estándar de seguridad, con evidencia capturada para auditoría y puertas de liberación:

Tareas Herramientas
PW.6.1:

Usar compiladores, intérpretes y herramientas de construcción que ofrezcan funciones para mejorar la seguridad de los ejecutables.

PW.6.2:

Determinar qué funciones de compilador, intérprete y herramientas de construcción deben usarse y cómo deben configurarse, luego implementar y usar las configuraciones aprobadas.

Semgrep

SAST rápido basado en reglas con integración CI.

SonarQube Community

Calidad general de código + reglas básicas de seguridad.

Bandit

Linters SAST para Python.

Gosec

Linters SAST para Go.

Brakeman

Linters SAST para Rails.

FindSecBugs

Linters SAST para Java.

Trivy

Escaneo de vulnerabilidades en imágenes/sistemas de archivos contra SBOMs.

Grype

Escaneo de vulnerabilidades en imágenes/sistemas de archivos contra SBOMs.

Syft

Genera SBOMs (SPDX/CycloneDX) durante la construcción.

OWASP Dependency Track

Monitoreo continuo de SBOM y alertas post-build.

Gitleaks

Bloquea commits/builds que contengan secretos; ejecutarse en CI y como pre-commit hooks.

Reproducible Builds

Proporciona métodos, guías y herramientas de apoyo para builds deterministas, asegurando integridad y verificabilidad de los outputs de fuente a binario.

Bazel

Sistema de construcción con ejecución hermética (sandbox) y seguimiento explícito de dependencias, previniendo dependencias ocultas o no verificadas.

Meson

Sistema de construcción de alta velocidad y determinista que soporta reproducibilidad y configuración estricta como código.

Apache Maven

Aplica resolución controlada de dependencias y soporta builds reproducibles para proyectos Java y basados en JVM.

Yocto Project

Crea entornos de build reproducibles y controlados para imágenes Linux embebidas, previniendo desviaciones ambientales.

AOSP Build System

Usa toolchains preconstruidos y entornos sandbox para builds Android seguros y reproducibles.

Hermeto

Herramienta CLI para pre-descarga de dependencias, soporta builds herméticos, genera SBOMs y asegura builds de contenedores aislados de red con gestión reproducible de dependencias.

Hoppr

Kit de utilidades SBOM / cadena de suministro—procesamiento de SBOM y movimiento de “materiales” de la cadena de suministro alineado a la recolección/mantenimiento/compartición de la procedencia.

PW.7

Revisar y/o Analizar Código Legible por Humanos para Identificar Vulnerabilidades y Verificar Cumplimiento con los Requisitos de Seguridad: Ayuda a identificar vulnerabilidades para que puedan corregirse antes de que el software sea liberado y evitar su explotación. Usar métodos automatizados reduce el esfuerzo y los recursos necesarios para detectar vulnerabilidades. El código legible por humanos incluye código fuente, scripts y cualquier otra forma de código que la organización considere legible por humanos.


Para cumplir con SSDF PW.7 en un contexto de build y deploy usando herramientas de código abierto, el enfoque se centra en:

  • Ejecutar escaneos automatizados de código en CI

  • Asegurar que los requisitos de revisión manual o por pares se cumplan antes de fusionar a las ramas de release

  • Verificar que el código cumpla con las políticas de seguridad definidas anteriormente en PW.1 y validadas en PW.2, capturando evidencia de auditoría de que la revisión se completó antes de promover los artefactos de build

Tareas Herramientas
PW.7.1:

Determinar si se debe utilizar revisión de código (una persona revisa directamente el código para encontrar problemas) y/o análisis de código (se utilizan herramientas para encontrar problemas en el código, ya sea de manera completamente automatizada o en conjunto con una persona), según lo definido por la organización.

PW.7.2:

Realizar la revisión y/o análisis de código basándose en los estándares de codificación segura de la organización, y registrar y clasificar todos los problemas detectados y las recomendaciones de corrección en el flujo de trabajo del equipo de desarrollo o en el sistema de seguimiento de incidencias.

Semgrep

Se ejecuta automáticamente en CI antes de construir el artefacto de despliegue.

SonarQube Community Edition

Se integra con CI/CD para garantizar código limpio antes del release.

CodeQL

Detecta inyecciones SQL, XSS o patrones de deserialización insegura en la base de código.

GitLeaks

Protege contra la filtración de secretos en los artefactos desplegados.

GitHub y GitLab

Requiere dos revisores para cualquier cambio en módulos críticos de seguridad.

DefectDojo

Proporciona un registro verificable de auditoría para la finalización de la revisión de seguridad.

Sigstore Cosign

Proporciona un registro verificable de auditoría para la finalización de la revisión de seguridad.

OWASP Dependency-Check

Escanea continuamente las dependencias en cada build para nuevos CVEs. Puede ejecutarse en cada commit o de forma nocturna en CI/CD.

OWASP ZAP

Puede automatizarse en CI/CD para re-probar entornos de staging en busca de vulnerabilidades a medida que se despliega nuevo código.

Retire.js

Enfocado en bibliotecas JavaScript; detecta vulnerabilidades recién divulgadas en paquetes frontend/back-end durante los builds.

Fossa

Escanea dependencias en busca de vulnerabilidades y problemas de licencias, integrándose con los builds para capturar nuevos hallazgos.

Bandit para Python

Se ejecuta en CI/CD para proyectos Python para detectar problemas de seguridad recién introducidos.

Checkmarx KICS

Detección de vulnerabilidades conocidas – Compara componentes y configuraciones de IaC contra buenas prácticas de seguridad y marcos de cumplimiento conocidos (CIS Benchmarks, NIST, PCI-DSS).

Cppcheck para C++

Re-escanea código C/C++ después de cada build para asegurar que no se introdujeron nuevos problemas.

FindSecBugs

Extensión de SpotBugs que detecta fallas de seguridad en bytecode Java continuamente durante el ciclo de build.

GitHub CodeQL

Realiza consultas de seguridad continuas en el código con cada pull request o escaneo programado.

PMD

Ejecuta revisiones de calidad de código y reglas de seguridad en cada commit/build.

SpotBugs

Análisis estático de Java integrado en la pipeline de build para detección continua de vulnerabilidades.

Danger JS

Automatiza reglas de revisión de PR relacionadas con seguridad, evitando que código inseguro se fusione.


PW.8

Probar Código Ejecutable para Identificar Vulnerabilidades y Verificar el Cumplimiento con los Requisitos de Seguridad: Ayuda a identificar vulnerabilidades para que puedan ser corregidas antes de que el software sea liberado, con el fin de prevenir su explotación. El uso de métodos automatizados reduce el esfuerzo y los recursos necesarios para detectar vulnerabilidades y mejora la trazabilidad y la repetibilidad. El código ejecutable incluye binarios, bytecode ejecutado directamente, código fuente y cualquier otra forma de código que la organización considere ejecutable.


Para cumplir con SSDF PW.8 en un contexto post-despliegue usando herramientas de código abierto, el enfoque se centra en:

  • Ejecutar pruebas de seguridad contra el artefacto final en entornos de staging o pre-despliegue

  • Validar la configuración en tiempo de ejecución, dependencias y permisos del artefacto

  • Asegurar el cumplimiento con las bases de seguridad a nivel ejecutable

  • Capturar evidencia de los resultados de las pruebas de los artefactos para los gates de cumplimiento

Tareas Herramientas
PW.8.1:

Determinar si se debe realizar pruebas de código ejecutable para encontrar vulnerabilidades no identificadas por revisiones, análisis o pruebas previas y, de ser así, qué tipos de pruebas deben utilizarse.

PW.8.2:

Definir el alcance de las pruebas, diseñarlas, ejecutarlas y documentar los resultados, incluyendo el registro y la clasificación de todos los problemas encontrados y las remediaciones recomendadas en el flujo de trabajo del equipo de desarrollo o en el sistema de seguimiento de incidencias.

Trivy

Ejecutar como un paso de CI después de construir la imagen, antes de subir al registro

Grype

Confirma que el ejecutable final cumple con los umbrales de vulnerabilidad.

Syft

Alimenta SBOM en herramientas SCA como Dependency-Track para monitoreo continuo

OpenSCAP

Asegura que el artefacto final cumpla con los requisitos de configuración segura.

CIS-CAT Lite

Paso de aplicación de línea base antes de la promoción a producción.

Zap (Zed Attack Proxy)

Pruebas de seguridad en tiempo de ejecución antes del lanzamiento.

In-toto + Sigstore Cosign Attestations

Proporciona evidencia verificable para cumplimiento y auditorías.

PW.9

Configurar el Software para Tener Configuraciones Seguras por Defecto: Ayuda a mejorar la seguridad del software en el momento de la instalación para reducir la probabilidad de que se despliegue con configuraciones de seguridad débiles, exponiéndolo a un mayor riesgo de compromiso.


Para cumplir con SSDF PW.9 en un contexto de compilación y despliegue usando herramientas de código abierto, el enfoque se centra en:

  • Incrustar configuraciones seguras en imágenes de contenedor, binarios e IaC

  • Eliminar funciones inseguras o no utilizadas antes de empaquetar

  • Aplicar líneas base de seguridad (CIS, STIG, NIST) en el proceso de compilación

  • Validar esos valores por defecto como parte de CI/CD

  • Evitar que valores por defecto inseguros lleguen a los candidatos de lanzamiento

Tareas Herramientas
PW.9.1:

Definir una línea base segura determinando cómo configurar cada ajuste que tenga un efecto sobre la seguridad o un ajuste relacionado con seguridad, de manera que los valores predeterminados sean seguros y no debiliten las funciones de seguridad proporcionadas por la plataforma, infraestructura de red o servicios.

PW.9.2:

Implementar los valores predeterminados (o grupos de valores predeterminados, si aplica), y documentar cada ajuste para los administradores de software.

DevSec Hardening Framework

Automatiza el endurecimiento de la línea base durante la creación de imágenes.

Chainguard Apko

Produce imágenes de contenedor seguras por defecto.

Trivy

Punto de control en CI para bloquear valores predeterminados inseguros antes de ser compilados/desplegados.

Checkov

Evita que los valores predeterminados inseguros de IaC lleguen al despliegue.

KICS

Evita que los valores predeterminados inseguros de IaC lleguen al despliegue.

OpenSCAP

Genera evidencia de cumplimiento antes de la promoción de artefactos.

Sigstore Cosign + In-Toto

Asegura que solo se puedan desplegar artefactos endurecidos y verificados.

CIS-CAT Lite

Verifica que los valores predeterminados endurecidos cumplan con los requisitos de CIS antes del lanzamiento.

Kyverno

Aplicación de políticas para manifiestos y configuraciones durante la compilación.

OPA Conftest

Codifica valores predeterminados seguros como políticas aplicables en CI/CD.

4 - 2.4 Responder a Vulnerabilidades (RV)

2.4 Responder a Vulnerabilidades (RV) en los pasos de Build y Deploy CI/CD

2.4 Responder a Vulnerabilidades (RV) para Tareas de Build y Deploy

Responder a Vulnerabilidades (RV): Las organizaciones deben identificar las vulnerabilidades residuales en sus versiones de software y responder adecuadamente para abordar dichas vulnerabilidades y prevenir que ocurran vulnerabilidades similares en el futuro.


RV.1

Identificar y Confirmar Vulnerabilidades de Forma Continua: Ayuda a garantizar que las vulnerabilidades se identifiquen más rápidamente para que puedan ser remediadas de manera más ágil de acuerdo con el riesgo, reduciendo la ventana de oportunidad para los atacantes.


Para cumplir con SSDF RV.1 en un contexto de compilación y despliegue utilizando herramientas de código abierto, el enfoque se centra en recopilar continuamente información sobre vulnerabilidades (VDP + fuentes públicas), monitorear componentes y confirmar problemas en todas las versiones compatibles.

Tareas Herramientas
RV.1.1:

Recopilar información de adquirentes de software, usuarios y fuentes públicas sobre posibles vulnerabilidades en el software y componentes de terceros que utiliza, e investigar todos los reportes creíbles.

RV.1.2:

Revisar, analizar y/o probar el código del software para identificar o confirmar la presencia de vulnerabilidades previamente no detectadas.

RV.1.3:

Tener una política que aborde la divulgación y remediación de vulnerabilidades, e implementar los roles, responsabilidades y procesos necesarios para respaldar esa política.

OSV-Scanner

Escanea continuamente manifiestos/locks contra OSV; excelente para confirmar nuevas divulgaciones en todas las versiones soportadas.

Ortelius

Sincroniza continuamente las versiones del Software Bill of Material de los artefactos construidos con OSV.dev, reportando vulnerabilidades descubiertas después de la compilación.

Base de Datos de Vulnerabilidades OSV

Consulta la base de datos de vulnerabilidades OSV.dev para CVEs de paquetes de código abierto.

Grype

Escanea imágenes de contenedores y SBOMs en busca de vulnerabilidades conocidas.

Vulners CLI/API

Agrega múltiples fuentes públicas de vulnerabilidades.

cve-bin-tool

Verifica binarios instalados en busca de CVEs conocidos.

Semgrep

SAST para múltiples lenguajes; reglas personalizables. Ejecutar al hacer merge en la rama principal.

Bandit

Lint de seguridad para Python. Agregar a la etapa de construcción de proyectos Python.

SonarQube Community Edition

SAST y controles de calidad. Ejecutar en el paso de construcción; bloquear despliegue si se encuentran problemas de alta severidad.

OWASP ZAP

DAST; escaneo pasivo rápido en la aplicación de staging desplegada.

Política de Seguridad GitHub

Ubicación pública para reporteros.

Plantillas Disclose.io

Programa de Divulgación de Vulnerabilidades.

Guía de Divulgación de Vulnerabilidades OpenSSF

Manual para implementar la divulgación.

RV.2

Evaluar, Priorizar y Remediar Vulnerabilidades: Ayuda a garantizar que las vulnerabilidades se remedien de acuerdo con el riesgo, reduciendo la ventana de oportunidad para los atacantes.


Para cumplir con SSDF RV.2 en un contexto de compilación y despliegue usando herramientas de código abierto, el enfoque se centra en:

  • Registrar cada vulnerabilidad

  • Analizar el riesgo (explotabilidad e impacto)

  • Elegir respuestas, publicar avisos y entregar remediaciones mediante mecanismos confiables; incluir mitigaciones temporales cuando sea necesario.

Tareas Herramientas
RV.2.1:

Analizar cada vulnerabilidad para recopilar información suficiente sobre el riesgo y planificar su remediación u otra respuesta al riesgo.

RV.2.2:

Planificar e implementar respuestas al riesgo para las vulnerabilidades.

GUAC

Agrega SBOMs, certificaciones y vulnerabilidades para entender el alcance y priorizar correcciones.

Renovate

Automatiza actualizaciones de dependencias/PRs de parches con políticas conscientes del riesgo.

Ortelius

Muestra el alcance de cada vulnerabilidad en los entornos en vivo.

DefectDojo

Centraliza vulnerabilidades de herramientas SAST/DAST/SCA; agrega puntuación de riesgo.

OWASP Dependency-Track

Seguimiento de vulnerabilidades basado en SBOM, incluye puntuación CVSS y metadatos.

EPSS (Exploit Prediction Scoring System)

Evalúa la probabilidad de explotación para CVEs (priorización basada en riesgo).

Vulners API

Proporciona enlaces de explotación, PoCs y contexto adicional por CVE.

Calculadora CVSS (FIRST)

Puntuación de impacto estandarizada para respaldar decisiones de triaje.

Sigstore / Cosign

Firma builds remediadas antes de desplegar (mecanismo de entrega confiable).

OWASP ModSecurity CRS

Reglas WAF temporales para mitigar vulnerabilidades web sin parchear.

Falco

Detección y mitigación en tiempo de ejecución para problemas de contenedores/Kubernetes sin parchear.


RV.3

Analizar Vulnerabilidades para Identificar sus Causas Raíz: Ayuda a reducir la frecuencia de vulnerabilidades en el futuro.


Para cumplir con SSDF RV.3 en un contexto de construcción y despliegue usando herramientas de código abierto, el enfoque se centra en:

  • Capturar causas raíz y lecciones aprendidas

  • Detectar patrones recurrentes a lo largo del tiempo

Tareas Herramientas
RV.3.1:

Analizar las vulnerabilidades identificadas para determinar sus causas raíz.

RV.3.2:

Analizar las causas raíz a lo largo del tiempo para identificar patrones, como la falta de seguimiento consistente de una práctica de codificación segura específica.

RV.3.3:

Revisar el software para detectar vulnerabilidades similares, eliminar una clase de vulnerabilidades y corregirlas proactivamente en lugar de esperar informes externos.

RV.3.4:

Revisar el proceso SDLC y actualizarlo si es apropiado para prevenir (o reducir la probabilidad de) que la causa raíz se repita en actualizaciones del software o en nuevo software creado.

Semgreps

Escribir reglas específicas de la organización para detectar patrones de causa raíz; escanear repositorios para eliminar clases de errores.

CodeQL

Consultas profundas de código para identificar los constructos de codificación precisos que conducen a vulnerabilidades.

SonarQube CE

Proporciona trazas de problemas, violaciones de reglas y puntos críticos, incluidos indicadores de causa raíz.

DefectDojo

Realiza seguimiento de vulnerabilidades y metadatos, permite adjuntar notas de causa raíz por cada problema.

Dependency-Track

Seguimiento a largo plazo de componentes vulnerables para identificar problemas recurrentes de dependencias.

Grafeas

API de metadatos para seguimiento de eventos de seguridad a través de builds/lanzamientos.

cwe-checker

Detecta patrones de debilidad (CWEs) en binarios, útil para artefactos compilados.

Joern

Plataforma de análisis de código de código abierto para buscar patrones de errores a gran escala.

OpenSAMM (Modelo de Madurez de Aseguramiento de Software OWASP)

Marco para mejorar las prácticas de ciclo de vida de desarrollo seguro.

OpenSSF Scorecards

Automatiza revisiones de seguridad de repositorios (protección de ramas, fijación de dependencias, endurecimiento de CI).

OSCAL (NIST)

Estándar para documentar cumplimiento y mejoras de seguridad en el SDLC.

Allstar (por OpenSSF)

Aplica políticas de seguridad en organizaciones/repositorios de GitHub.