Analisi della composizione del software (SCA)
Esegua la scansione delle dipendenze alla ricerca di CVE note con OWASP Dependency-Check, Snyk o GitHub Dependabot.
Analisi della composizione del software (SCA) è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 2 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.
Che cos'è SCA?
Software Composition Analysis (SCA) identifica le dipendenze open source del progetto e le verifica rispetto ai database delle vulnerabilità (NVD, CVE, GitHub Advisory). Rileva anche i problemi di conformità delle licenze.
Perché le dipendenze di terze parti sono rischiose
Le applicazioni moderne utilizzano centinaia di librerie open source. Una sola libreria vulnerabile può esporre l'intera applicazione. La vulnerabilità Log4Shell del 2021 (CVE-2021-44228) ha interessato milioni di applicazioni Java a causa di una singola libreria di logging ampiamente utilizzata.
Strumenti SCA
Strumenti SCA più diffusi:
# npm audit (Node.js):
npm audit
npm audit fix
# pip-audit (Python):
pip-audit
# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./
# Snyk:
snyk test
snyk monitorDependabot e Renovate
Strumenti per l'aggiornamento automatico delle dipendenze:
- Dependabot (GitHub) — apre automaticamente PR per aggiornare le dipendenze vulnerabili
- Renovate — più configurabile e compatibile con un numero maggiore di registry
Abilitarli in ogni repository: riducono il lavoro manuale necessario per tenere traccia degli aggiornamenti delle dipendenze.
Comprendere la gravità delle CVE
Non tutte le vulnerabilità presenti in una dipendenza sono sfruttabili nel proprio contesto. Valutare:
- Il percorso di codice vulnerabile è raggiungibile nell'utilizzo previsto?
- L'applicazione espone questa funzionalità?
- Un WAF o un altro controllo ne riduce il rischio?
Il punteggio CVSS è un punto di partenza: il contesto determina il rischio effettivo.
Dipendenze transitive
Le dipendenze dirette hanno a loro volta altre dipendenze (transitive). Una vulnerabilità presente in una libreria che non si è mai sentita nominare può comunque avere ripercussioni sul progetto. Gli strumenti SCA mappano l'intero albero delle dipendenze. Eseguire npm ls o pip show -r requirements.txt per analizzare l'albero.
npm ls --all | grep "vulnerable-pkg"
pip show requests | grep RequiresSoftware Bill of Materials (SBOM)
Un SBOM è un inventario formale di tutti i componenti di un prodotto software. L'Executive Order 14028 (USA) impone gli SBOM per il software venduto al governo degli Stati Uniti. Formati: SPDX, CycloneDX.
# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.jsonConformità delle licenze
SCA verifica anche le licenze. Le dipendenze con licenza GPL incluse in software commerciali possono richiedere la pubblicazione del codice come open source. LGPL, MIT e Apache 2.0 sono generalmente permissive. I team legali devono avere visibilità sulle licenze delle dipendenze: SCA la fornisce automaticamente.
Attacchi alla supply chain
Gli attaccanti inseriscono codice malevolo nei pacchetti open source più diffusi:
- Typosquatting:
reqeustsinvece direquests - Account di maintainer compromessi (come nel caso di SolarWinds)
- Dependency confusion: nomi di pacchetti privati pubblicati per errore in un registry pubblico
SCA con verifica dell'integrità (checksum, file di lock) riduce questo rischio.
File di lock
I file di lock (package-lock.json, Pipfile.lock) fissano le versioni esatte e verificano i checksum. Eseguire il commit dei file di lock nel controllo del codice sorgente. Non usare mai npm install --legacy-peer-deps per ignorare i controlli dei file di lock nelle build di produzione.
SCA nella pipeline CI/CD
Integrare SCA come gate CI obbligatorio:
# GitHub Actions example:
- name: Run npm audit
run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter postureVerifica rapida: SCA
Qual è lo scopo principale della Software Composition Analysis (SCA)?
Riepilogo della lezione
SCA analizza le dipendenze del progetto alla ricerca di CVE note, problemi di licenza e rischi per la supply chain. È fondamentale considerare le dipendenze transitive: una vulnerabilità in una libreria usata da un'altra libreria ha comunque ripercussioni sul progetto. Abilitare Dependabot/Renovate per gli aggiornamenti automatici. Generare SBOM (SPDX/CycloneDX) per avere visibilità sulla supply chain. I file di lock fissano le versioni e verificano i checksum. Integrare SCA come gate CI con soglie di gravità.
Domande Frequenti
La lezione «Analisi della composizione del software (SCA)» è gratuita?
Sì — il testo completo di «Analisi della composizione del software (SCA)» è 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 «Analisi della composizione del software (SCA)»?
Esegua la scansione delle dipendenze alla ricerca di CVE note con OWASP Dependency-Check, Snyk o GitHub Dependabot. 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 2 di 4.
Quanto tempo richiede la lezione «Analisi della composizione del software (SCA)»?
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
- SAST e DAST nelle pipeline CI/CD
- Analisi della composizione del software (SCA)
- Scansione dei segreti e credenziali hardcoded
- Security Champion e threat modeling