Vai al contenuto principale

Docker Scout: come analizzare le immagini container alla ricerca di vulnerabilità

Docker Scout analizza le immagini container alla ricerca di vulnerabilità e genera Software Bill of Materials. Ti offre visibilità sulla sicurezza integrata nei workflow di sviluppo basati su Docker: niente strumenti separati o configurazioni complesse.
· 12 min leggi

Scopri con l'IA

La storia va più o meno così: hai creato la tua immagine Docker, l’hai taggata e distribuita. Tutto sembra andare alla grande finché il team di sicurezza non segnala vulnerabilità in un pacchetto di cui non sapevi nemmeno l’esistenza. O peggio, la compliance chiede una Software Bill of Materials (SBOM) e ti chiedi come capire quali dipendenze sono incluse nelle tue immagini. Le immagini container possono essere scatole nere, e questo è un problema quando sei responsabile di ciò che gira in produzione.

Docker Scout ti offre visibilità sulle tue immagini container analizzandole alla ricerca di vulnerabilità e generando automaticamente SBOM. È integrato in Docker, quindi non c’è alcun tool separato da installare o imparare.

In questa guida ti mostrerò come analizzare le immagini con Docker Scout e comprendere i report sulle vulnerabilità che genera, così da sapere quando ha senso usarlo.

Se sei alle prime armi con Docker, dai un’occhiata al nostro articolo sui 18 comandi Docker principali. Questi ti metteranno sulla strada giusta per creare, eseguire e gestire container.

Che cos’è Docker Scout?

Docker Scout è lo strumento nativo di analisi delle immagini di Docker che esegue la scansione delle tue immagini container alla ricerca di vulnerabilità e genera Software Bill of Materials (SBOM).

Analizza tutto ciò che c’è nella tua immagine: dai pacchetti del sistema operativo di base, alle dipendenze specifiche del linguaggio, fino alle librerie applicative. Poi li confronta con i database di vulnerabilità noti. Ottieni un report che mostra quali pacchetti presentano problemi di sicurezza, quanto sono gravi e quali versioni li correggono.

Così, invece di usare scanner di terze parti o aspettare che i team di sicurezza segnalino i problemi dopo la distribuzione, puoi analizzare le immagini direttamente dove le costruisci. Scout gira in Docker Desktop, via CLI, e si integra con Docker Hub.

Ecco come si inserisce nell’ecosistema Docker: Docker crea ed esegue i container, Docker Hub li archivia e Docker Scout ti dice cosa c’è dentro. È importante ricordare che ora fa parte della piattaforma, non è un componente aggiuntivo separato.

Docker Scout sostituisce il vecchio comando docker scan, che si basava sul motore di scansione di Snyk. Scout usa il database di vulnerabilità di Docker e ti offre maggiore controllo sul processo di scansione. Se usi ancora docker scan, sappi che è deprecato: Scout è il sostituto ufficiale ed è già disponibile nelle versioni recenti di Docker Desktop.

Installare e abilitare Docker Scout

Docker Scout è incluso in Docker Desktop 4.17 e versioni successive, quindi se usi una versione recente lo hai già.

Funziona tramite la CLI di Docker e compare anche nell’interfaccia grafica di Docker Desktop. Se usi Docker Desktop, Scout è abilitato per impostazione predefinita: puoi iniziare subito ad analizzare le immagini.

Per verificare se Scout è disponibile sul tuo sistema, esegui questo comando:

docker scout version

Vedrai l’output con la versione della CLI di Scout e lo stato del plugin.

Docker scout version

Versione di Docker Scout

Se il comando funziona, sei pronto per analizzare le immagini.

Se ottieni un errore "command not found", la tua versione di Docker è troppo vecchia. Aggiorna Docker Desktop all’ultima versione per avere accesso a Docker Scout.

Analizzare un’immagine con Docker Scout

Eseguire la scansione richiede un solo comando, ed è la parte facile. La sfida a volte è capire cosa trova Scout.

Analizzare un’immagine

Puoi eseguire questo comando per analizzare un’immagine locale passando il suo nome o ID a Docker Scout:

docker scout cves python:3.14

Scout analizza i layer dell’immagine, estrae le informazioni sui pacchetti e verifica le vulnerabilità note. La scansione termina entro 30 secondi per la maggior parte delle immagini.

Scan results for Python 3.14 image

Risultati della scansione per l’immagine Python 3.14

