
Che cos'è GitLab Container Scanning?
Rafforzate la sicurezza e la conformità aziendale con GitLab Container Scanning, rilevando vulnerabilità e malware nelle immagini dei container prima del deployment. Automatizzate la scansione, riducete i rischi e proteggete la catena di fornitura del software con questo potente strumento.

GitLab Container Scanning è uno strumento essenziale per preservare la sicurezza e l'integrità delle applicazioni containerizzate. Conoscere e usare questa tecnica diventa ancora più importante man mano che le organizzazioni adottano la containerizzazione per il deployment del software.
Questo articolo approfondisce GitLab Container Scanning, il suo funzionamento, i formati di container supportati e il modo in cui le best practice e gli esempi concreti ne facilitano la configurazione nei progetti. Evidenziando le best practice, questa guida vi aiuta a comprendere GitLab Container Scanning per mantenere sicuri i processi di sviluppo senza interrompere il flusso di lavoro.

Comprendere GitLab Container Scanning
Comprendere GitLab Container Scanning è fondamentale per chi vuole proteggere le applicazioni containerizzate con GitLab o con altre piattaforme di containerizzazione come Docker. GitLab Container Scanning verifica la sicurezza di ogni componente del software alla ricerca di vulnerabilità sfruttabili dagli aggressori – come un controllo antivirus dei suoi elementi costitutivi!
La scansione esamina attentamente il software nei container per rilevare problemi o potenziali rischi. È un passaggio cruciale nello sviluppo del software moderno; i container riuniscono spesso componenti provenienti da fonti diverse, che devono rispettare gli standard di sicurezza per preservare l'integrità dell'applicazione.
GitLab Container Scanning offre una protezione preziosa alle applicazioni containerizzate durante lo sviluppo. Individuare tempestivamente le vulnerabilità mantiene sicuri i sistemi e rassicura sviluppatori e stakeholder.
Come funziona GitLab Container Scanning?
GitLab Container Scanning identifica e risolve automaticamente le vulnerabilità nelle immagini dei container, così potete affrontarle in modo rapido e affidabile. Ecco come funziona:
GitLab Container Scanning si integra facilmente nella pipeline CI/CD, rendendo la scansione parte integrante di ogni build e push, anziché un evento isolato. I controlli di sicurezza diventano così una componente continua dello sviluppo, non un'attività da svolgere una sola volta.
Uso dei database delle vulnerabilità
Lo strumento confronta i componenti con i database delle vulnerabilità note per rilevare quelle presenti nei pacchetti software o nelle librerie usati nei container. In questo modo individua facilmente le minacce note che potrebbero essere presenti.
Generazione di un report
Al termine, GitLab Container Scanning genera un report completo che elenca le vulnerabilità rilevate e le relative categorie di gravità; suggerisce inoltre correzioni o strategie di mitigazione dove necessario.
Automazione delle risposte
GitLab Container Scanning vi offre la possibilità di configurare risposte automatiche; queste possono includere la creazione di segnalazioni per i team di sviluppo o persino il blocco della pipeline CI/CD se vengono rilevate vulnerabilità critiche, per impedire che codice non sicuro raggiunga la produzione.
Correzione e monitoraggio continuo
Il nostro strumento di monitoraggio continuo supporta la correzione costante scansionando ogni aggiornamento dei container, verificando automaticamente le vulnerabilità che potrebbero emergere con le modifiche e mantenendo la protezione contro quelle nuove nel tempo.

