1.0 Tareas de la Fase 1 del Marco de Desarrollo de Software Seguro

Tareas de la Fase 1 del Marco de Desarrollo de Software Seguro relacionadas con Código y Prebuild

1.0 Cumpliendo las Tareas de Código y Prebuild del Marco de Desarrollo de Software Seguro

Este capítulo se centra específicamente en herramientas y prácticas de DevSecOps relacionadas con las acciones de Código y Prebuild del pipeline 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 en todo el 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 especial en integrar la seguridad en los procesos automatizados.

1.1 Preparar la Organización (PO) Las organizaciones deben asegurar 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 aplican a subconjuntos de su desarrollo de software, como grupos de desarrollo individuales o proyectos.
1.2 Proteger el Software (PS) Las organizaciones deben proteger todos los componentes de su software frente a manipulaciones y accesos no autorizados.
1.3 Producir Software Bien Asegurado (PW) Las organizaciones deben producir software bien asegurado con el mínimo de vulnerabilidades de seguridad en sus versiones.
1.4 Responder a Vulnerabilidades (RV) Las organizaciones deben identificar vulnerabilidades residuales en sus versiones de software y responder de manera adecuada para abordarlas y prevenir que ocurran vulnerabilidades similares en el futuro.

1 - 1.1 Preparar la Organización (PO)

1.1 Tareas de la Fase 1: Preparar la Organización (PO)

1.1 Preparar la Organización (PO) para las Tareas de Código y Preconstrucción

Las organizaciones deben asegurarse de que su personal, procesos y tecnología estén preparados para llevar a cabo un 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.2 Implementar Roles y Responsabilidades

Asegúrate de que todas las personas, tanto dentro como fuera de la organización, involucradas en el SDLC estén preparadas para desempeñar sus roles y responsabilidades relacionados con el SDLC a lo largo de todo el ciclo de vida.


Tareas Herramientas
PO.2.1:

Crear nuevos roles y modificar las 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.

Designar un grupo de individuos como propietarios del código para cada proyecto y revisar la lista anualmente.

GitHub CODEOWNERS

GitHub CODEOWNERS es una función del repositorio que permite a los equipos definir formalmente quién es responsable de qué partes del código y quién debe revisar los cambios antes de que se fusionen.

GitLab CODEOWNERS

GitLab CODEOWNERS es una función del repositorio que permite a los equipos definir formalmente quién es responsable de qué partes del código y quién debe revisar los cambios antes de que se fusionen.


PO.3 Implementar Cadenas de Herramientas de Soporte

Usa la 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, además de proporcionar una forma de documentar y demostrar el uso de estas prácticas. Las cadenas de herramientas y las herramientas pueden usarse en diferentes niveles de la organización, como a nivel organizacional o específico de un proyecto, y pueden abordar una parte particular del SDLC, como un pipeline de construcción.


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.

Usar fábricas de software y/o plantillas de software para estandarizar la cadena de herramientas.

PO.3.2:

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

Usar configuración basada en código para las cadenas de herramientas (por ejemplo, pipelines-as-code, toolchains-as-code).

PO.3.3:

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

Usar herramientas existentes (por ejemplo, seguimiento de workflows, seguimiento de incidencias, mapeo de flujo de valor) para crear un historial de auditoría de las acciones relacionadas con el desarrollo seguro que se realizan con fines de mejora continua. Registrar aprobaciones, rechazos y solicitudes de excepciones de chequeos de seguridad como parte del sistema de workflow y seguimiento.

Backstage Software Templates

Backstage Software Templates es un mecanismo de scaffolding y estandarización que ayuda a los equipos a crear nuevos servicios, pipelines e infraestructura de manera consistente y conforme. Permite a los equipos de plataforma definir rutas óptimas para crear componentes de software. Una plantilla captura buenas prácticas, herramientas requeridas y estándares organizacionales, generando automáticamente repositorios, configuraciones y documentación.

Konflux-ci software factory for Tekton

La fábrica de software Konflux para Tekton es un sistema CI seguro y estandarizado que se apoya en Tekton para convertir pipelines en una fábrica confiable de la cadena de suministro de software. Konflux añade una capa que garantiza cómo deben ejecutarse los pipelines para que sus resultados sean confiables. Implementa el framework in-toto.

CDF CDEvents

CDEvents es una especificación común para eventos de entrega continua, permitiendo interoperabilidad en todo el ecosistema de producción de software.

Jenkins Jenkinsfile

Un Jenkinsfile de Jenkins es una definición declarativa o scriptada de un pipeline CI/CD, escrita como código y almacenada en un repositorio de origen. Describe cómo se construye, prueba, escanea, empaqueta y despliega el software. Al residir junto al código de la aplicación, permite pipelines-as-code—automatización versionada, revisable y auditable.

GitHub Actions (.github/workflows)

El directorio .github/workflows de GitHub Actions es el lugar central donde se define la automatización CI/CD como código para un repositorio GitHub. Contiene archivos YAML que describen workflows, cuándo deben ejecutarse y qué jobs y pasos se realizan ante eventos del repositorio.

GitLab CI/CD (.gitlab-ci.yml)

El archivo .gitlab-ci.yml de GitLab CI/CD es la definición única y autorizada de un pipeline que indica cómo GitLab debe construir, probar, asegurar y desplegar una aplicación. Es un archivo YAML basado en pipelines-as-code ubicado en la raíz del repositorio, definiendo jobs, orden y condiciones cuando hay cambios de código.

Spinnaker Dinghy

Spinnaker Dinghy es un servicio de configuración como código que permite a los equipos definir y gestionar pipelines de despliegue de Spinnaker usando Git en lugar de la interfaz. Los pipelines se escriben como JSON o YAML y se sincronizan automáticamente al hacer commit.

Argo CD

Argo CD es una herramienta GitOps de entrega continua para Kubernetes que despliega automáticamente y mantiene las aplicaciones sincronizadas con lo declarado en Git. Trata a Git como la única fuente de verdad.

Tekton Pipelines-as-Code

Tekton Pipelines-as-Code es una forma basada en Git de definir y ejecutar pipelines Tekton CI/CD directamente desde pull requests, tratando los pipelines como artefactos de código de primera clase.

OpenTofu

