Dipendenze
SAST vs SCA
Il SAST trova i difetti nel codice scritto dal Suo team. La SCA trova i rischi noti nel codice da cui il Suo team dipende. Esaminano codice diverso e intercettano problemi diversi, quindi nessuno dei due sostituisce l'altro.
Aggiornato il
La differenza in sintesi
| SAST | SCA | |
|---|---|---|
| Sta per | Static application security testing | Software composition analysis |
| Esamina | Il Suo codice sorgente | Componenti open source e di terze parti |
| Trova | Injection, gestione non sicura dell'input, pattern insicuri | Vulnerabilità note, problemi di licenza, pacchetti obsoleti |
| Si basa su | Regole o modelli di come appare il codice difettoso | Database di advisory pubblicati |
| Un risultato compare quando | Il Suo codice cambia | Una dipendenza cambia o viene pubblicato un nuovo advisory |
| Rumore tipico | Falsi positivi su codice in realtà sicuro | Corrispondenze reali che non riguardano il modo in cui usa il pacchetto |
| Correzione | Modificare il Suo codice | Aggiornare o sostituire il componente |
Che cosa fa il SAST
Uno strumento SAST legge il codice sorgente senza eseguirlo e segue il percorso dei dati al suo interno. Se un input dell'utente raggiunge una query di database senza essere sanitizzato, riporta il file e la riga. Poiché lavora sul Suo codice, può trovare difetti che nessuno ha mai pubblicato. È anche la fonte delle lamentele sui falsi positivi, perché ragiona su ciò che il codice potrebbe fare, non su ciò che fa.
Che cosa fa la SCA
Una scansione SCA identifica i componenti di un progetto e li cerca nei dati su vulnerabilità e licenze. Non analizza la Sua logica. Sa che una versione ha un difetto pubblicato, quindi i suoi risultati di solito sono fattuali, ma dice meno sul fatto che quel difetto La riguardi, a meno che lo strumento non aggiunga l'analisi di raggiungibilità. Veda che cos'è la software composition analysis per il quadro completo.
Perché servono entrambi
I due tipi di problema sono indipendenti. Una codebase senza risultati SAST può comunque distribuire una dipendenza vulnerabile, e un albero delle dipendenze pulito non dice nulla di una SQL injection nel Suo handler.
Anche i tempi sono diversi. Un risultato SAST compare quando qualcuno modifica il codice, quindi un controllo sulle pull request ne intercetta la maggior parte. Un risultato SCA può comparire su una release distribuita mesi fa, il giorno in cui viene pubblicato un nuovo advisory, senza alcun commit che faccia scattare qualcosa. La SCA ha quindi bisogno di qualcosa che continui a controllare ciò che è stato distribuito.
Dove si colloca il DAST
Il dynamic application security testing attacca dall'esterno un'applicazione in esecuzione, come farebbe un vero attaccante. Trova ciò che emerge solo in fase di esecuzione, come i problemi di autenticazione e configurazione, senza leggere il codice.
| SAST | SCA | DAST | |
|---|---|---|---|
| Richiede | Codice sorgente | Manifest, immagini o un registro della build | Un'applicazione in esecuzione |
| Si esegue | Sulle pull request | Sulle pull request, nelle build e dopo il rilascio | Su un ambiente di test |
| Dà il meglio su | Difetti nel Suo codice | Rischi noti nelle dipendenze | Difetti di runtime e di configurazione |
Da quale conviene iniziare?
Per la maggior parte dei team, dalla SCA. Si configura rapidamente, viene eseguita in un tempo che va da pochi secondi a qualche minuto e copre la parte più ampia di ciò che Lei distribuisce, perché un'applicazione moderna è fatta in gran parte di dipendenze. Aggiunga poi il SAST, sulle pull request, e lo regoli sulle regole che contano per il Suo stack. Aggiunga il DAST quando dispone di un ambiente di test stabile su cui puntarlo.
Meglio una piattaforma o più strumenti?
Piattaforme come Snyk, Checkmarx e GitHub Advanced Security uniscono SAST e SCA, il che significa un solo contratto e un solo workflow. Strumenti separati possono essere più forti in ciascuna area. Conta di più l'input: entrambi i tipi di scanner lavorano su ciò che è dichiarato o scritto, e nessuno dei due vede ciò che la build ha effettivamente scaricato.
Ciò che nessuno dei due copre
SAST e SCA leggono entrambi dei file. Nessuno dei due osserva la build, quindi il codice scaricato da un hook di installazione, i pacchetti ripristinati dalle cache CI e gli stessi strumenti di build possono restare fuori dalla loro vista. È di questa lacuna che si occupa la sicurezza della software supply chain.
CRACI copre quella parte e lascia la scansione del codice agli strumenti creati per questo. Non esegue SAST né scansione dei secret, per scelta progettuale, e molti ottimi strumenti SAST funzionano al suo fianco. È un runner GitHub Actions che registra in una SBOM ciò che ogni job scarica e continua a confrontare le SBOM di ciò che è stato distribuito con le nuove vulnerabilità. Veda i migliori strumenti SCA e dove si colloca CRACI accanto a loro.
SAST vs SCA: domande frequenti
Qual è la differenza tra SAST e SCA?
Il SAST analizza il codice scritto dal Suo team alla ricerca di difetti come l'injection. La SCA analizza i componenti open source e di terze parti da cui Lei dipende alla ricerca di vulnerabilità note e problemi di licenza.
La SCA sostituisce il SAST?
No. Esaminano codice diverso. La SCA non troverà un difetto nella Sua logica e il SAST non Le dirà che una dipendenza ha una vulnerabilità pubblicata.
Qual è la differenza tra SAST, DAST e SCA?
Il SAST legge il Suo codice sorgente. La SCA controlla le Sue dipendenze. Il DAST testa dall'esterno un'applicazione in esecuzione. Ognuno trova problemi che gli altri due non vedono.
Snyk è SAST o SCA?
Entrambi. Snyk è nato con la scansione delle dipendenze open source e offre anche SAST, oltre alla scansione di container e infrastructure as code.
SonarQube è SAST o SCA?
SonarQube è noto soprattutto per l'analisi statica del Suo codice, cioè SAST. Verifichi nelle edizioni attuali che cos'altro includono.
Quale viene prima, SAST o SCA?
Di solito la SCA dà risultati più rapidi, perché è semplice da configurare e copre la parte più ampia di ciò che Lei distribuisce. Il SAST richiede più regolazioni per contenere i falsi positivi.
Copra ciò che i Suoi scanner non vedono
Mantenga i Suoi strumenti SAST e SCA e aggiunga un registro di ciò che ogni build GitHub Actions ha effettivamente scaricato.
Prenota una demo