Procedure consigliate per la sicurezza in CI/CD
Comprenda le vulnerabilità di sicurezza comuni nelle pipeline e le pratiche consigliate per ridurre i rischi durante tutto il ciclo di sviluppo.
Procedure consigliate per la sicurezza in CI/CD è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Perché la sicurezza CI/CD è importante
Nello sviluppo software moderno, le pipeline CI/CD sono fondamentali. Automatizzano la compilazione, i test e il deploy del codice.
Ma a grandi poteri corrispondono grandi responsabilità! Proteggere queste pipeline è essenziale per difendere il codice, i dati e l'infrastruttura da attacchi dannosi o vulnerabilità accidentali.
Identificare le vulnerabilità della pipeline
Prima di proteggere una pipeline, è necessario capire da cosa difenderla. Le pipeline CI/CD possono essere vulnerabili a diversi tipi di attacco:
- Credenziali compromesse: chiavi API o token rubati.
- Dipendenze dannose: uso di librerie con vulnerabilità di sicurezza note.
- Configurazioni non sicure: controlli degli accessi o passaggi di build configurati in modo errato.
- Attacchi alla supply chain: manomissione del processo di build stesso.
Applicare il principio del privilegio minimo
Il Principio del privilegio minimo (PoLP) consiste nell'assegnare agli utenti e ai processi automatizzati, come i job CI/CD, solo le autorizzazioni minime necessarie per svolgere un'attività, senza concederne altre.
In questo modo si limita il potenziale danno nel caso in cui una credenziale o un job vengano compromessi. Per GitHub Actions, definisca autorizzazioni specifiche per ogni job.
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read # Only read access to repo code
packages: write # Only write to package registry
id-token: write # Needed for OIDC authentication
steps:
- uses: actions/checkout@v4
- run: echo "Build logic here"Proteggere il codice e le dipendenze
Il codice sorgente è il cuore dell'applicazione. Si assicuri che sia protetto fin dall'inizio.
- Revisioni del codice: le revisioni tra pari consentono di individuare potenziali difetti di sicurezza.
- Analisi statica: utilizzi strumenti per cercare vulnerabilità nel codice, anche se il SAST dedicato sarà trattato in una lezione successiva.
- Scansione delle dipendenze: verifichi regolarmente la presenza di vulnerabilità note nelle librerie di terze parti.
Gestire le dipendenze di terze parti
La maggior parte dei progetti si basa su librerie open source. Sebbene siano potenti, possono introdurre vulnerabilità se non vengono gestite con attenzione.
- Utilizzare uno scanner delle dipendenze: integri strumenti come Dependabot per verificare automaticamente la presenza di vulnerabilità note.
- Fissare le dipendenze: specifichi versioni esatte delle dipendenze per evitare modifiche impreviste.
- Aggiornamenti regolari: mantenga aggiornate le dipendenze per usufruire delle patch di sicurezza.
Rendere sicuro l'ambiente di build
L'ambiente in cui il codice viene compilato e testato dovrebbe essere il più sicuro possibile. Lo si può considerare una camera bianca per il software.
- Runner effimeri: utilizzi ambienti nuovi e isolati per ogni job. I runner ospitati da GitHub sono effimeri per impostazione predefinita.
- Strumenti essenziali: installi solo gli strumenti necessari per ridurre la superficie di attacco.
- Immagini di base sicure: se utilizza container, scelga immagini di base affidabili e protette.
Non codificare mai i segreti
Le informazioni sensibili, come chiavi API, credenziali del database o token privati, non devono MAI essere codificate direttamente nel repository o nei file del workflow.
Utilizzi sempre un sistema sicuro di gestione dei segreti. In questo modo i dati sensibili restano fuori dal controllo versione e vengono crittografati.
Convalidare gli input del workflow
Se il workflow accetta input esterni, ad esempio da un trigger manuale o da un commento su una pull request, è necessario convalidarli e sanificarli.
Gli input non attendibili possono essere un vettore per attacchi di injection, proprio come nelle applicazioni web che convalidano gli input degli utenti.
on:
workflow_dispatch:
inputs:
deploy_env:
description: 'Environment to deploy to (e.g., staging, production)'
required: true
type: choice
options:
- 'staging'
- 'production'
version_tag:
description: 'Git tag for the release version'
required: true
type: stringRegistrare e monitorare l'attività della pipeline
La visibilità sull'attività della pipeline è un importante controllo di sicurezza. Una buona attività di logging aiuta a rilevare e gestire rapidamente i comportamenti sospetti.
- Logging completo: registri tutti gli eventi e le azioni significativi all'interno dei workflow.
- Monitoraggio delle anomalie: cerchi controlli di sicurezza non riusciti, tentativi di accesso non autorizzati o durate di build insolite.
- Avvisi: configuri avvisi per gli eventi di sicurezza critici.
Verificare la propria comprensione
Mettiamo alla prova le sue conoscenze sulle best practice per la sicurezza CI/CD.
Riepilogo della lezione e prossimi passi
Congratulazioni! Ha appreso le best practice essenziali per la sicurezza delle pipeline CI/CD.
- Applichi il principio del privilegio minimo.
- Protegga il codice sorgente e gestisca le dipendenze.
- Renda sicuri gli ambienti di build.
- Non codifichi mai i segreti.
- Convalidi tutti gli input dei workflow.
- Implementi logging e monitoraggio affidabili.
Queste pratiche costituiscono una solida base per un ciclo di vita DevOps sicuro. Nelle prossime lezioni approfondiremo strumenti e tecniche specifici, come GitHub Secrets e SAST.
Domande Frequenti
La lezione «Procedure consigliate per la sicurezza in CI/CD» è gratuita?
Sì — il testo completo di «Procedure consigliate per la sicurezza in CI/CD» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Procedure consigliate per la sicurezza in CI/CD»?
Comprenda le vulnerabilità di sicurezza comuni nelle pipeline e le pratiche consigliate per ridurre i rischi durante tutto il ciclo di sviluppo. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Procedure consigliate per la sicurezza in CI/CD»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Procedure consigliate per la sicurezza in CI/CD
- Gestione dei segreti con GitHub
- Static Application Security Testing (SAST)
- Sicurezza delle dipendenze e della supply chain (SCA)