OpenTofu es una herramienta open-source de Infrastructure as Code (IaC) usada para definir, provisionar y gestionar infraestructura cloud y on-prem mediante archivos de configuración declarativos.

Konflux-ci

Konflux es una plataforma CI open-source y cloud-native diseñada para producir artefactos de software confiables, reproducibles y verificables, priorizando integridad, procedencia y repetibilidad, ideal para entornos regulados y críticos.

Python: pylock.toml (preferido, estándar más reciente)

  • uv — usa pylock.toml
  • conda-lock — reproducible, menos estándar
  • pip freeze — no completamente reproducible

JavaScript:

Java / Kotlin / Groovy: Maven, Gradle

C# / .NET: Archivos lock de NuGet , DotNet.ReproducibleBuilds

C++: Bazel

Rust: Cargo

Golang: Go reproducible builds

PHP Composer

Composer es el gestor de dependencias estándar para PHP, usado para declarar, instalar y gestionar librerías de terceros requeridas por una aplicación PHP. Permite definir qué paquetes requiere el proyecto y automáticamente resuelve, descarga e instala las versiones correctas, asegurando consistencia en todos los entornos.

SLSA Framework

El framework SLSA (Supply-chain Levels for Software Artifacts) es un marco de seguridad que define cómo construir software de forma verificable, resistente a manipulaciones y confiable.

GitHub Issues

GitHub Issues es un sistema integrado de seguimiento usado para gestionar trabajo, errores, solicitudes de funcionalidades y discusiones directamente en un repositorio GitHub.

GitLab work tracking

GitLab Work Tracking es el sistema integrado de GitLab para planificar, rastrear y gestionar trabajo—desde ideas y requerimientos hasta código, correcciones de seguridad y entrega.

Bugzilla

Bugzilla es un sistema open-source de seguimiento de errores y gestión de incidencias usado para reportar, rastrear y gestionar defectos de software y solicitudes de mejora durante todo el ciclo de desarrollo.

Redmine

Redmine es una herramienta open-source de gestión de proyectos y seguimiento de incidencias usada por equipos de software para planificar trabajo, rastrear bugs y tareas, y gestionar proyectos en el tiempo.

Mantis Bug Tracker

Mantis Bug Tracker (o MantisBT) es un sistema open-source basado en web para seguimiento de errores e incidencias, diseñado para ser simple, rápido y ligero.

Trac

Trac es un sistema open-source basado en web de gestión de proyectos y seguimiento de incidencias que integra tickets, wiki y navegación de código. Es conocido por ser ligero, centrado en texto y amigable para desarrolladores.

in-toto framework

in-toto es un framework open-source para asegurar la cadena de suministro de software registrando y verificando criptográficamente cada paso de cómo se construye, prueba y libera el software.


PO.4 Definir y Usar Criterios para Chequeos de Seguridad del Software

Ayuda a asegurar que el software resultante del SDLC cumpla con las expectativas de la organización definiendo y utilizando criterios para verificar la seguridad del software durante el desarrollo.


Tareas Herramientas
PO.4.1:

Definir criterios para los chequeos de seguridad del software y darles seguimiento durante todo el SDLC.

Agregar criterios de seguridad del software a los chequeos existentes (por ejemplo, la Definición de Hecho en metodologías ágiles del SDLC).

PO.4.2:

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

Recopilar registros de auditoría de los repositorios de código.

PO.4.3:

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

Permitir solo a personal autorizado el acceso a la información recopilada, y prevenir cualquier alteración o eliminación de la información. Gestionar cuidadosamente la lista de propietarios de repositorios y de la organización que tienen la capacidad de ver registros de auditoría, eliminar organizaciones y eliminar repositorios de código, y revisar la lista anualmente.

Plantillas de Issues de GitHub

Las Plantillas de Issues de GitHub son formularios y guías predefinidos que aparecen cuando alguien crea un nuevo issue en un repositorio. Ayudan a los equipos a recopilar información consistente y de alta calidad para errores, solicitudes de funcionalidades, problemas de seguridad o preguntas.

Plantillas de Descripción de GitLab

Las Plantillas de Descripción de GitLab son plantillas Markdown predefinidas que se completan automáticamente en el campo de descripción cuando alguien crea un Issue, Merge Request (MR) o Epic en GitLab.

GitHub

Registros de Auditoría

GitLab

Registros de Auditoría

GitHub

GitLab



PO.5 Implementar y Mantener Entornos Seguros para el Desarrollo de Software

Asegúrese de que todos los componentes de los entornos para el desarrollo de software estén fuertemente protegidos contra amenazas internas y externas para prevenir compromisos de los entornos o del software que se desarrolla o mantiene en ellos. Ejemplos de entornos para el desarrollo de software incluyen entornos de desarrollo, compilación, prueba y distribución.


Tareas Herramientas
PO.5.1:

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

Requerir autenticación multifactor, claves SSH, commits firmados y aprobaciones de cambios de código para los repositorios de código a nivel de organización.

Configuraciones de Organización en GitHub

GitLab


Nota: Configurar de manera segura los repositorios de código y los servidores CI/CD – este es un tema complejo, fuera del alcance de este documento. Configurar de manera segura los endpoints de desarrollo (por ejemplo, laptops de los desarrolladores) – este es un tema complejo, fuera del alcance de este documento.

2 - 1.2 Proteger el Software (PS)

Fase 1 de tareas de 1.2 Proteger el Software (PS)

1.2 Tareas de Proteger el Software (PS) para Código y Precompilación

Las organizaciones deben proteger todos los componentes de su software contra la manipulación y el acceso no autorizado.


PS.1: Proteger todas las formas de código contra el acceso no autorizado y la manipulación

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 evitar el robo del software y puede dificultar o alargar el tiempo que los atacantes necesitan para encontrar vulnerabilidades en él.


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.

Almacenar todo el código fuente y la configuración-como-código en un repositorio de código, y restringir el acceso según la naturaleza del código. Por ejemplo, el código abierto destinado al acceso público puede requerir protección de integridad y disponibilidad; otro código puede también necesitar protección de confidencialidad.

GitHub

Proporciona un repositorio centralizado de código fuente con control de acceso, auditoría y cumplimiento de flujos de trabajo, apoyando prácticas SSDF para la gestión segura de código y control de cambios.

GitLab

