Codea Seguro Codea Seguro
Desarrollo Seguro Dificultad: intermedia

Seguridad de dependencias y cadena de suministro

Tu código es tan seguro como el paquete más olvidado de tu árbol de dependencias.

Una app moderna arrastra cientos o miles de dependencias transitivas. Cada una es código ajeno que ejecutas con tus privilegios. Los ataques a la cadena de suministro explotan justo eso.

1. Fija versiones con un lockfile

Versiona siempre package-lock.json, pnpm-lock.yaml, poetry.lock, etc. Garantiza builds reproducibles y evita que una versión maliciosa entre silenciosamente.

# BIEN — instala exactamente lo del lockfile, sin resolver versiones nuevas
npm ci

2. Audita vulnerabilidades conocidas

npm audit --omit=dev        # Node
pip-audit                   # Python

Automatízalo con Dependabot, Renovate o Snyk para recibir PRs de actualización. No dejes que las alertas se acumulen: triajea y parchea lo explotable.

3. Cuidado con el typosquatting y los paquetes nuevos

  • Verifica el nombre exacto antes de instalar (crossenv vs cross-env).
  • Desconfía de paquetes muy recientes, con pocas descargas o mantenedor único.
  • Revisa qué scripts de instalación (postinstall) ejecuta un paquete.

4. Minimiza la superficie

Cada dependencia es riesgo. Pregúntate si necesitas el paquete o si son 10 líneas propias. Elimina dependencias sin usar (depcheck, knip).

5. Verifica integridad y procedencia

  • Usa integrity hashes del lockfile; no los edites a mano.
  • Adopta SBOM (Software Bill of Materials) para saber qué contiene tu release.
  • Donde sea posible, verifica firmas/procedencia (Sigstore, npm provenance).

6. Pipeline y CI

  • No des a CI más secretos de los necesarios; limita permisos de los tokens.
  • Fija las actions/imágenes por hash, no por tag mutable (@v4 puede cambiar bajo tus pies).

Checklist rápida

  • Lockfile versionado e instalación con npm ci/equivalente.
  • Auditoría automatizada (Dependabot/Renovate/Snyk) con triaje activo.
  • Vigilancia de typosquatting y de scripts postinstall.
  • Superficie mínima: dependencias sin usar eliminadas.
  • Integridad por hash, SBOM y verificación de procedencia donde aplique.
  • Permisos mínimos en CI y acciones fijadas por hash.