Guida al mercato CNAPP
La guida di mercato Gartner per le piattaforme di protezione delle applicazioni cloud-native fornisce informazioni chiave sullo stato del mercato delle CNAPP.
Formati di container supportati da GitLab
Quando parliamo del supporto di GitLab Container Scanning per determinati formati di container, ci riferiamo alla loro struttura specifica e all'organizzazione dei dati al loro interno. Gli strumenti di scansione Trivy e Grype supportano numerose distribuzioni Linux, così le vulnerabilità possono essere individuate rapidamente in diversi ambienti.
Strumenti di scansione open source:
- Trivy (uno scanner open source delle vulnerabilità per container e sistemi operativi): Trivy è uno scanner open source delle vulnerabilità consolidato, progettato specificamente per container e sistemi operativi, che offre scansioni leggere ma approfondite per individuare vulnerabilità in numerose distribuzioni Linux.
- Grype: Grype fornisce dati accurati sulle vulnerabilità nelle immagini dei container. Come strumento di analisi, affianca Trivy esaminando a fondo le minacce alla sicurezza e fornendo dati precisi e utilizzabili sulle vulnerabilità.
Distribuzioni Linux supportate
È fondamentale distinguere tra formati di container e distribuzioni. I container contengono dati, mentre le distribuzioni sono diverse varianti del sistema operativo Linux supportate dagli strumenti Trivy e Grype di GitLab. GitLab supporta un'ampia gamma di distribuzioni; ecco una breve panoramica:
- Alma Linux: scansionata con Trivy
- Alpine Linux: supportata sia da Grype sia da Trivy
- Amazon Linux: supportata sia da Grype sia da Trivy
- BusyBox: scansionata con Grype
- CentOS: supportata sia da Grype sia da Trivy
- CBL-Mariner: scansionata con Trivy
- Debian: supportata sia da Grype sia da Trivy
- Distroless: supportata sia da Grype sia da Trivy
- Oracle Linux: supportata sia da Grype sia da Trivy
- Photon OS: scansionata con Trivy
- Red Hat (RHEL): supportata sia da Grype sia da Trivy
- Rocky Linux: scansionata con Trivy
- SUSE: scansionata con Trivy
- Ubuntu: supportata sia da Grype sia da Trivy
L'importanza del supporto a un'ampia gamma di distribuzioni
In GitLab Container Scanning, sappiamo che il supporto di un'ampia gamma di distribuzioni diventa sempre più importante man mano che le applicazioni containerizzate si diffondono tra gli sviluppatori, che spesso scelgono distribuzioni Linux diverse in base a prestazioni, sicurezza, compatibilità o preferenze personali. Supportando più distribuzioni contemporaneamente, GitLab Container Scanning garantisce che gli sviluppatori possano continuare a proteggere le applicazioni indipendentemente dall'ambiente scelto – rafforzando ulteriormente il nostro impegno a offrire una protezione completa per i workload containerizzati.
Come configurare GitLab per la scansione dei container?
Configurare GitLab per la scansione dei container è un processo efficiente che automatizza la ricerca delle vulnerabilità nelle vostre applicazioni containerizzate. Ecco i passaggi principali:
1. Attivare la scansione dei container tramite una merge request automatica
GitLab 14.9 rende semplice e rapida l'attivazione della scansione dei container tramite una merge request automatica; ecco come:
- Accedete al progetto desiderato.
- Andate su Secure > Security Configuration.
- Nella riga Container Scanning, selezionate Configure with a merge request.
Una volta avviato, il processo genera automaticamente una merge request con le modifiche necessarie per attivare la scansione dei container. Esaminatela prima di eseguire il merge per completare la configurazione.
2. Configurazione tramite il file .gitlab-ci.yml:
Per configurare manualmente la scansione dei container, aggiungete il template pertinente al file .gitlab-ci.yml:
include: - template: Security/Container-Scanning.gitlab-ci.ymlQuesto template aggiunge alla pipeline CI/CD un job container_scanning che analizza le immagini Docker alla ricerca di vulnerabilità e salva i risultati come artefatto del report di scansione dei container.
Ecco un esempio di file .gitlab-ci.yml che crea e analizza le immagini Docker.
include: - template: Jobs/Build.gitlab-ci.yml - template: Security/Container-Scanning.gitlab-ci.yml container_scanning: variables: CS_DEFAULT_BRANCH_IMAGE: $CI_REGISTRY_IMAGE/$CI_DEFAULT_BRANCH:$CI_COMMIT_SHA3. Personalizzare le impostazioni di scansione dei container
GitLab vi permette di adattare la scansione dei container alle vostre esigenze specifiche: potete ottenere output più dettagliati, autenticarvi presso un registry specifico e ottenere risultati più granulari.
Per attivare un output dettagliato, ad esempio, modificate il file .gitlab-ci.yml come segue:
include: - template: Security/Container-Scanning.gitlab-ci.yml variables: SECURE_LOG_LEVEL: 'debug'4. Analizzare un'immagine in un registry remoto:
Potete anche analizzare immagini presenti in un registry diverso da quello del progetto usando la seguente configurazione:
include: - template: Security/Container-Scanning.gitlab-ci.yml container_scanning: variables: CS_IMAGE: example.com/user/image:tagConfigurare GitLab Container Scanning è intuitivo, sia tramite merge request automatiche sia manualmente. Grazie ai suoi potenti strumenti di scansione, GitLab integra i controlli di sicurezza nel flusso di lavoro degli sviluppatori e diventa un elemento essenziale dello sviluppo software moderno e sicuro.
Best practice per GitLab Container Scanning
1. Aggiornate regolarmente gli strumenti di scansione
È fondamentale mantenere aggiornati strumenti di scansione come Trivy e Grype. In questo modo rilevano le nuove vulnerabilità non appena emergono e restano compatibili con le modifiche apportate alle distribuzioni supportate. Gli aggiornamenti regolari garantiscono entrambi i risultati.
2. Integrate la scansione nelle prime fasi dello sviluppo
Prima integrate la scansione dei container nel ciclo di sviluppo, prima individuate e correggete le vulnerabilità. Inserite GitLab Container Scanning nella vostra integrazione continua (CI) per eseguire automaticamente una scansione a ogni push del codice – integrandola nel flusso di lavoro e accelerando l'individuazione e la risoluzione delle vulnerabilità.
3. Adattate le scansioni alle vostre esigenze
Non tutti i progetti richiedono scansioni identiche. Adattatele ai requisiti del progetto – scegliendo il livello di dettaglio dell'output, i registry da analizzare o le variabili da impostare – per renderle più rapide ed efficienti. Usate le opzioni di personalizzazione del file .gitlab-ci.yml per perfezionare le scansioni.
4. Esaminate regolarmente i report di scansione e intervenite
Eseguire le scansioni non basta – occorre esaminare i risultati e intervenire tempestivamente. La revisione regolare degli artefatti dei report di Container Scanning, unita a una correzione sistematica, assicura che le vulnerabilità siano individuate e affrontate rapidamente. Integrare il flusso di correzione nei processi di sviluppo esistenti può agevolare questa attività essenziale.
Flusso di correzione con GitLab Container Scanning
Il flusso di correzione di GitLab Container Scanning comprende diversi passaggi per individuare le vulnerabilità nelle immagini dei container e risolverle in modo efficiente e sistematico. Ecco un flusso di lavoro tipico:
- Individuare le vulnerabilità: GitLab offre la funzionalità Container Scanning e la scansione di sicurezza con Trivy o Grype; una volta individuate le vulnerabilità, questo passaggio genera un report dettagliato che le elenca tutte.
- Analizzare i risultati: In questo passaggio, esaminate a fondo i report di Container Scanning per conoscere la gravità, il tipo e l'origine delle vulnerabilità che richiedono attenzione immediata. Date priorità ai problemi più urgenti per risolverli subito.
- Stabilire le priorità di correzione: In base a questa valutazione, assegnate una priorità ai problemi. Le vulnerabilità che rappresentano una minaccia immediata per le applicazioni hanno generalmente la precedenza, ma considerate anche fattori come l'impatto e la facilità di sfruttamento.
- Definire un piano di correzione: Dopo aver stabilito le priorità, definite un piano efficace per correggere ogni vulnerabilità. Il piano comprende gli interventi necessari per mitigarle – ad esempio installare aggiornamenti, modificare le configurazioni o intervenire direttamente sul codice.
- Applicare le correzioni: Una volta definito il piano, applicate le correzioni tramite merge request di GitLab che modificano il codice, le impostazioni di configurazione o le dipendenze delle basi di codice interessate; la collaborazione tra sviluppatori, team di sicurezza e altre figure chiave è spesso essenziale per completare il processo.
- Verificare le correzioni: Dopo aver applicato le correzioni, eseguite ulteriori verifiche per assicurarvi che risolvano le vulnerabilità senza creare nuovi problemi. Una nuova scansione delle immagini dei container o test aggiuntivi possono confermare se gli interventi hanno eliminato le vulnerabilità o creato falle di sicurezza.
- Monitoraggio e miglioramento continuo: I flussi di lavoro per la correzione delle vulnerabilità richiedono tempo; monitoraggio, scansioni e revisioni continui ne garantiscono l'efficacia nel tempo. Un approccio iterativo ne assicura la sostenibilità a lungo termine.
Esempi pratici e casi d'uso
1. Settore bancario
La sicurezza delle applicazioni bancarie è fondamentale. I metodi tradizionali spesso non rilevano le vulnerabilità abbastanza rapidamente. Integrando GitLab Container Scanning nella pipeline di integrazione e distribuzione continue delle applicazioni bancarie, potete individuare e correggere le vulnerabilità in tempo reale. Rafforzate così la sicurezza e promuovete fiducia e conformità nel settore.
2. Settore sanitario
I sistemi sanitari gestiscono dati sensibili da proteggere secondo norme rigorose, ma i controlli manuali sono spesso complessi e soggetti a errori. Adottando GitLab Container Scanning per le valutazioni delle vulnerabilità e integrandolo nei processi di rendicontazione continua della conformità, le organizzazioni sanitarie possono proteggersi dalle violazioni e semplificare la rendicontazione.
3. Startup tecnologiche
Le startup tecnologiche devono spesso conciliare la rapidità dello sviluppo con il rispetto degli standard di sicurezza. GitLab Container Scanning integra questi due obiettivi: la scansione continua delle vulnerabilità nelle applicazioni containerizzate accelera i cicli di sviluppo senza compromettere la sicurezza, dando alle startup l'agilità per innovare e mantenere una solida postura di sicurezza.