Ofrece control de versiones integrado, CI/CD y flujos de trabajo de seguridad que permiten gobernanza, trazabilidad y procesos de desarrollo seguros alineados con SSDF.

Bitbucket

Apoya SSDF gestionando el código fuente con acceso basado en roles, opciones de integridad de commits y flujos de revisión obligatorios.

SourceForge

Aloja y distribuye proyectos de código abierto con control de versiones y gestión de releases, apoyando requisitos SSDF para procedencia y transparencia del código.

Subversion

Proporciona control de versiones centralizado permitiendo prácticas SSDF para seguimiento de cambios, auditoría y acceso controlado al código fuente.

Git

Permite historial inmutable, trazabilidad y flujos de desarrollo distribuidos, fundamentales para la integridad y responsabilidad del código en SSDF.

GitBucket

Ofrece hosting de repositorios Git con control de acceso y funciones de colaboración que apoyan la gobernanza segura de SSDF.

Gitea

Proporciona repositorios Git ligeros y autoalojados que cumplen con los requisitos SSDF de gestión controlada del código y auditabilidad.

gittuf

Refuerza el cumplimiento de SSDF aplicando políticas criptográficas y metadatos de confianza verificables sobre repositorios y flujos de trabajo Git.

GitHub Signing Commits

Garantiza la integridad del código alineada con SSDF verificando criptográficamente la identidad de los autores de los commits.

Sigstore

Permite la verificación de artefactos y commits alineada con SSDF mediante firmas criptográficas auditable y registros de transparencia sin claves.

Github CODEOWNERS

Aplica la separación de roles y responsabilidad SSDF exigiendo que los propietarios designados revisen y aprueben los cambios de código.

GitHub Code Review

Apoya el desarrollo seguro SSDF haciendo cumplir revisiones por pares, comprobaciones de políticas y puertas de aprobación antes de integrar código.

Gitlab CODEOWNERS

Implementa la asignación de responsabilidades SSDF enviando automáticamente los cambios a los revisores responsables.

Gitlab Code Review Guidelines

Establece estándares de revisión alineados con SSDF que reducen defectos y riesgos de seguridad antes de fusionar el código.


PS.2 Proporcionar un Mecanismo para Verificar la Integridad del Software Lanzado

Ayuda a los adquirentes de software a asegurarse de que el software que adquieren sea legítimo y no haya sido manipulado.


Tareas Herramientas
PS.2.1:

Hacer que la información de verificación de integridad del software esté disponible para los adquirentes de software.

Publicar hashes criptográficos de los archivos de lanzamiento en un sitio web seguro.

Apache Infrastructure Signing Releases

Apoya SSDF asegurando que los lanzamientos de software de Apache estén firmados criptográficamente y sean verificables, estableciendo un origen confiable y protegiendo contra artefactos de distribución manipulados.

OpenPGP

Proporciona mecanismos criptográficos alineados con SSDF para firmar y verificar código y artefactos, garantizando autenticidad, integridad y no repudio.

The GNU Privacy Guard

Implementa los estándares OpenPGP para habilitar prácticas SSDF al firmar código fuente, commits y lanzamientos con identidad verificable del desarrollador.

Let's Encrypt

Apoya la entrega segura alineada con SSDF al emitir certificados TLS gratuitos y automáticos que protegen los canales de distribución de software y los servicios del desarrollador contra interceptaciones y manipulaciones.

EJBCA Community

Permite cumplir con SSDF proporcionando una PKI de código abierto para gestionar certificados usados para autenticar desarrolladores, sistemas y artefactos de software.

Dogtag Certificate System

Apoya los requisitos de confianza e identidad de SSDF al emitir y gestionar certificados digitales para la firma segura de software y la autenticación de infraestructura.

OpenXPKI

Proporciona gestión del ciclo de vida de certificados alineada con SSDF para establecer, auditar y aplicar confianza en las canalizaciones de desarrollo y liberación de software.

Step-CA

Habilita la automatización de identidad criptográfica según SSDF mediante la emisión de certificados de corta duración para desarrolladores, sistemas CI/CD y flujos de trabajo de firma de software.


PS.3 Archivar y Proteger Cada Versión de Software

Conservar las versiones de software para ayudar a identificar, analizar y eliminar vulnerabilidades descubiertas en el software después de su lanzamiento.


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 versión de software.

Almacenar los archivos de la versión, imágenes asociadas, etc., en repositorios siguiendo la política establecida por la organización. Permitir acceso de solo lectura al personal necesario y ningún acceso a otras personas.

PS.3.2:

Recopilar, proteger, mantener y compartir datos de procedencia de todos los componentes de cada versión de software (por ejemplo, en un Software Bill of Materials (SBOM)).

Hacer que los datos de procedencia estén disponibles para los adquirentes de software de acuerdo con las políticas de la organización, preferiblemente usando formatos estandarizados.

Permisos de Acceso en GitHub

Aplica control de acceso basado en roles según SSDF restringiendo quién puede ver, modificar o administrar los repositorios de código fuente.

Roles y Permisos de GitLab

Soporta la gobernanza SSDF definiendo roles granulares que aplican el principio de mínimo privilegio y separación de funciones a lo largo del SDLC.

Roles de Repositorio en GitHub para una Organización

Implementa controles organizacionales SSDF estandarizando los niveles de permisos entre equipos y repositorios.

Roles y Permisos de GitLab

Implementa controles organizacionales SSDF estandarizando los niveles de permisos entre equipos y repositorios.

Ortelius

Extiende los controles SSDF más allá del código fuente al aplicar acceso, trazabilidad y responsabilidad sobre software desplegado, SBOMs y metadatos del entorno en vivo mediante un gemelo digital centrado en despliegue.

Generador AI SBOM

Soporta SSDF generando y manteniendo automáticamente SBOMs precisos que mejoran la visibilidad de componentes y la trazabilidad de vulnerabilidades en todo el SDLC.

CycloneDX

Permite la transparencia de componentes alineada con SSDF proporcionando un formato de SBOM estandarizado optimizado para seguridad, integridad y análisis de riesgos.

Herramientas y Utilidades de Etiquetado SWID

Apoyan las prácticas SSDF identificando de forma única los componentes de software instalados para permitir inventario de activos, rastreo de procedencia y correlación de vulnerabilidades.

SPDX

Proporciona un estándar compatible con SSDF para documentar componentes de software, licencias y relaciones, apoyando la transparencia y cumplimiento en la cadena de suministro.

