0Pricing
Cyber Security Academy · Lezione

Proteggere le pipeline CI/CD

Rafforzare il percorso di compilazione e rilascio.

Proteggere le pipeline CI/CD è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 4 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 Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

La pipeline come obiettivo

Una pipeline CI/CD ha accesso privilegiato al codice sorgente, ai segreti e alla produzione. Comprometterla consente a un aggressore di inserire backdoor in ogni build futura, aggirando la revisione del codice. È uno dei bersagli di maggior valore nell'ingegneria moderna.

Tratti la pipeline come un'infrastruttura di produzione: merita lo stesso rafforzamento, monitoraggio e rigore in materia di minimo privilegio dei sistemi in esecuzione.

Input non attendibili nelle build

Le pipeline vengono eseguite automaticamente in seguito a eventi che non controllate completamente: pull request, tag e contributi esterni. Una PR dannosa può tentare di modificare la build stessa.

  • Una definizione della pipeline compromessa in un fork può tentare di esfiltrare segreti
  • Il codice non attendibile potrebbe essere eseguito con gli stessi permessi delle build attendibili

Separi i workflow attendibili da quelli non attendibili: non esponga i segreti ai job attivati da pull request esterne.

Fissare actions e immagini

I passaggi della pipeline recuperano spesso actions di terze parti o immagini di container tramite tag mutabili. Se quel tag viene riassegnato a contenuti dannosi, la build viene compromessa. Fissi gli elementi tramite digest immutabili.

# BAD: mutable tag can be moved under you
uses: some/action@v3

# GOOD: pinned to an immutable commit SHA
uses: some/action@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0

# pin container steps by digest too
image: build-tools@sha256:9f86d081884c7d659a2feaa0c55ad015...

Minimo privilegio per i token

I token predefiniti della pipeline hanno spesso permessi eccessivi, concedendo l'accesso in scrittura all'intero repository o registry. Ne limiti l'ambito esattamente a ciò di cui ogni job ha bisogno.

# scope the default token to read-only, grant more only where needed
permissions:
  contents: read

jobs:
  publish:
    permissions:
      contents: read
      packages: write   # only this job can publish

Gestione corretta dei segreti

I segreti incorporati direttamente nel codice o condivisi senza limitazioni sono una delle principali vie di fuga. Applichi una gestione rigorosa:

  • Conservi i segreti in un secrets manager o nell'archivio dei segreti della CI, mai nel codice
  • Preferisca la federazione OIDC con credenziali a breve durata alle chiavi statiche del cloud
  • Mascheri i segreti nei log e ne blocchi l'eco
  • Limiti ogni segreto ai job e agli ambienti minimi necessari

La federazione OIDC consente alla pipeline di scambiare un'identità disponibile durante la build con credenziali cloud a breve durata, eliminando del tutto le chiavi a lunga durata.

Runner effimeri e isolati

Un runner di build riutilizzato può trasportare malware o segreti fuoriusciti da un job a quello successivo. I runner effimeri vengono creati da zero per ogni job e distrutti al termine, così nulla persiste.

  • Un ambiente pulito per ogni build, poi eliminato
  • Nessuno stato condiviso tra job attendibili e non attendibili
  • Traffico di rete in uscita limitato agli endpoint necessari

Questo supporta direttamente gli obiettivi di isolamento SLSA L3.

Proteggere il branch sorgente

La fiducia nella pipeline inizia nel controllo del codice sorgente. Se chiunque può eseguire il push sul branch di rilascio, la firma e la scansione a valle diventano inutili.

  • Richiedere la revisione della pull request prima del merge
  • Imporre commit firmati sui branch protetti
  • Richiedere il superamento dei controlli di stato, come test e scansioni
  • Vietare il force-push e il push diretto su main
# require signed commits on a branch
git config commit.gpgsign true

# verify a commit signature locally
git verify-commit HEAD

Eseguire la scansione nella pipeline

Inserisca direttamente nella CI i controlli di sicurezza, così i problemi interrompono la build invece di arrivare in produzione.

# secret leak detection
gitleaks detect --source . --redact

# dependency vulnerabilities
osv-scanner --lockfile=package-lock.json

# IaC and config misconfig
trivy config .

# fail the job on critical findings (non-zero exit stops CI)

Controllo a due persone per i rilasci

Le azioni ad alto impatto meritano un controllo umano. I deploy in produzione e le modifiche alle credenziali dovrebbero richiedere l'approvazione di una persona diversa dall'autore.

  • Le regole di protezione dell'ambiente richiedono un revisore prima del deploy
  • Separare l'identità di build da quella di deploy
  • Nessun singolo attore può sia creare il codice sia inviarlo in produzione senza revisione

Questo limita sia il rischio interno sia il raggio d'azione di un singolo account compromesso.

Audit e prove di manomissione

Deve poter ricostruire ciò che ha fatto la pipeline. Centralizzi e protegga i relativi log.

  • Invii i log CI a un archivio append-only con accesso controllato
  • Registri chi ha modificato le definizioni della pipeline e quando
  • Produca provenienza firmata, così gli artefatti possono essere ricondotti a una build specifica
  • Segnali le anomalie: un nuovo runner self-hosted, un accesso imprevisto ai segreti o una modifica alla configurazione al di fuori della revisione

Checklist per il rafforzamento della pipeline

Una pipeline difendibile combina controlli sul codice sorgente, sulla build e sul rilascio:

  • Protezione dei branch, commit sottoposti a revisione e firmati
  • Actions e immagini fissate tramite digest
  • Token OIDC a breve durata con minimo privilegio
  • Runner effimeri e isolati
  • Scansione di segreti, dipendenze e configurazione nella pipeline
  • Approvazione a due persone per i rilasci
  • Artefatti firmati, SBOM e provenienza con registrazione di audit

Verifica rapida: permessi dei token

Decida il controllo appropriato per un token di build privilegiato.

Riepilogo: protezione delle pipeline CI/CD

Ha imparato a rafforzare l'intero percorso di build e rilascio.

  • Tratti la pipeline come un sistema di produzione: può inserire backdoor in ogni build futura
  • Isoli le build di PR non attendibili dai segreti
  • Fissi actions e immagini tramite digest; utilizzi token OIDC a breve durata con minimo privilegio
  • Utilizzi runner effimeri e isolati e protegga il branch sorgente
  • Esegua scansioni nella pipeline, richieda l'approvazione a due persone per i rilasci e conservi log di audit a prova di manomissione

Corso completato: ora può proteggere la catena di fornitura del software da un'estremità all'altra.

Domande Frequenti

La lezione «Proteggere le pipeline CI/CD» è gratuita?

Sì — il testo completo di «Proteggere le pipeline 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 Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Proteggere le pipeline CI/CD»?

Rafforzare il percorso di compilazione e rilascio. Eserciti Cyber Security Academy 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 Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Proteggere le pipeline 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 Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy 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

  1. Minacce alla supply chain
  2. Software Bill of Materials (SBOM)
  3. Firma delle dipendenze e degli artefatti
  4. Proteggere le pipeline CI/CD
← Torna a Cyber Security Academy