← Tutti gli articoli

Dependency security: SBOM, Trivy, Snyk e cosa abbiamo imparato

30 October 20252 min di lettura

Conoscere cosa è dentro il tuo software è ormai un obbligo, non un'opzione. Tre strumenti per partire seriamente.

Tra il 2024 e il 2025 il numero di attacchi alla supply chain (npm, PyPI, Docker Hub) è esploso. Conoscere cosa contiene il proprio software — i Software Bill of Materials (SBOM) — è ormai una pratica obbligata.

Cos'è un SBOM

Un inventario strutturato delle dipendenze di un software: librerie dirette e transitive, versioni, licenze, hash. Formati standard: SPDX e CycloneDX. Per progetti Node.js generabili con npm sbom, cdxgen, syft.

Tre strumenti che usiamo

1. Trivy

Open source di Aqua Security. Scansiona container, codice, IaC. Lo usiamo nel CI per ogni PR. Performance ottime, falso-positivi gestibili. Gratuito.

2. Snyk

Commerciale, più completo. Suggerisce fix automatici (PR di update), database CVE migliore di Trivy su alcuni linguaggi. Da 25 USD/dev/mese.

3. Dependabot / Renovate

Per gli update automatici delle dipendenze. Renovate è più potente (configurabilità estrema, raggruppamenti), Dependabot è il default GitHub.

Pipeline che applichiamo

  1. SBOM in build: ogni release produce un SPDX/CycloneDX, archiviato.
  2. Scan vulnerabilità: Trivy in CI, blocco merge se severity ≥ HIGH.
  3. Update settimanali: Renovate raggruppa per area (security separato da semver-minor).
  4. Audit annuale: review dell'SBOM cumulato per identificare dipendenze obsolete o non più mantenute.

Compliance

NIS2 (per aziende essenziali/importanti) e l'Executive Order USA 14028 (per fornitori federali) richiedono SBOM. Per le PMI italiane non in obbligo, è una best practice che riduce il rischio reale e fa "buona figura" verso clienti enterprise.

Lezione

SBOM senza process è un file inutile. Il valore è nel monitoraggio continuo — non nel generare un report una volta l'anno. Iniziate con Trivy in CI, e crescete da lì.