3.3 Producir Software Bien Asegurado (PW)
3.3 Producir Software Bien Asegurado (PW) para tareas posteriores al despliegue
Las organizaciones deben producir software bien asegurado con vulnerabilidades de seguridad mínimas en sus versiones.
PW.1
Diseñar el software para cumplir con los requisitos de seguridad y mitigar los 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 deben mitigar esos riesgos; y justificar cualquier caso en el que el análisis basado en riesgos indique que los requisitos de seguridad deben relajarse o eximirse. 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 ayuda a mejorar la eficiencia del desarrollo.
Para cumplir con SSDF PW.1 en un contexto posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Mantener un registro a prueba de manipulaciones de cada componente de software en cada versión
-
Garantizar que los datos de procedencia permanezcan accesibles para auditorías, investigaciones y respuesta a vulnerabilidades
-
Permitir que adquirentes y usuarios posteriores verifiquen de manera independiente el origen y la integridad de cada componente
| 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, incorporar soporte para usar funciones y servicios de seguridad estandarizados (por ejemplo, permitir que el software se integre con sistemas existentes de gestión de logs, gestión de identidad, control de acceso y gestión de vulnerabilidades) en lugar de crear implementaciones propietarias de funciones y servicios de seguridad. |
|
|
Semgrep
Análisis estático y dinámico que puede ejecutarse contra bases de código desplegadas en entornos espejo de staging para detectar patrones inseguros. |
|
|
Wapiti
Escáner de seguridad de aplicaciones web para aplicaciones desplegadas. |
|
|
Zap (Zed Attack Proxy)
Pruebas activas y pasivas de aplicaciones en vivo para detectar vulnerabilidades. |
|
|
Inspec
Valida que las aplicaciones desplegadas cumplan con estándares de codificación segura. |
|
|
Ortelius
Sincronización cada 10 minutos con OSV.dev para detectar nuevas vulnerabilidades en artefactos desplegados. |
|
|
OpenSCAP
Escanea sistemas para verificar cumplimiento con líneas base relacionadas con codificación segura. |
|
|
Falco
Registro y monitoreo: detecta comportamiento inseguro en tiempo de ejecución (por ejemplo, llamadas al sistema inseguras). |
|
|
Wazuh
Monitorea logs de la aplicación y del sistema operativo para eventos relacionados con seguridad. |
|
|
AuditD
Captura llamadas de sistema de bajo nivel relacionadas con la ejecución de código. |
|
|
Syft
Genera SBOMs para aplicaciones desplegadas con monitoreo continuo. |
|
|
Hoppr
Hoppr es un kit de utilidades de SBOM / cadena de suministro: el procesamiento y movimiento de “materiales” de la cadena de suministro se alinea con la recolección, mantenimiento y compartición de procedencia. |
|
|
OWASP Dependency-Track
Rastrea continuamente SBOMs para detectar nuevas vulnerabilidades |
|
|
Trivy
Escanea contenedores/sistemas de archivos desplegados para CVEs conocidas en código y dependencias. |
|
|
Grype
Escaneo enfocado de vulnerabilidades para artefactos desplegados. |
PW.2
Revisar el diseño del software para verificar el cumplimiento con los requisitos de seguridad y la información de riesgos: Ayudar a garantizar que el software cumpla con los requisitos de seguridad y aborde satisfactoriamente la información de riesgos identificada.
Para cumplir con SSDF PW.2 en un contexto posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Verificación continua de que el código desplegado (fuente o binario) no ha sido manipulado.
-
Evaluación continua de vulnerabilidades en aplicaciones y componentes desplegados.
-
Disparadores de revisión de código posteriores a la liberación cuando se detecta una vulnerabilidad o incidente.
-
Evidencia auditable de que el software desplegado coincide con el código aprobado y revisado.
| Tareas | Herramientas |
|---|---|
|
PW.2.1:
Tener (1) una persona calificada (o personas) que no hayan estado involucradas con el diseño y/o (2) procesos automatizados instanciados en la cadena de herramientas que revisen el diseño del software para confirmar y hacer cumplir que cumple con todos los requisitos de seguridad y aborda satisfactoriamente la información de riesgos identificada. |
|
|
Sigstore Cosign
Verifica que los contenedores y binarios desplegados hayan sido firmados en tiempo de compilación. |
|
|
Rekor
Almacena datos de verificación y attestations en un log evidente ante manipulaciones. |
|
|
In-Toto
Garantiza que el código desplegado coincida con los pasos revisados del pipeline de build. |
|
|
Tripwire OSS
Monitorea archivos desplegados para detectar cambios no autorizados. |
|
|
Semgrep
Revisa código desplegado en espejo para detectar problemas de seguridad o violaciones de políticas. |
|
|
GitHub CodeQL
Consultas avanzadas de código para detectar patrones de vulnerabilidad. |
|
|
Wapiti
Escaneo de vulnerabilidades web contra endpoints desplegados. |
|
|
Ortelius
Rastrea vulnerabilidades en endpoints en vivo para tiempos de remediación rápidos. |
|
|
Zap (Zed Attack Proxy)
Pruebas DAST automatizadas y manuales para aplicaciones en vivo. |
|
|
Nikto
Escaneo de vulnerabilidades enfocado en servidores. |
|
|
OpenSCAP
Mapea resultados a líneas base de cumplimiento. |
|
|
DefectDojo
Rastrea vulnerabilidades encontradas durante revisiones posteriores al despliegue y las vincula con la remediación. |
PW.4
Reutilizar software existente y bien asegurado cuando sea factible en lugar de duplicar funcionalidad: Reducir los costos del desarrollo de software, acelerar el desarrollo y disminuir la probabilidad de introducir vulnerabilidades de seguridad adicionales en el software reutilizando módulos y servicios de software cuya postura de seguridad ya haya sido verificada. Esto es particularmente importante para software que implementa funcionalidades de seguridad, como módulos y protocolos criptográficos.
Nota: PW.3 fue movido a PW.4
Para cumplir con SSDF PW.4 en un contexto posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
La detección de vulnerabilidades se ejecuta continuamente en entornos de producción o equivalentes a producción.
-
Los resultados se triagean y asignan rápidamente.
-
Existe una ruta automatizada o semiautomatizada hacia la remediación (por ejemplo, parcheo, reconstrucción de imágenes o actualización de componentes).
-
Toda la actividad es auditable y está vinculada a los artefactos de liberación.
| Tareas | Herramientas |
|---|---|
|
PW.4.1:
Adquirir y mantener componentes de software bien asegurados (por ejemplo, bibliotecas, módulos, middleware, frameworks) de proveedores comerciales, de código abierto y otros desarrolladores externos para ser utilizados por el software de la organización.
PW.4.2:
Crear y mantener componentes de software bien asegurados internamente siguiendo procesos SDLC para cubrir necesidades comunes de desarrollo interno que no puedan satisfacerse mejor con componentes 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 todos los demás componentes de terceros adquiridos cumplan con los requisitos definidos por la organización durante todo su ciclo de vida. |
|
|
Git
Almacena reportes de vulnerabilidades firmados y metadatos de commits de parches. |
|
|
Rekor
Registra de forma inmutable resultados de escaneo, remediaciones y firmas. |
|
|
Ortelius
La auditoría y retención de evidencia rastrea qué entornos están ejecutando qué versión, permitiendo el redespliegue dirigido de builds parchados. |
|
|
Trivy
Escanea contenedores en ejecución, sistemas de archivos y clústeres Kubernetes; también genera SBOMs. |
|
|
Grype
Escaneo de vulnerabilidades impulsado por SBOM para imágenes y directorios. |
|
|
Clair
Monitorea registros de contenedores para detectar imágenes vulnerables. |
|
|
OpenVAS / Greenbone
Escaneo de vulnerabilidades de red y hosts. |
|
|
Syft
Genera SBOMs desde entornos desplegados. |
|
|
OWASP Dependency-Track
Monitorea SBOMs para detectar nuevos CVEs y violaciones de políticas. |
|
|
Vulnix
Escaneo de vulnerabilidades basado en Nix a partir de entradas SBOM. |
|
|
Kyverno
Controlador de admisión nativo de Kubernetes que aplica umbrales de vulnerabilidad. |
|
|
Falco
Detecta anomalías en tiempo de ejecución que pueden indicar explotación. |
|
|
Nikto
Escaneo de vulnerabilidades enfocado en servidores. |
|
|
Keel
Automatiza redespliegues de contenedores cuando se publica una nueva imagen. |
|
|
Kured
Reinicios automatizados de nodos Kubernetes para parcheo del kernel. |
|
|
DefectDojo
Centraliza datos de vulnerabilidades provenientes de escáneres; asigna tareas de remediación y rastrea SLAs. |
|
|
The Hive
Respuesta a incidentes y coordinación para eventos urgentes de vulnerabilidades. |
PW.5
Crear código fuente adhiriéndose a prácticas de codificación segura: Disminuir la cantidad 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 vulnerabilidad definidos por la organización.
Para cumplir con SSDF PW.5 en un contexto posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Verificación continua de la integridad, el cumplimiento y la postura de seguridad del software desplegado.
-
Validaciones continuas para asegurar que el software en ejecución siga cumpliendo los requisitos de seguridad que tenía al momento de la liberación.
-
Detección de drift, nuevas vulnerabilidades introducidas y cambios de configuración.
-
Mantenimiento de evidencia verificable de estas validaciones a lo largo del tiempo.
| Tareas | Herramientas |
|---|---|
|
PW.5.1:
Seguir todas las prácticas de codificación segura apropiadas para los lenguajes de desarrollo y el entorno, con el fin de cumplir los requisitos de la organización. |
|
|
Trivy
Escaneos continuos de contenedores desplegados, sistemas de archivos y clústeres Kubernetes. |
|
|
Grype
Detecta CVEs en SBOMs o imágenes desplegadas. |
|
|
Clair
Escaneo continuo de vulnerabilidades para imágenes en registros. |
|
|
Syft
Genera SBOMs desde sistemas en ejecución para monitoreo continuo. |
|
|
Inspec
Define y ejecuta validaciones de cumplimiento (CIS, NIST, políticas específicas de la organización) contra entornos desplegados. |
|
|
OpenSCAP
Evalúa sistemas en ejecución contra líneas base de seguridad. |
|
|
Kube-bench
Valida despliegues de Kubernetes contra benchmarks CIS. |
|
|
Kube-hunter
Identifica posibles rutas de ataque en clústeres Kubernetes desplegados. |
|
|
Falco
Detecta cambios en tiempo de ejecución en archivos, procesos y comportamiento de red. |
|
|
AIDE
Monitoreo de integridad de archivos para asegurar que binarios/configuraciones no sean alterados. |
|
|
osquery
Consulta el estado del sistema para detectar cambios de configuración no autorizados. |
|
|
Open Policy Agent
Aplica políticas continuas de cumplimiento en tiempo de ejecución. |
|
|
Kyverno
Motor de políticas nativo de Kubernetes para prevenir actualizaciones inseguras. |
|
|
DefectDojo
Centraliza resultados de verificación y rastrea problemas a lo largo del tiempo. |
|
|
Rekor
Almacena reportes de verificación firmados en un registro a prueba de manipulaciones. |
PW.6
Configurar los procesos de compilación, intérprete y build para mejorar la seguridad del ejecutable: Disminuir la cantidad de vulnerabilidades de seguridad en el software y reducir costos eliminando vulnerabilidades antes de que ocurran las pruebas.
Para cumplir con SSDF PW.6 en un contexto posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Ejecutar escaneos programados sobre contenedores en ejecución, máquinas virtuales y registros; integrarlos con monitoreo de SBOM
-
Mantener SBOMs para el software desplegado; monitorear nuevos CVEs.
-
Puntuar hallazgos (CVSS, EPSS); priorizar correcciones según severidad y explotabilidad.
-
Reconstruir/redesplegar automáticamente cuando haya imágenes parchadas disponibles.
| Tareas | Herramientas |
|---|---|
|
PW.6.1:
Usar compiladores, intérpretes y herramientas de build que ofrezcan funcionalidades para mejorar la seguridad del ejecutable.
PW.6.2:
Determinar qué funcionalidades de compiladores, intérpretes y herramientas de build deben usarse y cómo debe configurarse cada una, luego implementar y usar las configuraciones aprobadas. |
|
|
Trivy
Trivy ejecuta escaneos semanales sobre todas las imágenes de contenedores y hosts de producción → los resultados son firmados y registrados en Rekor. |
|
|
Syft
Regenera SBOMs para artefactos desplegados y marca nuevos CVEs. |
|
|
DefectDojo
Puntuación CVSS + asignación de SLA a los responsables. |
|
|
Keel
Reconstrucción/redespliegue automático cuando haya imágenes parchadas disponibles. |
|
|
Kured
Reinicios automatizados de nodos Kubernetes para parcheo del kernel. |
|
|
Argo Rollouts
Usa despliegues canary/escalonados para versiones parchadas. |
|
|
OpenVAS
Ejecuta escaneos programados en contenedores en ejecución, máquinas virtuales y registros; se integra con monitoreo de SBOM. |
|
|
Rekor
Almacena registros firmados de detección, triage, corrección y verificación. |
PW.7
Revisar y/o analizar código legible por humanos para identificar vulnerabilidades y verificar el cumplimiento con los requisitos de seguridad: Ayudar a identificar vulnerabilidades para que puedan corregirse antes de que el software sea liberado y así prevenir su explotación. El uso de 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 posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Mantener un registro que demuestre que la versión desplegada pasó por el proceso requerido por la organización de revisión de código y/o análisis automatizado.
-
Garantizar que todos los parches de emergencia/hotfix enviados después del despliegue también sean revisados o analizados, incluso si se hace después de la liberación.
-
Mantener evidencia lista para auditoría.
| Tareas | Herramientas |
|---|---|
|
PW.7.1:
Determinar si debe utilizarse revisión de código (una persona observa directamente el código para encontrar problemas) y/o análisis de código (se usan herramientas para encontrar problemas en el código, ya sea de forma totalmente automatizada o en conjunto con una persona), según lo definido por la organización.
PW.7.2:
Realizar la revisión de código y/o el análisis de código con base en los estándares de codificación segura de la organización, y registrar y triagear todos los problemas descubiertos y las remediaciones recomendadas en el flujo de trabajo del equipo de desarrollo o en el sistema de seguimiento de issues. |
|
|
Semgrep
Ejecuta SAST contra el código exacto vinculado a los binarios desplegados; incluye escaneo de dependencias. |
|
|
GitHub CodeQL
Vuelve a ejecutar el análisis de código en espejos de producción. |
|
|
DefectDojo
Mantiene registros inmutables de todas las revisiones, aprobaciones y ejecuciones de análisis automatizado. |
|
|
Rekor
Commits firmados, historial de ramas protegidas y resultados de escaneo. |
PW.8
Probar código ejecutable para identificar vulnerabilidades y verificar el cumplimiento con los requisitos de seguridad: Ayudar 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 y 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 posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Probar continuamente los ejecutables desplegados para detectar vulnerabilidades
-
Verificar el cumplimiento con los requisitos de seguridad
-
Retroalimentar los hallazgos al desarrollo
| Tareas | Herramientas |
|---|---|
|
PW.8.1:
Determinar si debe realizarse 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 triage de todos los problemas descubiertos y las remediaciones recomendadas en el flujo de trabajo del equipo de desarrollo o en el sistema de seguimiento de issues. |
|
|
Trivy
Escanea contenedores y sistemas de archivos desplegados para detectar CVEs conocidas en código y dependencias. |
|
|
Grype
Escaneo enfocado de vulnerabilidades para artefactos desplegados. |
|
|
Ortelius
Sincronización cada 10 minutos con OSV.dev para detección de nuevas vulnerabilidades en artefactos desplegados. |
|
|
OpenVAS / Greenbone
Escaneo de vulnerabilidades de red y hosts. |
|
|
Inspec
Mapea resultados de escaneo a estándares de seguridad (NIST, CIS, OWASP ASVS). |
|
|
OpenSCAP
Resultados de escaneo de cumplimiento, perfiles base, documentación de excepciones. |
|
|
Wapiti
DAST, fuzzing y monitoreo en tiempo de ejecución para detectar comportamiento inseguro. |
|
|
Zap (Zed Attack Proxy)
Reportes de DAST y fuzzing. |
PW.9
Configurar el software para que tenga configuraciones seguras por defecto: Ayudar a mejorar la seguridad del software en el momento de la instalación para reducir la probabilidad de que el software sea desplegado con configuraciones de seguridad débiles, poniéndolo en mayor riesgo de compromiso.
Para cumplir con SSDF PW.9 en un contexto posterior al despliegue usando herramientas de código abierto, el enfoque cambia a:
-
Verificar el software y la infraestructura desplegados contra la línea base de configuración segura de la organización (por ejemplo, NIST 800-53, CIS Benchmarks, DISA STIGs).
-
Usar policy-as-code y herramientas de gestión de configuración para mantener los sistemas desplegados en cumplimiento.
-
Integrar validaciones de configuración dentro del monitoreo en tiempo de ejecución
| Tareas | Herramientas |
|---|---|
|
PW.9.1:
Definir una línea base segura determinando cómo configurar cada ajuste que tenga efecto en la seguridad o que sea un ajuste relacionado con seguridad, de modo que la configuración por defecto sea segura y no debilite las funciones de seguridad proporcionadas por la plataforma, la infraestructura de red o los servicios.
PW.9.2:
Implementar las configuraciones por defecto (o grupos de configuraciones por defecto, si aplica) y documentar cada configuración para los administradores del software. |
|
|
Ortelius
Monitorea continuamente drift en configuraciones de contenedores. |
|
|
Inspec
Compara sistemas desplegados contra líneas base seguras de configuración (NIST, CIS, STIG). |
|
|
OpenSCAP
Compara sistemas desplegados contra líneas base seguras de configuración (NIST, CIS, STIG). |
|
|
Falco
Monitorea continuamente cambios de configuración; alerta o autorremedia desviaciones. |
|
|
Wazuh
Logs de detección de drift y acciones de remediación. |
|
|
Ansible
Policy-as-code y gestión de configuración para asegurar que todos los despliegues coincidan con la línea base. |
|
|
Saltstack
Playbooks de configuración, logs de enforcement e historial de cambios de políticas. |
|
|
Git
Almacena resultados de escaneo firmados y registros de detección de drift en sistemas evidentes ante manipulaciones. |