bomctl

Soporta el consumo de SBOMs SSDF validando, consultando y gestionando SBOMs a lo largo de los flujos de trabajo de construcción y liberación.

OWASP Dependency-Check

Permite la detección de vulnerabilidades SSDF identificando CVEs conocidos en dependencias de terceros durante el desarrollo y la construcción.

Dependency-Track

Soporta la gestión de riesgos SSDF analizando continuamente SBOMs para monitorear vulnerabilidades de componentes y cumplimiento de políticas.

Clair

Contribuye a SSDF escaneando imágenes de contenedores para detectar vulnerabilidades conocidas antes del despliegue.

Grype

Soporta prácticas de construcción segura SSDF detectando vulnerabilidades conocidas en imágenes de contenedores y sistemas de archivos usando datos de SBOM.

Ortelius

Extiende SSDF más allá del tiempo de construcción correlacionando y agregando SBOMs, vulnerabilidades y metadatos de despliegue para identificar qué entornos en vivo están realmente en riesgo.

Protobom

Soporta la interoperabilidad SSDF proporcionando bibliotecas y herramientas reutilizables para generar y transformar SBOMs entre formatos.

Syft

Permite el descubrimiento de componentes SSDF generando SBOMs a partir de código fuente, contenedores y artefactos en ejecución.

Hoppr

Soporta el intercambio y descubrimiento de SBOMs SSDF permitiendo la distribución segura y recuperación de artefactos SBOM.

Tern

Contribuye a la transparencia SSDF analizando imágenes de contenedores para producir inventarios detallados de componentes y SBOMs.

Trivy

Soporta el desarrollo seguro SSDF escaneando vulnerabilidades, configuraciones incorrectas y secretos expuestos en código y artefactos.

aoss-verifier

Permite la validación de cumplimiento SSDF verificando la integridad y autenticidad de artefactos de código abierto.

Sigstore

Soporta la procedencia SSDF permitiendo la firma criptográficamente verificable de artefactos y SBOMs con registros de transparencia.

Protocolo TLSNotary

Contribuye a la confianza SSDF proporcionando prueba criptográfica de integridad de datos para metadatos de seguridad y dependencias obtenidos externamente.

GitHub Actions

Permite la automatización SSDF integrando controles de seguridad, generación de SBOMs y cumplimiento de políticas directamente en los flujos de trabajo de CI.

GitLab CI/CD

Soporta pipelines seguras SSDF integrando controles de construcción, prueba, escaneo y liberación dentro de un sistema CI/CD gobernado.

Jenkins

Servidor de automatización totalmente open-source, bajo licencia MIT, con un ecosistema extensible de plugins, ampliamente usado para implementar controles de seguridad CI/CD alineados a SSDF.

Updatecli

Soporta la remediación SSDF automatizando actualizaciones de dependencias, configuraciones y políticas de manera controlada y auditable.

Renovate

Permite el mantenimiento seguro SSDF actualizando automáticamente dependencias vulnerables mientras se preservan los controles de revisión y aprobación.


3 - 1.3 Producir Software Bien Asegurado (PW)

1.3 Producir Software Bien Asegurado (PW) durante las tareas de código y precompilación

1.3 Producir Software Bien Asegurado (PW) — Tareas de Código y Precompilación

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 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 un análisis basado en riesgos indique que los requisitos de seguridad deben flexibilizarse o eximirse. Abordar los requisitos y riesgos de seguridad durante el diseño del software (secure by design) es clave para mejorar la seguridad del software y también ayuda a mejorar la eficiencia del desarrollo.


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, los riesgos y las decisiones de diseño del software.


PW.1.3:

Cuando sea apropiado, incorporar 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.

OWASP Threat Dragon

Se utiliza antes de programar para documentar los componentes del sistema, los flujos de datos y los límites de confianza, y luego enumerar amenazas y requisitos.

OWASP Amass

Ayuda a definir los requisitos de seguridad al identificar dependencias externas conocidas, APIs o servicios con los que el código interactuará, lo que informa el modelado de amenazas y el diseño seguro.

CAIRIS

Ayuda a los equipos de seguridad y a los desarrolladores a capturar, gestionar y rastrear los requisitos de seguridad desde el diseño inicial hasta el desarrollo, asegurando la alineación de seguridad en la fase prebuild.

Threagile

Permite el “modelado de amenazas como código” en la fase prebuild, de modo que los requisitos de seguridad puedan automatizarse y controlarse en versión junto con el código de la aplicación.

Open-Needs

Centraliza y estructura los requisitos de seguridad para que estén disponibles para el modelado de amenazas, las revisiones de diseño y la validación temprana.

rmtoo

Útil en la fase de diseño y planificación para mantener una lista estructurada de requisitos de seguridad y vincularlos con casos de prueba, modelos de amenazas o módulos de código, asegurando que la seguridad se aborde antes de programar.

OpenRMF® OSS

En la fase prebuild, puede definir los requisitos de seguridad exactos derivados del RMF que debe cumplir la base de código, incluyendo las líneas base de controles, y vincularlos con elementos de diseño o tareas de desarrollo.


PW.2

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


Tareas Herramientas
PW.2.1:

Contar con (1) una persona calificada 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.

OWASP Dependency-Check

Analiza las dependencias del proyecto (directas y transitivas) contra la National Vulnerability Database (NVD) y otras fuentes para detectar vulnerabilidades conocidas (CVEs). Ayuda a confirmar si un componente cumple con los requisitos de seguridad antes de su inclusión.

Dependabot

Herramienta automatizada de monitoreo y actualización de dependencias integrada con GitHub. Detecta dependencias vulnerables y crea pull requests para actualizarlas, asegurando que solo se usen versiones seguras.

OpenRMF

Gestiona artefactos de cumplimiento del Risk Management Framework (RMF), incluyendo controles NIST 800-53. Puede usarse para confirmar que los componentes de software seleccionados cumplen con las bases de control de seguridad antes de su aprobación.

ESLint

Linter de JavaScript/TypeScript que aplica estándares de codificación segura y señala patrones inseguros antes de que lleguen a producción. Ayuda a validar que los componentes de código personalizados cumplan con los requisitos de codificación segura.

LGTM

