2.3 Producir Software Bien Asegurado (PW)
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. |