Puoi anche analizzare immagini che non sono ancora sulla tua macchina:

docker scout cves postgres:18.1

Scout recupera i metadati dal registry senza scaricare l’immagine completa. Questo ti permette di controllare le immagini prima di eseguirne il pull in locale.

Scan results for Postgres 18.1 image

Risultati della scansione per l’immagine Postgres 18.1

Durante l’analisi, Scout scompatta ogni layer, identifica pacchetti e dipendenze, quindi confronta tutto con il suo database di vulnerabilità. Tiene traccia dei pacchetti del sistema operativo di base (come i pacchetti apt nelle immagini basate su Ubuntu) e delle dipendenze specifiche del linguaggio (come i pacchetti Python o i moduli Node).

Capire l’output

Scout raggruppa le vulnerabilità per gravità: Critica, Alta, Media e Bassa.

Le vulnerabilità Critiche e Alte richiedono attenzione per prime. Sono problemi attivamente sfruttati o bug gravi che potrebbero compromettere il sistema. Le vulnerabilità di gravità Media contano ma raramente richiedono correzioni immediate. Quelle di gravità Bassa vale la pena monitorarle, ma di solito non bloccano le distribuzioni.

Ogni vulnerabilità indica quale pacchetto contiene il problema. Scorrendo il report, vedrai un output simile a questo:

Vulnerability report

Report sulle vulnerabilità

Questo ti dice esattamente cosa è vulnerabile (openssl), quale versione stai usando e quale versione lo corregge. Scout include anche i link ai dettagli del CVE, così puoi leggere direttamente la descrizione della vulnerabilità.

L’attribuzione del pacchetto indica da dove provengono le vulnerabilità: pacchetti dell’immagine base, dipendenze dell’applicazione o librerie di sistema. Questo ti aiuta a decidere se aggiornare l’immagine base, fare l’upgrade di una dipendenza nel tuo codice o aspettare una correzione a monte.

Usare Docker Scout per generare e visualizzare SBOM

Una Software Bill of Materials (SBOM) è un inventario completo di tutto ciò che c’è nella tua immagine container: ogni pacchetto, libreria e dipendenza.

Ti dice esattamente cosa è finito nella tua immagine, fino ai numeri di versione specifici. I team di sicurezza usano le SBOM per tracciare cosa gira in produzione e spesso i framework di compliance le richiedono.

Docker Scout genera automaticamente le SBOM quando analizzi un’immagine con i comandi mostrati nella sezione precedente. Per ribadire:

docker scout sbom postgres:18.1

Questo stampa in terminale l’elenco completo dei pacchetti. Scout analizza i layer dell’immagine ed estrae i metadati dei pacchetti, quindi li formatta come SBOM che puoi salvare o condividere.

Puoi esportare la SBOM su file invece di stamparla a schermo:

docker scout sbom postgres:18.1 --format spdx > postgres-sbom.json

SBOM SPDX report

Report SBOM in formato SPDX

Scout supporta due formati standard di SBOM: SPDX (Software Package Data Exchange) e CycloneDX. Entrambi sono standard ampiamente usati nel settore. SPDX è adatto per compliance e revisioni legali, mentre CycloneDX è focalizzato su casi d’uso di sicurezza e tracciamento delle vulnerabilità.

Puoi cambiare formato con il flag --format:

docker scout sbom postgres:18.1 --format cyclonedx > postgres-sbom.json

SBOX CycloneDX report

Report CycloneDX

Una volta che hai un file SBOM, puoi condividerlo con i team di sicurezza, inviarlo ad altri strumenti di scansione o archiviarlo per audit di conformità.

Trovare e comprendere i CVE con Docker Scout

Docker Scout trova le vulnerabilità confrontando i pacchetti nella tua immagine con un database di problemi di sicurezza noti.

Quando esegui docker scout cves, Scout estrae ogni pacchetto dalla tua immagine — pacchetti del sistema operativo, librerie del linguaggio, dipendenze applicative — e poi li verifica rispetto ai record Common Vulnerabilities and Exposures (CVE). Un CVE è una vulnerabilità di sicurezza divulgata pubblicamente con un ID univoco come CVE-2024-1234.

Scout recupera i dati sui CVE da più fonti:

  • Il National Vulnerability Database (NVD)
  • Avvisi di sicurezza delle distribuzioni Linux
  • Database di sicurezza specifici per linguaggio per Python, Node.js, Go e altri ecosistemi