Plataforma de análisis automatizado de código para identificar vulnerabilidades y problemas de calidad en múltiples lenguajes. Confirma que los componentes de código cumplen con las políticas de seguridad antes de su integración.

Grype

Escáner de vulnerabilidades de código abierto para imágenes de contenedores y sistemas de archivos. Garantiza que los componentes containerizados cumplan con los requisitos de vulnerabilidad y cumplimiento antes del despliegue.

Clair

Análisis estático de vulnerabilidades para imágenes de contenedores. Se integra en CI/CD para detectar vulnerabilidades en imágenes base y capas antes de su promoción.

Trivy

Escáner de vulnerabilidades integral para imágenes de contenedores, sistemas de archivos y repositorios Git. Valida que los componentes seleccionados no tengan vulnerabilidades conocidas ni configuraciones inseguras.

Checkov

Análisis estático de Infrastructure as Code (IaC) para detectar configuraciones de seguridad incorrectas (Terraform, Kubernetes, CloudFormation). Garantiza que los componentes de IaC cumplan con las bases de seguridad definidas antes de su uso.

Terrascan

Escáner de políticas como código para Terraform, Kubernetes, Docker y otros frameworks IaC. Confirma que los componentes de infraestructura cumplan con los requisitos de seguridad y cumplimiento.

Gerrit

Herramienta web de revisión de código. Aunque no es un escáner de vulnerabilidades, aplica revisiones humanas y flujos de aprobación que pueden incluir listas de verificación de validación de requisitos de seguridad antes de aprobar un componente.


PW.4

Reutilizar software existente y bien asegurado cuando sea factible en lugar de duplicar funcionalidades: Reducir los costos de desarrollo de software, acelerar el desarrollo y disminuir la probabilidad de introducir vulnerabilidades adicionales reutilizando módulos y servicios de software cuya seguridad ya ha sido verificada. Esto es especialmente importante para software que implementa funcionalidades de seguridad, como módulos y protocolos criptográficos.


Tareas Herramientas
PW.4.1:

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

PW.4.2:

Crear y mantener componentes de software bien asegurados internamente siguiendo los procesos del SDLC para cubrir necesidades internas que no puedan ser satisfechas mejor mediante componentes de terceros.

PW.4.3:

Movido a PW.4.4

PW.4.4:

Verificar que los componentes de software adquiridos, ya sean comerciales, de código abierto o de otros terceros, cumplan con los requisitos definidos por la organización a lo largo de todo su ciclo de vida.

CycloneDX

Generado durante build/prebuild para validar los datos de los componentes contra criterios de aceptación definidos.

SPDX

Usado para verificar que todos los componentes cumplen con los requisitos de licencias y seguridad antes de su integración.

ArtifactHub

Garantiza que solo se obtengan paquetes verificados, firmados y conformes a políticas para los builds.

JFrog Artifactory OSS

Actúa como fuente controlada para componentes que cumplen con estándares de seguridad definidos.

Sonatype Nexus OSS

Evita el uso de componentes que no cumplen con los requisitos de seguridad o políticas.

Harbor

Aplica reglas para que solo imágenes escaneadas, firmadas y conformes a políticas sean almacenadas y utilizadas en builds.

GitLab Signing

Aplica la política de commits firmados en merge requests antes de aceptar código.

GitHub CodeQL

Ejecuta consultas de seguridad predefinidas en CI para verificar el código antes de su integración.

AquaSec Trivy

Aplica criterios de aceptación de seguridad (por ejemplo, sin CVEs críticas) antes de promover componentes.

Dependabot

Crea PRs para garantizar que se usen versiones seguras definidas por política.

Allstar

Garantiza que los repositorios cumplan con criterios de configuración antes de permitir merges.

OWASP SAMM

Proporciona un marco para definir prácticas de aseguramiento de seguridad y objetivos de madurez. Ayuda a establecer criterios para procesos de desarrollo seguro, incluyendo prebuild.

OWASP ASVS

Define requisitos detallados de verificación de seguridad para aplicaciones. Puede usarse como referencia para pruebas de seguridad automatizadas y manuales en prebuild.

OWASP Defectdojo

Plataforma de gestión de vulnerabilidades y orquestación de pruebas de seguridad. Centraliza resultados de escáneres y asegura que los problemas se rastreen según criterios de aceptación.

OWASP Dependency-Check

Escanea dependencias del proyecto buscando vulnerabilidades conocidas (CVEs) y falla builds si no cumplen criterios.

Git

VCS que soporta firma de commits y hooks para aplicar prebuild checks (linting, escaneos de seguridad).

Gitea

Servicio Git ligero y autohospedado con aplicación de políticas de repositorio (p. ej., commits firmados, revisiones requeridas).

GitLab (Community Edition)

Plataforma Git con integración CI/CD para ejecutar controles de seguridad antes de mergear.

Visual Studio Code

Soporta extensiones para linting, escaneo de vulnerabilidades y enforcement de firma de código pre-commit.

Eclipse

IDE Java con plugins para análisis estático, escaneo de dependencias y enforcement de reglas de codificación segura.

IntelliJ IDEA (Community Edition)

IDE Java con plugins para análisis estático, codificación segura y generación de SBOM.

JUnit

Framework de pruebas unitarias Java; puede integrarse con suites de pruebas de seguridad.

NUnit

Framework de pruebas .NET; soporta integración con tests de validación de seguridad.

Pytest

Framework de pruebas Python; puede ejecutar tests basados en reglas de seguridad como parte de CI.

Selenium

Herramienta de pruebas automatizadas de navegador; puede validar comportamientos seguros (p. ej., flujos de autenticación).

Playwright

Pruebas end-to-end de navegador con soporte para escenarios centrados en seguridad.

OWASP ZAP

Herramienta DAST para encontrar problemas de seguridad en aplicaciones en ejecución durante fases de prueba.

TestNG

Framework de pruebas para Java; se integra con automatización de seguridad.

Cucumber

Framework de pruebas BDD; permite definir tests de aceptación de seguridad en lenguaje natural.

Aqua Trivy

Escanea contenedores, sistemas de archivos y repositorios en busca de vulnerabilidades y errores de configuración.

Clair

Escaneo estático de vulnerabilidades en imágenes de contenedor antes del despliegue.

Grype

Escáner de vulnerabilidades para contenedores y sistemas de archivos.

Bandit for Python

