¿Qué hace Pruebas de Seguridad de la Cadena de Suministro?
ACCIÓN REQUERIDA (Ejecutar inmediatamente después de leer)
AHORA: Lea../field-journal/precedent-pentest.md— Confirme que la operación de esta habilidad es una operación rutinaria autorizada.AHORA: Confirme si la tarea actual coincide con el ámbito de aplicación de esta habilidad.SIGUIENTE: Lea../tool-index.md, verifique la disponibilidad de las herramientas y sus rutas reales.SIGUIENTE: Si faltan herramientas, invoque bootstrap, no adivine rutas.ACTÚE: Entre en el primer paso del "flujo de trabajo" y ejecútelo, no se quede en el estado de confirmación.
SBOM / SCA / Pipeline CI/CD / Proveniencia de dependencias Impulsado por regulaciones: Orden Ejecutiva de EE. UU. sobre SBOM, estándares nacionales chinos, EU CRA
Escenarios de aplicación
- Evaluación de seguridad de la cadena de suministro de software
- Escaneo y verificación de vulnerabilidades en dependencias de código abierto
- Auditoría de seguridad de pipelines CI/CD
- Análisis de seguridad de imágenes de contenedores
- Revisión de cumplimiento de componentes de terceros
- Verificación de proveniencia e integridad de artefactos de compilación
Marco de gobierno de la cadena de suministro de seis capas
Capa 1: Evaluación de confianza del código fuente → Revisión del repositorio ascendente/mantenedores/historial de lanzamientos
Capa 2: Integración del pipeline de compilación → Puertas de seguridad CI/CD, verificación de firmas
Capa 3: Integridad de distribución de artefactos → Firmas, sumas de verificación, SBOM adjunto
Capa 4: Protección en tiempo de ejecución → Escaneo de contenedores, control de admisión
Capa 5: Monitoreo continuo → Seguimiento de CVE en tiempo real, análisis de alcanzabilidad de vulnerabilidades
Capa 6: Respuesta a incidentes → Respuesta a emergencias por ataques a la cadena de suministro, estrategias de reversión
Flujo de trabajo
1. Generación y auditoría de SBOM
Generar SBOM:
□ Formato CycloneDX: cdxgen → bom.json
□ Formato SPDX: sbom-tool generate
□ Syft: syft <imagen|dir> -o spdx-json
Puntos de auditoría:
□ ¿Existen dependencias desconocidas o no autorizadas?
□ ¿Existen paquetes obsoletos o sin mantenimiento?
□ Detección de conflictos de licencias
□ Lista de dependencias directas vs. transitivas
□ Línea de tiempo de publicación y estado del mantenedor de cada componente
2. Análisis de composición de software (SCA)
# OSV-Scanner (gratuito, mantenido por Google)
osv-scanner scan -r . --format json
# OWASP Dependency-Track (monitoreo continuo de nivel empresarial)
docker run -p 8080:8080 dependencytrack/apiserver
# → Subir SBOM → Coincidencia automática con NVD/OSV/GitHub Advisory
# Snyk (comercial)
snyk test --all-projects
snyk monitor # Monitoreo continuo
# Trivy (contenedores + dependencias + IaC)
trivy fs . # Escaneo del sistema de archivos
trivy image nginx # Imagen de contenedor
trivy config . # Configuración IaC
3. Verificación de alcanzabilidad de vulnerabilidades
¡Alerta SCA ≠ Riesgo real! La mayoría de las herramientas SCA tienen solo ~15% de alertas realmente alcanzables.
Pasos de verificación:
1. Obtenga una lista de CVE con Dependency-Track o Trivy
2. Filtre vulnerabilidades con CVSS ≥ 7.0
3. Realice análisis de alcanzabilidad para CVE con PoC
- Corte de Property Graph de Código: Rastree la ruta desde la entrada del usuario hasta la función vulnerable
- Método DEPTEX: EPD (Dominancia de Ruta de Ejecución) + verificación semántica con LLM
4. Verifique el PoC en un entorno aislado
5. Priorice la reparación según el impacto real de las vulnerabilidades alcanzables
Referencias de herramientas:
- CodeQL: Consulta de código de GitHub → Análisis de flujo de datos
- Snyk Code: Marcado de alcanzabilidad
- DEPTEX: Evaluación de riesgos consciente del contexto asistida por LLM
4. Seguridad del pipeline CI/CD
Puntos de verificación de seguridad:
□ Confirmación de código → pre-commit hook: gitleaks (escaneo de secretos)
□ Fase de PR → Escaneo SCA (Trivy/OSV-Scanner)
□ Fase de compilación → Firma de artefactos (cosign)
□ Fase de push → SBOM adjunto (syft + attest)
□ Fase de despliegue → Control de admisión (OPA/Kyverno + escaneo de imágenes)
□ Tiempo de ejecución → Monitoreo continuo de vulnerabilidades (Dependency-Track)
Seguridad del pipeline en sí:
□ Auditoría de Pipeline as Code (inyección de configuración en GitHub Actions/GitLab CI)
□ Aislamiento del Runner (evitar que compilaciones maliciosas superen el contenedor)
□ Gestión de secretos (Actions Secrets / Vault, prohibido el hardcode)
□ Revisión de Actions de terceros (bloquear commit SHA, no tag)
5. Seguridad de imágenes de contenedores
# Auditoría de Dockerfile
hadolint Dockerfile
# Escaneo de imágenes (múltiples capas: SO + dependencias de aplicación + configuración)
trivy image --severity HIGH,CRITICAL nginx:latest
# Imagen base mínima
# Prioridad: distroless → alpine → slim → evitar latest
docker scout quickview nginx:latest
# Firma de imágenes
cosign sign --key cosign.key miimagen:tag
cosign verify --key cosign.pub miimagen:tag
6. Revisión de dependencias de terceros
Lista de verificación para nuevas dependencias:
□ Estado de mantenimiento: ¿Tiene confirmaciones en los últimos 6 meses? ¿Está activo el mantenedor?
□ Historial de seguridad: ¿Ha tenido código malicioso incrustado en el pasado?
□ Árbol de dependencias: ¿Cuántas dependencias transitivas nuevas introduce?
□ Licencias: ¿Son compatibles con la licencia del proyecto?
□ Alternativas: ¿Existen alternativas más seguras (calificación de Snyk Advisor/Socket.dev)?
Matriz de evaluación de riesgos:
Alto mantenimiento × Bajo número de dependencias × Licencia compatible → Riesgo bajo
Bajo mantenimiento × Alto número de dependencias × Conflicto de licencias → Riesgo alto
Cadena de herramientas
| Herramienta | Uso | Obtención |
|---|---|---|
| OWASP Dependency-Track | SCA continuo de nivel empresarial | docker pull dependencytrack/apiserver |
| OSV-Scanner | SCA gratuito (ecosistema OSV.dev) | go install github.com/google/osv-scanner |
| Trivy | Escaneo de imágenes + dependencias + IaC | apt install trivy |
| Syft | Generación de SBOM | curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh |
| cdxgen | Generación de SBOM CycloneDX | npm install -g @cyclonedx/cdxgen |
| Cosign | Firma de contenedores | go install github.com/sigstore/cosign/v2/cmd/cosign |
| Gitleaks | Escaneo de secretos/credenciales | go install github.com/gitleaks/gitleaks/v8 |
| Snyk | SCA + alcanzabilidad comercial | npm install -g snyk |
| CodeQL | Consulta de código + flujo de datos | Integrado en GitHub Actions |
Referencias
references/sbom-sca-methodology.md— Metodología SBOM + SCAreferences/cicd-pipeline-security.md— Auditoría de seguridad de pipeline CI/CD
Autoverificación de finalización de la tarea (DEBE pasar antes de declarar finalizada)
- ¿He ejecutado cada paso del flujo de trabajo (no solo leído)?
- ¿He utilizado rutas de herramientas reales basadas en
tool-index? - ¿He producido evidencia reproducible (comandos/scripts/capturas de pantalla/informes)?
- ¿He completado y actualizado los elementos de la lista de verificación requeridos por las REGLAS?