Questo significa che Scout può rilevare vulnerabilità sia nei pacchetti del sistema operativo dell’immagine base sia nelle dipendenze della tua applicazione.

Detto ciò, è importante ricordare che l’analisi funziona in modo diverso a seconda di dove risiede la tua immagine.

  • Per le immagini locali (quelle che hai creato o scaricato sulla tua macchina), Scout legge direttamente i layer dell’immagine dal tuo demone Docker. Scompatta ogni layer, identifica i pacchetti ed esegue la verifica delle vulnerabilità in locale. È veloce e non richiede accesso di rete all’immagine stessa.
  • Per le immagini remote su Docker Hub o altri registry, Scout recupera il manifest dell’immagine e i metadati dei layer senza scaricare l’immagine completa. Questo ti permette di analizzare le immagini prima di eseguirne il pull. I dati sulle vulnerabilità arrivano comunque dal database di Scout, ma l’analisi dell’immagine si basa sui metadati del registry.

Entrambi i metodi ti forniscono le stesse informazioni sulle vulnerabilità. Cambia solo la fonte da cui Scout legge i dati dell’immagine.

Indicazioni per la correzione e raccomandazioni sull’immagine base

Quando Scout trova una vulnerabilità per cui esiste una patch, mostra l’esatta versione che la risolve. Vedrai un output del tipo "Risolto in: 1.2.3" accanto a ciascun CVE. Questo ti fa capire se devi aggiornare un pacchetto, ricostruire l’immagine con una base più recente o attendere una correzione a monte.

Scout consiglia anche gli upgrade dell’immagine base quando passare a una base più nuova eliminerebbe vulnerabilità. Se stai usando python:3.13 e Scout trova problemi nei pacchetti del sistema operativo di base, potrebbe suggerire l’aggiornamento a python:3.14 o anche a una versione di patch più specifica.

Queste raccomandazioni compaiono quando Scout rileva che un tag dell’immagine base differente ha meno vulnerabilità rispetto a quello in uso. I suggerimenti sono azionabili: puoi letteralmente copiare il nuovo tag nel tuo Dockerfile e ricostruire.

Quindi, perché è importante?

La tua immagine base contiene i pacchetti del sistema operativo, le librerie di sistema e i runtime dei linguaggi da cui tutto il resto dipende. Un’immagine base vulnerabile significa che ogni container costruito a partire da essa eredita quelle vulnerabilità. Scegliendo un’immagine base minimale e attivamente mantenuta, riduci le superfici d’attacco.

Le immagini ufficiali su Docker Hub ricevono aggiornamenti di sicurezza regolari, ma devi comunque ricostruire le tue immagini per applicare le correzioni. Ad esempio, eseguire il pull di python:3.13 oggi ti dà pacchetti diversi rispetto a sei mesi fa.

Usare Docker Scout in CI/CD

I team integrano Docker Scout nelle pipeline CI per intercettare le vulnerabilità prima che le immagini arrivino in produzione.

L’idea è semplice: analizza ogni immagine come parte del processo di build, quindi fallisci la build se compaiono vulnerabilità Critiche. Così trovi i problemi in fase di sviluppo invece che dopo la distribuzione. La maggior parte dei team configura Scout per l’esecuzione automatica ogni volta che qualcuno invia un nuovo Dockerfile o aggiorna un’immagine base.

Le pipeline in genere verificano due aspetti:

  • Regressioni di vulnerabilità - Confrontano la tua nuova immagine con la versione precedente. Se la nuova build introduce più vulnerabilità Critiche o Alte della precedente, la pipeline fallisce. Questo evita di distribuire involontariamente una sicurezza peggiore di quella già in esecuzione
  • Deviazioni dalla policy - Verificano che la tua immagine rispetti gli standard di sicurezza. Potresti avere una policy che dice "nessun CVE Critico consentito" o "le immagini base devono avere meno di 30 giorni". Scout può far rispettare queste regole automaticamente nel tuo workflow CI

L’integrazione con GitHub Actions, GitLab CI o Jenkins funziona allo stesso modo a livello concettuale. Crei l’immagine, esegui docker scout cves su di essa, analizzi i risultati e decidi se far passare o fallire la pipeline in base ai tuoi criteri. Alcuni team integrano Scout direttamente nei workflow del registry dei container per analizzare le immagini subito dopo il push.

Docker Scout vs. altri scanner di immagini

