0Pricing
Cyber Security Academy · Lección

Análisis de composición de software (SCA)

Analice las dependencias en busca de CVE conocidos con OWASP Dependency-Check, Snyk o GitHub Dependabot.

Análisis de composición de software (SCA) es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué es SCA?

El análisis de composición de software (SCA) identifica las dependencias de código abierto del proyecto y las comprueba en bases de datos de vulnerabilidades (NVD, CVE, GitHub Advisory). También señala problemas de cumplimiento de licencias.

Por qué las dependencias de terceros son arriesgadas

Las aplicaciones modernas utilizan cientos de bibliotecas de código abierto. Una sola biblioteca vulnerable puede exponer toda la aplicación. La vulnerabilidad Log4Shell de 2021 (CVE-2021-44228) afectó a millones de aplicaciones Java debido a una biblioteca de registro ampliamente utilizada.

Herramientas SCA

Herramientas SCA populares:

# npm audit (Node.js):
npm audit
npm audit fix

# pip-audit (Python):
pip-audit

# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./

# Snyk:
snyk test
snyk monitor

Dependabot y Renovate

Herramientas automatizadas para actualizar dependencias:

  • Dependabot (GitHub): abre automáticamente PR para actualizar dependencias vulnerables
  • Renovate: ofrece más opciones de configuración y admite más registros

Habilítelas en todos los repositorios; reducen la carga manual de hacer seguimiento de las actualizaciones de dependencias.

Comprender la gravedad de las CVE

No todas las vulnerabilidades de una dependencia se pueden aprovechar en su contexto. Evalúe lo siguiente:

  • ¿Se puede alcanzar la ruta de código vulnerable en su caso de uso?
  • ¿Expone su aplicación esa funcionalidad?
  • ¿La mitiga un WAF u otro control?

La puntuación CVSS es un punto de partida; el contexto determina el riesgo real.

Dependencias transitivas

Las dependencias directas tienen sus propias dependencias (transitivas). Una vulnerabilidad en una biblioteca que nunca ha oído mencionar puede afectarle igualmente. Las herramientas SCA trazan el árbol completo de dependencias. Ejecute npm ls o pip show -r requirements.txt para inspeccionar el árbol.

npm ls --all | grep "vulnerable-pkg"
pip show requests | grep Requires

Lista de materiales de software (SBOM)

Una SBOM es un inventario formal de todos los componentes de un producto de software. La Orden Ejecutiva 14028 (EE. UU.) exige SBOM para el software vendido al Gobierno de Estados Unidos. Formatos: SPDX, CycloneDX.

# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.json

Cumplimiento de licencias

SCA también comprueba las licencias. Las dependencias con licencia GPL en software comercial pueden obligarle a publicar su código como código abierto. LGPL, MIT y Apache 2.0 suelen ser permisivas. Los equipos legales necesitan visibilidad sobre las licencias de las dependencias; SCA la proporciona automáticamente.

Ataques a la cadena de suministro

Los atacantes inyectan código malicioso en paquetes populares de código abierto:

  • Typosquatting: reqeusts en lugar de requests
  • Cuentas de mantenedores comprometidas (al estilo de SolarWinds)
  • Confusión de dependencias: nombres de paquetes privados filtrados a un registro público

El uso de SCA con verificación de integridad (sumas de comprobación y archivos de bloqueo) reduce este riesgo.

Archivos de bloqueo

Los archivos de bloqueo (package-lock.json, Pipfile.lock) fijan las versiones exactas y verifican las sumas de comprobación. Confirme los archivos de bloqueo en el control de versiones. Nunca use npm install --legacy-peer-deps para omitir las comprobaciones de los archivos de bloqueo en compilaciones de producción.

SCA en la canalización de CI/CD

Integre SCA como una etapa obligatoria de CI:

# GitHub Actions example:
- name: Run npm audit
  run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posture

Comprobación rápida: SCA

¿Cuál es el objetivo principal del análisis de composición de software (SCA)?

Repaso de la lección

SCA analiza las dependencias del proyecto en busca de CVE conocidas, problemas de licencias y riesgos de la cadena de suministro. Es fundamental tener en cuenta las dependencias transitivas: una vulnerabilidad en una biblioteca de una dependencia también le afecta. Habilite Dependabot/Renovate para automatizar las actualizaciones. Genere SBOM (SPDX/CycloneDX) para obtener visibilidad sobre la cadena de suministro. Los archivos de bloqueo fijan las versiones y verifican las sumas de comprobación. Integre SCA como una etapa de CI con umbrales de gravedad.

Preguntas frecuentes

¿La lección «Análisis de composición de software (SCA)» es gratis?

Sí — el texto completo de «Análisis de composición de software (SCA)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Análisis de composición de software (SCA)»?

Analice las dependencias en busca de CVE conocidos con OWASP Dependency-Check, Snyk o GitHub Dependabot. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cyber Security Academy?

No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Análisis de composición de software (SCA)»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?

Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. SAST y DAST en pipelines de CI/CD
  2. Análisis de composición de software (SCA)
  3. Análisis de secretos y credenciales codificadas
  4. Security Champions y modelado de amenazas
← Volver a Cyber Security Academy