Dependencias & SCA
El software moderno es, en su mayoría, código de terceros: una app típica tiene cientos de dependencias transitivas. El SCA (Software Composition Analysis) inventaría y evalúa ese código ajeno en busca de vulnerabilidades conocidas y problemas de licencia. Es la respuesta directa a Log4Shell.
El problema de la cadena de suministro
Sección titulada «El problema de la cadena de suministro»- tu código es la punta del iceberg; debajo hay cientos de deps (directas + TRANSITIVAS)- una vuln en una dep transitiva profunda es TU vuln (Log4Shell estaba "enterrado")- riesgos: vulns conocidas (CVE), paquetes maliciosos, typosquatting, dependency confusionSCA y SBOM
Sección titulada «SCA y SBOM»SCA identifica dependencias y las cruza con bases de vulns (CVE/GHSA/OSV)SBOM Software Bill of Materials: inventario completo de componentes (CycloneDX/SPDX) -> sin SBOM, ante un Log4Shell no sabes DÓNDE lo tienes# generar SBOM por build y guardarlo -> respuesta rápida a la próxima vuln masivaAtaques a la cadena de suministro de paquetes
Sección titulada «Ataques a la cadena de suministro de paquetes»Typosquatting paquete con nombre parecido al legítimo (reqeusts vs requests)Dependency confusion subir a repo público un paquete con el nombre de uno interno -> el gestor prioriza la versión pública maliciosaPaquete comprometido mantenedor hackeado / cuenta robada inyecta código (event-stream)Protestware el propio autor sabotea su paqueteHerramientas
Sección titulada «Herramientas»SCA Dependabot/GitHub, Snyk, OWASP Dependency-Check, Trivy, Grype, osv-scannerSBOM Syft (genera), CycloneDX, SPDXPinning lockfiles (package-lock, poetry.lock) + hashes -> builds reproduciblesGestión (no solo detectar)
Sección titulada «Gestión (no solo detectar)»- priorizar por EXPLOTABILIDAD y si la vuln es ALCANZABLE (¿se usa esa función?) no solo CVSS- actualizar con cuidado (tests) ; dependencias sin mantenimiento = riesgo a planificar- repos privados/proxy (Artifactory/Nexus) + verificación de firmas/hashes- política contra dependency confusion (scopes, prioridad de repos internos)Blue Team / AppSec
Sección titulada «Blue Team / AppSec»- SCA + SBOM en cada build: inventario para responder rápido a la próxima vuln masiva.
- Priorizar por explotabilidad/alcanzabilidad (EPSS/KEV, ver Gestión de vulnerabilidades), no por volumen de CVEs.
- Mitigar dependency confusion/typosquatting con repos internos, scopes y verificación de firmas.
- Automatizar actualizaciones (Dependabot) con tests; planificar deps abandonadas.
CVEs y casos reales
Sección titulada «CVEs y casos reales»- Log4Shell (CVE-2021-44228): dep transitiva ubicua; quien tenía SBOM respondió en horas, no semanas.
- event-stream (2018) y xz/liblzma (CVE-2024-3094): paquetes comprometidos en la cadena de suministro.
- Dependency confusion (Alex Birsan, 2021): logró ejecución en Apple, Microsoft y otros subiendo paquetes públicos homónimos.
Checklist de prueba
Sección titulada «Checklist de prueba»- SCA en el CI cruzando con CVE/GHSA/OSV
- SBOM generado por build (Syft/CycloneDX) y almacenado
- Priorización por explotabilidad/alcanzabilidad (no solo CVSS)
- Lockfiles con hashes (builds reproducibles)
- Mitigación de dependency confusion (repos internos/scopes)
- Actualizaciones automatizadas con tests (Dependabot)
- Verificación de firmas de paquetes donde sea posible