saltar al contenido
volver al mapa
técnica de prueba
etapa: build
2 min de lectura

SCA

Vigila el código que no escribiste: bibliotecas de terceros, versiones y vulnerabilidades conocidas.

DependabotSnykTrivyOWASP Dependency-Check

Qué es

(Software Composition Analysis) inventaría las dependencias del proyecto, directas y transitivas, y cruza cada versión con bases públicas de vulnerabilidades (, GitHub Advisory, OSV) y con bases de licencias.

La premisa: la mayor parte del código de una aplicación moderna (frecuentemente 70 a 90%) viene de terceros. Tu superficie de riesgo incluye todo eso, aunque nadie del equipo haya escrito una línea de esas bibliotecas.

Un CVE de verdad: del lockfile a la alerta

El punto de partida es siempre un manifiesto o lockfile. Digamos que el proyecto depende de una versión antigua de lodash:

package.jsonjson
{ "dependencies": { "lodash": "4.17.15" } }

El cruce con los advisories

El SCA toma cada componente+versión del lockfile y consulta las bases de vulnerabilidades. Para lodash 4.17.15, existe un advisory real y conocido:

advisory (OSV / GitHub Advisory)json
{
  "id": "CVE-2020-8203",
  "package": "lodash",
  "title": "Prototype pollution en zipObjectDeep",
  "affected": "< 4.17.19",
  "patched": "4.17.19",
  "severity": "HIGH"
}

Por qué la versión transitiva es la pesadilla

El caso se pone interesante cuando el paquete vulnerable ni siquiera está en tu package.json: entró como dependencia de una dependencia, tres niveles más abajo. Nunca elegiste ese lodash, pero está en tu artefacto corriendo en producción.

Aquí es donde el lockfile salva el día: registra el árbol completo, no solo lo que está en el manifiesto. Sin SCA y sin lockfile, la pregunta '¿usamos lodash 4.17.15?' no tiene una respuesta rápida ni en tu propio repositorio.

Cómo funciona, resumido

  • lee manifiestos y lockfiles (package.json, package-lock, pom.xml, go.mod, requirements.txt)
  • arma el árbol completo de dependencias, incluidas las transitivas
  • asocia cada componente+versión con advisories publicados y puntúa la severidad (, , exploit conocido)
  • abre PRs automáticos de actualización y genera el del artefacto

Dónde entra en el pipeline

En el PR y en el build, bloqueando nuevas dependencias críticas. Y de forma continua después del deploy: cada día aparece un nuevo contra una versión antigua; la herramienta monitorea el inventario y alerta (o abre un PR) cuando una dependencia ya usada se vuelve un riesgo.

Limitaciones

  • solo conoce vulnerabilidades ya publicadas; un en una dependencia pasa
  • no encuentra fallas en tu código: para eso existen y DAST
  • sin una política de severidad, se vuelve una fábrica de alertas ignoradas
SCAAnálisis de composición: inventaría las dependencias de terceros y las cruza con CVEs conocidos.ver en el glosario →NVDnational vulnerability databaseLa base de datos del NIST que enriquece cada CVE con un puntaje CVSS y un CWE asociado. Es de donde beben la mayoría de las herramientas de SCA.ver en el glosario →CVSScommon vulnerability scoring systemPuntaje de 0 a 10 que mide la severidad técnica de una vulnerabilidad: cómo se explota (red o local, complejidad, privilegio necesario, interacción del usuario) y cuál es el impacto. 9.0+ es crítico, pero el número es teórico: no sabe si estás expuesto.ver en el glosario →EPSSexploit prediction scoring systemProbabilidad (0 a 100%) de que un CVE sea explotado de verdad en los próximos 30 días, basada en evidencia. Complementa al CVSS: un 9.8 con EPSS de 0,1% puede ser menos urgente que un 7.5 con EPSS de 60%.ver en el glosario →SBOMLa lista de ingredientes del software: dependencias, versiones, licencias y hashes, en un formato estándar.ver en el glosario →CVEcommon vulnerabilities and exposuresEl identificador único de UNA vulnerabilidad pública específica, con el formato CVE-AÑO-NÚMERO. Ej.: CVE-2021-44228 es Log4Shell. Es la instancia real, no la clase del problema.ver en el glosario →Zero-dayVulnerabilidad explotada antes de que exista una corrección pública. Contra un zero-day, en el momento solo ayudan la defensa en profundidad y la detección.ver en el glosario →SASTAnálisis estático: examina el código sin ejecutarlo. Encuentra problemas por análisis de flujo, no por adivinación.ver en el glosario →

conexiones en el mapa

actualizado el 14/10/2026 · fuentes para profundizar · reportar un error

en otros dominios

Estudia antes

Desbloquea

pon a prueba lo que entendiste

Cargando preguntas…