Vedere SentinelOne in azione
Scoprite come la sicurezza del cloud basata sull'intelligenza artificiale può proteggere la vostra organizzazione con una demo individuale con un esperto dei prodotti SentinelOne.
Conclusione
GitLab Container Scanning è diventato una componente preziosa dello sviluppo moderno: offre alle organizzazioni un modo semplice per rilevare rapidamente e in modo affidabile le vulnerabilità nelle applicazioni containerizzate. Integrandolo nelle pipeline di sviluppo, le organizzazioni ottengono visibilità sulle vulnerabilità fin dalle prime fasi. Possono così incorporare la sicurezza nello sviluppo, ridurre i rischi e rafforzare la propria postura di sicurezza.
GitLab Container Scanning è parte integrante di una strategia DevSecOps efficace e favorisce il miglioramento continuo della sicurezza. Mantiene la sicurezza al centro dell'innovazione: dalla conformità normativa alla protezione dei dati dei clienti, fino ai cicli di sviluppo agili e alle diverse esigenze di sicurezza di settori e casi d'uso.
"Domande frequenti su GitLab Container Scanning
GitLab Container Scanning verifica la presenza di vulnerabilità nelle vostre immagini container durante la CI/CD. Usa scanner come Trivy per esaminare ogni livello, dai pacchetti del sistema operativo di base alle dipendenze dell'applicazione, prima che le immagini arrivino in produzione. Potete attivarlo includendo il template CI Container-Scanning di GitLab oppure tramite una merge request con un solo clic.
I risultati compaiono come artefatti JSON e nella scheda Security della pipeline, dove segnalano CVE rischiose e versioni del sistema operativo non più supportate.
Rileva le CVE note nell'immagine di base e nei pacchetti del sistema operativo. Se attivato, individua anche le vulnerabilità nelle librerie specifiche dei linguaggi, come i pacchetti Java o Python. Segnala inoltre i sistemi operativi che non ricevono più aggiornamenti di sicurezza. Lo scanner Trivy usa fonti come NVD, i registri di sicurezza delle distribuzioni e il database di avvisi di GitLab per identificare e classificare le vulnerabilità in base al punteggio CVSS e alla possibilità che vengano sfruttate.
Aggiungete il template integrato di GitLab al file .gitlab-ci.yml.
include:
- template: Jobs/Container-Scanning.gitlab-ci.yml
In alternativa, nel vostro progetto andate su Secure > Security configuration, fate clic su Configure with a merge request e completate la merge request. I job necessari verranno aggiunti alla pipeline. Se già create l'immagine Docker e la caricate nel registro del progetto, non serve altro codice
Al termine della pipeline, aprite Build > Pipelines, scegliete l'esecuzione e selezionate la scheda Security. Troverete la gravità di ogni vulnerabilità rilevata, il punteggio CVSS, la probabilità che venga sfruttata (EPSS) e le indicazioni per correggerla. Il report della scansione (gl-container-scanning-report.json) e il CycloneDX SBOM (gl-sbom-report.cdx.json) sono disponibili in Job Artifacts.
Nel piano Ultimate, vedete anche i risultati direttamente nelle merge request e un Vulnerability Report consolidato sul ramo predefinito.
Sì. Ogni voce relativa a una vulnerabilità include una Description che spiega il problema e il suo impatto, oltre ai passaggi Recommended remediation, come aggiornamenti dei pacchetti o modifiche alla configurazione. Nel piano Ultimate, GitLab può persino generare patch di correzione automatica: merge request che aggiornano il vostro Dockerfile o manifesto dei pacchetti alle versioni corrette.
Create un file vulnerability-allowlist.yml nella directory principale del repository. Elencate gli ID delle CVE che avete confermato come falsi positivi, a livello globale o per singola immagine. GitLab esclude quindi queste CVE dai report delle scansioni future e le contrassegna come “Approved” nel registro del job. La scheda Security resta così focalizzata sui rischi reali, senza nascondere problemi effettivi.