Docker Scout non è l’unico strumento a disposizione. Compete con strumenti come Trivy e Snyk, ma ciascuno è pensato per workflow diversi.

  • Trivy è uno scanner open-source che può girare ovunque: macchine locali, pipeline CI e cluster Kubernetes. Analizza immagini container, filesystem e repository Git. Trivy ti dà più flessibilità su dove e come effettuare le scansioni e non richiede un account Docker. Pensalo come uno scanner standalone che lavora in modo indipendente dall’ecosistema Docker.
  • Snyk si concentra sui workflow degli sviluppatori e si integra profondamente con IDE, GitHub e altri strumenti di sviluppo. Oltre ai container, analizza dipendenze applicative, infrastructure as code e codice sorgente. Snyk offre anche indicazioni di remediation dettagliate e può aprire pull request per correggere le vulnerabilità. Se ti serve copertura di sicurezza su tutto lo stack, non solo sui container, Snyk è una scelta sensata.
  • Docker Scout dà il meglio quando usi già Docker Desktop e Docker Hub. L’integrazione è nativa, non ci sono configurazioni extra, nessuna chiave API da gestire e nessun tool separato da imparare. Scout analizza le immagini inviate a Docker Hub e la CLI fa parte dell’installazione di Docker.

Scegli Docker Scout se il tuo team crea ed esegue container con gli strumenti Docker e vuoi visibilità sulla sicurezza senza aggiungere complessità. Scegli Trivy se ti serve un’opzione open-source flessibile che funzioni ovunque. Scegli Snyk se vuoi una copertura completa su container, codice e infrastruttura con correzioni automatizzate.

Limitazioni comuni e cose da sapere

Docker Scout analizza le immagini container, ma non monitora ciò che accade dopo la distribuzione.

Analizza immagini statiche — i pacchetti e i file inclusi nel tuo container. Non può rilevare problemi in runtime come attacchi di escalation dei privilegi, intrusioni di rete o processi malevoli avviati dopo la distribuzione. Se ti serve monitoraggio della sicurezza in runtime, ti serviranno strumenti come Falco o Sysdig che osservano il comportamento dei container in produzione.

Scout non sostituisce nemmeno un SAST (Static Application Security Testing) o un DAST (Dynamic Application Security Testing) completi. Gli strumenti SAST analizzano il tuo codice sorgente alla ricerca di falle di sicurezza prima di costruire qualsiasi cosa. I tool DAST testano applicazioni in esecuzione simulando attacchi. Scout guarda solo i pacchetti all’interno della tua immagine costruita: non rileverà vulnerabilità nella logica applicativa o errori di configurazione nel tuo codice.

Quello che Scout fa bene è darti visibilità su ciò che c’è dentro le immagini e guidarti verso le correzioni. Ti dice quali pacchetti sono vulnerabili, quali versioni li sistemano e quali immagini base riducono le superfici d’attacco. Questo rende Scout utile per controlli di sicurezza in fase di build e per il tracciamento della conformità, ma ti serviranno altri strumenti per coprire l’intero spettro della sicurezza.

Best practice per usare Docker Scout

Ecco una checklist che puoi usare per sfruttare al meglio Docker Scout.

  • Esegui le scansioni presto nel ciclo di sviluppo. Avvia Scout sulle immagini durante lo sviluppo locale, non solo in CI o prima della distribuzione. Trovare le vulnerabilità presto significa correggerle quando il contesto è fresco e i cambiamenti costano poco. Aspettare la produzione significa correre per applicare patch sotto pressione.

  • Confronta le immagini nel tempo per tracciare i trend di sicurezza. Scout può mostrarti se la tua sicurezza sta migliorando o peggiorando. Esegui scansioni a ogni build e confronta i risultati. Se la nuova build introduce più vulnerabilità critiche della precedente, qualcosa è cambiato — magari un aggiornamento di dipendenze o uno shift dell’immagine base. Serve indagare.

  • Tratta i risultati di Scout come segnali di priorità, non come blocchi assoluti. Non tutte le vulnerabilità richiedono azioni immediate. Un CVE a bassa gravità in una dipendenza di sviluppo non usata in produzione può aspettare. Un CVE critico in un servizio esposto pubblicamente richiede attenzione immediata. Usa i livelli di gravità e il contesto del pacchetto di Scout per decidere cosa conta per il tuo deployment specifico.

  • Abbina Scout a una buona igiene dell’immagine base. Scegli immagini base minimali e attivamente mantenute e aggiornale regolarmente. Usare python:3.14-slim invece di python:3.14 elimina pacchetti inutili. Ricostruire mensilmente le immagini recepisce le patch di sicurezza nel layer di base. Scout può dirti cosa è vulnerabile, ma scegliere buone basi evita che molte vulnerabilità compaiano fin dall’inizio.

