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.