Analizador estático específico de Python para problemas de seguridad comunes.

Semgrep

Análisis estático multi-lenguaje usando reglas de seguridad personalizadas o predefinidas.

Brakeman

Analizador estático específico de Rails para vulnerabilidades de seguridad.

Gitleaks

Detecta secretos hardcoded en repositorios Git antes del commit o en CI.

TruffleHog

Detecta secretos e información sensible en el historial y commits del código.

Sigstore

Framework open-source para firmar artefactos de software (commits, contenedores) usando pruebas criptográficas.

OWASP Dependency-Check

Escanea dependencias del proyecto (directas y transitivas) buscando CVEs conocidas usando NVD y otras fuentes. Puede aplicar criterios de “no vulnerabilidades críticas/altas” antes de aprobar el build.

OSS Review Toolkit (ORT)

Garantiza que los componentes seleccionados cumplan criterios de licencias y seguridad antes de integrarse a la línea principal.

FOSSA (Community Edition)

Puede bloquear merges o builds que violen reglas de licencias o contengan vulnerabilidades conocidas.

ScanCode Toolkit

Asegura que los criterios de licencias se cumplan antes de aceptar componentes en el build.

Tern

Proporciona inventario de componentes para validar contra criterios de aceptación predefinidos.

Open Policy Agent (OPA)

Aplica políticas de seguridad, cumplimiento y configuración durante gates de CI/CD antes del release.

PW.5

Crear Código Fuente Siguiendo Prácticas de Codificación Segura: Reducir el número de vulnerabilidades de seguridad en el software y disminuir los costos de desarrollo asegurando que el código fuente se cree siguiendo prácticas de codificación segura, cumpliendo o superando los criterios de severidad de vulnerabilidades definidos por la organización.


Tareas Herramientas
PW.5.1:

Seguir todas las prácticas de codificación segura apropiadas para los lenguajes de desarrollo y el entorno, a fin de cumplir con los requisitos de seguridad de la organización.

Semgrep

Integrado en CI para escanear el código modificado y bloquear merges si las reglas de seguridad fallan; también puede ejecutarse localmente para verificaciones previas al commit.

Bandit para Python

Se ejecuta en prebuild o pipelines de CI para detectar problemas de seguridad de alta severidad en código Python.

FindBugs

Analiza código Java antes del empaquetado para identificar vulnerabilidades y malas prácticas de codificación.

SpotBugs

Integrado en CI/CD para detectar vulnerabilidades en Java antes del lanzamiento.

SonarQube

Se ejecuta en pipelines CI/CD para señalar problemas de seguridad antes de los merges, aplicando quality gates.

OWASP ZAP

Se ejecuta en entornos de prueba antes de producción para identificar problemas de seguridad en tiempo de ejecución.

Arachni

Escanea instancias de staging/test para detectar vulnerabilidades explotables antes del despliegue.

OWASP Dependency-Check

Previene builds que incluyan componentes con vulnerabilidades que superen los umbrales de severidad definidos.


PW.6

Configurar los Procesos de Compilación, Intérprete y Construcción para Mejorar la Seguridad de los Ejecutables: Reducir el número de vulnerabilidades de seguridad en el software y disminuir los costos de desarrollo al detectar y eliminar vulnerabilidades durante la compilación o construcción, antes de las pruebas y el despliegue.


Tareas Herramientas
PW.6.1:

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

PW.6.2:

Definir qué funcionalidades de compilador, intérprete y herramientas de construcción se deben aplicar y configurarlas según los estándares de seguridad aprobados.

Sigstore Cosign

Firma y verifica la integridad y autenticidad del código fuente y las dependencias precompiladas antes de la compilación.

GnuPG (GPG)

Verifica las firmas criptográficas de archivos fuente y dependencias antes de la construcción.

OSS Review Toolkit (ORT)

Audita y escanea las dependencias en busca de vulnerabilidades de seguridad y problemas de licencias antes de incluirlas en la construcción.

Meson

Sistema de construcción integrado en CI/CD para aplicar configuraciones de seguridad y cumplimiento durante la compilación.

Tern

Analiza capas de imágenes de contenedores para identificar componentes de código abierto, licencias y posibles vulnerabilidades antes de usarlas en las construcciones.

ScanCode Toolkit

Detecta licencias, derechos de autor y paquetes en el código fuente antes de la construcción para garantizar cumplimiento y seguridad.

Grype

Escanea código fuente e imágenes de contenedores en busca de vulnerabilidades conocidas antes de incluirlas en la construcción.

Syft

Genera SBOMs a partir del código fuente y dependencias antes de la construcción para documentar y verificar los componentes.

PW.7

Revisar y Analizar Código Legible por Humanos para Identificar Vulnerabilidades y Verificar el Cumplimiento de Seguridad: Identificar vulnerabilidades en el código para que puedan ser corregidas antes del lanzamiento, previniendo su explotación. Los métodos automatizados reducen el esfuerzo y los recursos necesarios para detectar problemas. El código legible por humanos incluye código fuente, scripts y cualquier otra forma que la organización reconozca como legible por humanos.


Tareas Herramientas
PW.7.1:

Determinar si se debe utilizar revisión de código (una persona examina 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 defina la organización.

PW.7.2:

Realizar la revisión de código y/o el análisis de código de acuerdo con los estándares de codificación segura de la organización, registrando y clasificando todos los problemas detectados y las recomendaciones de remediación en el flujo de trabajo del equipo de desarrollo o en el sistema de seguimiento de incidencias.

OWASP Dependency-Check

Escanea las dependencias del proyecto (por ejemplo, Maven, npm, Python) contra la NVD para CVEs conocidas antes de la compilación, permitiendo la remediación temprana de librerías vulnerables.

OWASP ZAP

Principalmente una herramienta de pruebas de seguridad de aplicaciones dinámicas (DAST), pero en precompilación no se usa generalmente; puede ejecutarse contra compilaciones locales para detectar fallas tempranas en tiempo de ejecución. Aplicabilidad limitada a PW.7 precompilación.

SonarQube

Realiza SAST y revisa la calidad del código para múltiples lenguajes, detectando vulnerabilidades, errores y malos olores en el código antes de la compilación o integración.

Retire.js

Escanea código JavaScript y manifiestos de paquetes en busca de librerías vulnerables conocidas antes del empaquetado.

Fossa Community Edition

Realiza escaneo de dependencias para problemas de licencias y vulnerabilidades antes de la compilación. La versión comercial SaaS es propietaria.

Semgrep

Herramienta SAST ligera y personalizable. Utiliza reglas para detectar problemas de seguridad y patrones inseguros en el código fuente antes de la compilación.

Bandit para Python

Escanea código Python en busca de problemas de seguridad comunes antes de la compilación (por ejemplo, uso inseguro de funciones, contraseñas codificadas).

Checkmarx KICS

Herramienta de análisis estático para IaC (Terraform, YAML de Kubernetes, etc.) para encontrar configuraciones incorrectas antes del despliegue.

Cppcheck para C++

Análisis estático para código C/C++ para detectar comportamientos indefinidos, problemas de memoria y vulnerabilidades comunes antes de la compilación.

FindSecBugs

Plugin para SpotBugs que detecta vulnerabilidades específicas de Java antes de la compilación.

GitHub CodeQL

Realiza análisis profundo del código usando un lenguaje de consultas para detectar vulnerabilidades antes de la compilación. Excelente para SAST automatizado en pipelines de CI.

PMD

Escanea Java, Apex, JavaScript, XML y otros códigos en busca de errores, código no utilizado y posibles problemas de seguridad antes de la compilación.

SpotBugs

Análisis estático para bytecode Java; detecta patrones de errores y posibles vulnerabilidades precompilación (cuando se ejecuta sobre archivos de clase compilados en CI antes del empaquetado).

Danger JC

Automatiza las revisiones de pull requests — aplica las pautas de seguridad/contribución y previene que patrones inseguros se fusionen al código antes de la compilación.


PW.8

Probar el Código Ejecutable para Identificar Vulnerabilidades y Verificar el Cumplimiento de los Requisitos de Seguridad: Ayuda a identificar vulnerabilidades para que puedan corregirse antes de que el software sea liberado, previniendo 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 ejecutable directamente, código fuente y cualquier otra forma de código que la organización considere ejecutable.


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:

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

Semgrep

Motor SAST que analiza el código fuente contra reglas de seguridad antes de la compilación, detectando vulnerabilidades tempranamente.

Bandit (Python)

Análisis estático para código Python para encontrar problemas de seguridad comunes antes del empaquetado.

FindSecBugs

Plugin de seguridad para SpotBugs para detectar vulnerabilidades en código Java/Scala/Groovy antes de la compilación.

Cppcheck

Análisis estático para C/C++ para detectar fallos de seguridad antes de generar los artefactos de compilación.

PMD

Análisis estático basado en reglas para Java, Apex, JavaScript y XML para detectar vulnerabilidades y problemas de codificación.

SpotBugs

Detección de errores y vulnerabilidades en código Java antes de generar la salida de compilación.

GitHub CodeQL

Análisis semántico de código para encontrar vulnerabilidades antes de la compilación.

OWASP Dependency-Check

Herramienta SCA que identifica dependencias vulnerables en los manifiestos antes del empaquetado.

Retire.js

Analiza dependencias de JavaScript y Node.js para detectar vulnerabilidades conocidas antes de la liberación.

Grype

Herramienta SSCA para escanear dependencias de código fuente y imágenes base antes de la compilación para detectar CVEs.

Syft

Genera SBOMs desde código fuente antes de la compilación para verificar el inventario de componentes.

Checkmarx KICS

Analiza archivos de Infrastructure-as-Code (Terraform, Kubernetes YAML, etc.) para detectar configuraciones incorrectas antes del despliegue.

Gitleaks

Busca secretos en el código y en el historial de Git antes de la compilación.

TruffleHog

Busca secretos e información sensible en el código y en el historial de Git antes de la compilación.

PW.9

Configurar el Software para que Tenga 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, lo que aumentaría el riesgo de compromiso.


Tareas Herramientas
PW.9.1:

Definir una línea base segura determinando cómo configurar cada ajuste que tenga efecto en la seguridad o cualquier ajuste relacionado con la seguridad, de modo que la configuración predeterminada sea segura y no debilite las funciones de seguridad proporcionadas por la plataforma, la infraestructura de red o los servicios.

PW.9.2:

Implementar los ajustes predeterminados (o grupos de ajustes predeterminados, si es aplicable) y documentar cada configuración para los administradores de software.

KICS (Checkmarx)

Detecta configuraciones incorrectas y valores predeterminados inseguros en archivos de IaC antes de la compilación.

Open Policy Agent (OPA)

Motor de políticas como código para aplicar reglas de configuración segura en pipelines previos a la compilación.

Yamllint

Valida archivos de configuración YAML, asegurando la corrección de su estructura antes de realizar más verificaciones de seguridad.

4 - 1.4 Responder a Vulnerabilidades

1.4 Responder a Vulnerabilidades (RV) en Código y Pasos Prebuild de CI/CD

1.4 Responder a Vulnerabilidades (RV) para Tareas de Código y Prebuild

Responder a Vulnerabilidades (RV): Las organizaciones deben identificar vulnerabilidades residuales en sus lanzamientos de software y responder de manera adecuada para abordar esas vulnerabilidades y prevenir que ocurran similares en el futuro.


RV.1

Identificar y Confirmar Vulnerabilidades de Forma Continua: Ayuda a garantizar que las vulnerabilidades se identifiquen más rápido para poder remediarlas de acuerdo con el riesgo, reduciendo la ventana de oportunidad para los atacantes.


Para cumplir con SSDF RV.1 en un contexto de código y prebuild usando herramientas de código abierto, el enfoque se centra en detectar y remediar vulnerabilidades antes de que se construya cualquier artefacto, de modo que las correcciones ocurran en PRs de código/manifest, no después del empaquetado.


Tareas Herramientas
RV.1.1:

Recopilar información de adquirientes de software, usuarios y fuentes públicas sobre posibles vulnerabilidades en el software y componentes de terceros que utiliza, e investigar todos los informes 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:

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

OSV-Scanner

Escanea árboles de código y archivos manifest/lock contra OSV para detectar vulnerabilidades conocidas tempranamente en el desarrollo.

Ortelius Evidence Store

Sincroniza continuamente versiones de Software Bill of Material de artefactos construidos a OSV.dev, reportando vulnerabilidades descubiertas después del build.

Semgrep

SAST basado en reglas en PRs/CI para vulnerabilidades previamente no detectadas. Herramienta de análisis estático usada para buscar en el código, encontrar errores y aplicar estándares de código en varias etapas del ciclo de desarrollo (editor, commit e integración continua - CI).

OWASP Dependency Check

SCA para múltiples ecosistemas; corre en CI, genera salida SARIF/HTML. Coincidencia de dependencias basada en CVE para retroalimentación en tiempo de código.

Trivy

Escanea archivos fuente/lockfiles e IaC antes de construir. SCA todo-en-uno + comprobaciones de configuración incorrecta de IaC pre-build.

Syft

Genera SBOMs (CycloneDX/SPDX) directamente desde el código fuente. Datos de composición/procedencia para apoyar el descubrimiento de RV.1.

Grype

Escanea directorios de código o Software Bill of Materials (de Syft) en busca de vulnerabilidades. Coincidencia precisa mediante SBOM + integración flexible en CI.

SonarQube Community

Los desarrolladores pueden inspeccionar continuamente la calidad del código para detectar errores, "code smells" y vulnerabilidades de seguridad sin ejecutar el código.

CodeQL

Desarrollado por GitHub, permite a desarrolladores e investigadores de seguridad analizar bases de código para vulnerabilidades, errores y otros problemas de calidad de código.

Bandit (Python)

Herramienta de análisis estático diseñada para identificar vulnerabilidades de seguridad comunes en código Python.

Brakeman (Rails)

Escáner de vulnerabilidades específicamente diseñado para aplicaciones Ruby on Rails.

FindSecBugs (Java)

Herramienta de análisis estático para aplicaciones Java, usada para identificar posibles vulnerabilidades de seguridad en el código.

Gitleaks

Previene secretos codificados directamente en el código y archivos de configuración.

Conftest

Utilidad para escribir pruebas sobre datos de configuración estructurados.

Hoppr

Kit de utilidades SBOM / cadena de suministro: procesamiento de SBOM y movimiento de “materiales” de la cadena de suministro alineados a la recopilación/mantenimiento/compartición de procedencia.

RV.2

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


Para cumplir con SSDF RV.2 en un contexto de código y prebuild 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, atestaciones y vulnerabilidades para entender el impacto y priorizar correcciones.

Renovate

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

OWASP DefectDojo

Ingesta resultados de escáneres (Semgrep/Grype/Trivy/etc.) para deduplicación, severidad, propiedad y flujo de trabajo. Triage central de vulnerabilidades y seguimiento de riesgo vinculado a repos.

Ortelius Evidence Store

Muestra el impacto de cada vulnerabilidad a través de entornos en vivo.

Vulns

Escáner de vulnerabilidades sin agente que analiza paquetes instalados y los mapea a datos CVE con puntuación CVSS. Proporciona severidad, explotabilidad y recomendaciones de remediación; puede integrarse en flujos de parches.

Dependency-Track

Plataforma de análisis de componentes basada en SBOM de forma continua. Enriquece vulnerabilidades con metadatos (severidad, explotabilidad, impacto de políticas).

VEX

VEX cierra la brecha entre identificar vulnerabilidades potenciales (SBOM) y determinar su riesgo real en un entorno específico. Permite priorizar esfuerzos de remediación enfocándose en vulnerabilidades realmente explotables que requieren atención inmediata.


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 código y prebuild usando herramientas de código abierto, el enfoque se centra en:

  • Identificar vulnerabilidades en código fuente y manifiestos de dependencias antes de construir, usando generación de SBOM, SCA y SAST

  • Confirmar hallazgos eliminando falsos positivos y documentando evidencia mínima para remediación

  • Aplicar barreras tempranas como fijación de versiones, listas de denegación y escaneo de secretos para bloquear riesgos conocidos

  • Normalizar, deduplicar y priorizar hallazgos según severidad, explotabilidad y contexto de uso

  • Aplicar controles basados en políticas en PRs para bloquear vulnerabilidades de alto riesgo y automatizar actualizaciones seguras de dependencias

  • Asignar propiedad, exigir disposición para cada hallazgo y gobernar excepciones con exenciones temporales o registros VEX

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 prácticas de codificación segura que no se siguen de manera consistente.

RV.3.3:

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

RV.3.4:

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

SpotBugs + FindSecBugs

Mantiene un conjunto de reglas de “barrera” para problemas históricos. Proporciona erradicación de patrones a través de módulos.

Semgrep

Codifica RCAs como reglas (p. ej., prohibir APIs inseguras, aplicar sanitizadores) y ejecuta en PRs. Detecta la clase de error que causó el incidente.

OpenSSF Scorecard

Monitorea señales de higiene de repositorio (protección de rama, fijación de dependencias, fuzzing, etc.) e incorpora mejoras en el SDLC. Controles preventivos alineados a temas de causas raíz.

Codeql

Consulta bases de código para rastrear el origen de vulnerabilidades (p. ej., encontrar todos los puntos de inyección).

SonarQube Community

Identifica violaciones de reglas de calidad/seguridad del código que pueden indicar problemas sistémicos de codificación.

DefectDojo

Agrega resultados de escáneres para que los patrones en tipos de vulnerabilidad sean más fáciles de detectar.

Dependency-Track

Rastrea componentes vulnerables y muestra problemas recurrentes relacionados con dependencias.

Grype

Escáner de vulnerabilidades para imágenes de contenedores y sistemas de archivos.

Syft

Correlaciona SBOMs a través de versiones para identificar problemas repetidos de dependencias.

Bandit (Python)

Escáner de seguridad específico de lenguaje para identificar el mismo fallo en múltiples archivos.

Brakeman (Rails)

Detecta prácticas de codificación insegura repetidas en aplicaciones Rails.

pre-commit

Aplica hooks de calidad/seguridad de código antes de los commits.

Husky

Automatización de hooks Git para proyectos JavaScript/TypeScript para hacer cumplir comprobaciones.

Checkov

Previene configuraciones incorrectas al integrarse en los flujos de trabajo existentes de los desarrolladores.

tfsec

Agrega barreras en IaC para prevenir configuraciones inseguras en el momento del commit.

kics

Detecta vulnerabilidades de seguridad, problemas de cumplimiento y configuraciones incorrectas de infraestructura.