Conclusione

Docker Scout ti offre un modo pratico per iniziare a capire cosa c’è dentro le tue immagini container.

Si inserisce nello sviluppo basato su Docker: nessun tool separato da installare, nessun account da configurare oltre a ciò che già usi. Esegui un comando, ottieni report sulle vulnerabilità e vedi quali pacchetti richiedono aggiornamenti.

Scout dà il meglio come parte di un approccio di sicurezza più ampio, non come unica soluzione. Affiancalo al monitoraggio in runtime, all’analisi del codice sorgente e ad aggiornamenti regolari delle immagini base. Usalo per intercettare le vulnerabilità durante le build, quindi aggiungi altri strumenti per coprire ciò che accade dopo la distribuzione.

Se ti stai chiedendo come Docker si inserisca nelle pipeline CI/CD per il machine learning, iscriviti al nostro corso CI/CD for Machine Learning. Avrai tutte le risposte in un pomeriggio.

Dario Radečić

Autore

Dario Radečić

Senior Data Scientist con base in Croazia. Top Tech Writer con oltre 700 articoli pubblicati, per più di 10 milioni di visualizzazioni. Autore del libro Machine Learning Automation with TPOT.

Docker Scout: Domande frequenti

In che modo Docker Scout può aiutare ad automatizzare le scansioni delle vulnerabilità nelle pipeline CI/CD?

Docker Scout si integra nelle pipeline CI/CD eseguendo automaticamente le scansioni ogni volta che crei una nuova immagine. Puoi configurare la pipeline per far fallire le build che introducono vulnerabilità Critiche o Alte, impedendo a immagini insicure di arrivare in produzione. Scout controlla le regressioni di vulnerabilità e le violazioni delle policy, così il tuo team intercetta i problemi di sicurezza durante la build invece che dopo la distribuzione.

Quali sono le principali differenze tra Docker Scout e altri strumenti di scansione come Trivy o Snyk?

Docker Scout è integrato in Docker e non richiede un’installazione separata, risultando la scelta più semplice per i team che già usano Docker Desktop e Docker Hub. Trivy è uno scanner open-source che funziona in modo indipendente e ovunque, senza richiedere account Docker o integrazioni. Snyk offre una copertura più ampia su container, codice sorgente e infrastruttura con suggerimenti di correzione automatizzati, ma richiede una sottoscrizione e una configurazione separata.

Come si integra Docker Scout con sistemi di terze parti come GitHub o JFrog Artifactory?

Docker Scout può essere richiamato da GitHub Actions, GitLab CI o altri strumenti di pipeline usando i comandi della Docker CLI. Esegui docker scout cves come parte del tuo workflow di build, quindi analizzi i risultati per decidere se far passare o fallire la pipeline. Per registry come JFrog Artifactory, puoi analizzare le immagini dopo il push riferendole in remoto, anche se l’integrazione dipende dalla configurazione specifica del tuo registry e dall’autenticazione.

Docker Scout può essere usato per monitorare in tempo reale la sicurezza dei container?

No, Docker Scout analizza solo immagini container statiche, non i container in esecuzione. Esamina ciò che è all’interno delle immagini costruite prima o dopo la distribuzione, ma non monitora il comportamento in runtime come l’esecuzione dei processi, l’attività di rete o attacchi di escalation dei privilegi. Per il monitoraggio della sicurezza in tempo reale servono strumenti dedicati come Falco o Sysdig, che osservano il comportamento dei container in produzione.

Quali sono i vantaggi di usare Docker Scout per gestire la sicurezza della supply chain software?

Docker Scout genera Software Bill of Materials (SBOM) che documentano ogni pacchetto e dipendenza nelle tue immagini, offrendoti visibilità completa sulla supply chain software. Questo aiuta con i requisiti di conformità, la risposta agli incidenti e il tracciamento dei sistemi interessati quando vengono divulgate nuove vulnerabilità. Scout mostra anche l’origine delle vulnerabilità — immagini base, dipendenze applicative o librerie di sistema — così puoi rintracciare i problemi di sicurezza alla fonte e correggerli al livello giusto.

Argomenti

Correlato