TECHTARGET

SAST, DAST e SCA a confronto: le linee guida per i DevSecOps

SAST, DAST e SCA supportano i team DevSecOps nel loro lavoro di scrittura e protezione del codice. Gli esperti aiutano a capire le metodologie di riferimento e le opzioni open source tra cui scegliere.

Pubblicato il 22 Nov 2022

SAST DAST SCA COVER

SAST, DAST e SCA sono tre diversi strumenti che automatizzano i test i che servono a garantire la sicurezza della programmazione. Sulla modellazione delle minacce integrata nella progettazione di un’architettura software si è già iniziato a lavorare da tempo ma l’automazione dei test in fase di sviluppo ancora oggi è faticosamente complessa. Ogni applicazione deve essere rigorosamente testata per risolvere vulnerabilità ed exploit sia prima che dopo la sua messa in produzione.

In questo contesto gli exploit, in particolare, sono un degli aspetti più critici da affrontare.

Questa tipologia di script, virus, worm, porzione di dati o binario, infatti, sfrutta un bug o una vulnerabilità per creare comportamenti non previsti a livello software (ma anche a livello hardware) per ottenere l’accesso a sistemi informatici, acquisire privilegi amministrativi o sferrare attacchi Denial of Service (DoS e DDoS). SAST, DAST e SCA favoriscono il processo di visualizzazione delle vulnerabilità nel software dalla fase di progettazione fino al ciclo di vita dello sviluppo del software agevolando la sicurezza del software. DAST e SCA, nel dettaglio, risolvono anche il presidio degli exploit.

Come e perché SAST, DAST e SCA supportano un approccio DevSecOps

Per accelerare il processo di test della sicurezza del software, i team di sicurezza devono adottare una mentalità DevSecOps. Il che significa applicare le pratiche DevoOps per lavorare alla programmazione con un approccio incentrato sulla gestione dell’intero ciclo di vita applicativo, verificando in modalità continua anche gli aspetti di sicurezza. È così che, avvantaggiandosi di un sistema di validazione automatico di ultima generazione, i test DevSecOps possono semplificare notevolmente i risultati di qualità del codice, aiutando a intercettare e a risolvere per tempo le possibili debolezze insite nello sviluppo.

SAST, DAST e SCA: glossario di riferimento

SAST, DAST e SCA hanno funzioni differenti, riassunte nella seguente legenda:

Static Application Security Testing (SAST)

Utilizzato da oltre un decennio, il test statico della sicurezza è un programma progettato per analizzare il codice sorgente dell’applicazione e trovare falle o punti deboli della sicurezza che potrebbero diventare la porta d’ingresso per un hacker. Il SAST permette di correggere i difetti nel codice sorgente all’inizio del ciclo di vita dello sviluppo del software (SDLC – Software Development Life Cycle), prima del rilascio finale della app.

Dynamic application security testing (DAST)

Il test dinamico della sicurezza delle applicazioni è un programma utilizzato dagli sviluppatori per analizzare un’applicazione Web durante il runtime, identificando eventuali vulnerabilità e motivi di insicurezza. Utilizzando DAST, un tester esamina un’applicazione mentre è in funzione e tenta di attaccarla come farebbe un hacker. Gli strumenti DAST forniscono informazioni utili agli sviluppatori sul comportamento dell’app, consentendo loro di identificare dove un hacker potrebbe essere in grado di progettare un attacco, in modo da eliminare il rischio di minaccia.

Software Composition Analysis (SCA)

Per le organizzazioni che si affidano a software open source, per l’intera applicazione e per alcune parti, gli SCA sono utilizzati non solo per automatizzare l’identificazione delle vulnerabilità in intere immagini di container, file binari compressi e codici sorgente. Questo tipo di strumenti, infatti, sono serve anche a identificare e gestire le licenze, nonché a integrare il codice delle best practice.

SAST, DAST e SCA: vantaggi e svantaggi

Le differenze tra SAST, DAST e SCA si capiscono meglio entrando più nelle loro dinamiche di funzionamento.

SAST: come funziona e a che cosa serve

Il lavaggio del codice sorgente per identificare ed eliminare le vulnerabilità della sicurezza effettuato con uno strumento SAST funziona così: la pratica dei test di sicurezza viene fatta a livello della scatola bianca nelle prime fasi del ciclo di vita dello sviluppo del software e viene eseguita nuovamente a vari intervalli o quando sono necessarie aggiunte o modifiche.

Creati su misura per l’automazione come prodotti DevSecOps, gli strumenti SAST setacciano il codice riga per riga per identificare le aree deboli che possono essere rafforzate per proteggere dagli exploit noti. Sebbene questo tipo di scansione di sicurezza rilevi solo quelle che molti considerano vulnerabilità a basso impatto, gli strumenti automatizzati sono facili da eseguire e interpretare.

Uno dei principali svantaggi degli strumenti SAST automatizzati sono i falsi positivi. Lo strumento non dispone dell’intelligenza necessaria per analizzare il codice che è in fase iniziale e che non può essere compilato. Tuttavia, l’integrazione di livelli maggiori di IA in questi strumenti ha dimostrato di ridurre gli eventi falsi positivi.

A questo proposito, l’OWASP (Open Web Application Security Project, una fondazione senza scopo di lucro che fornisce indicazioni su come sviluppare, acquistare e mantenere applicazioni software affidabili e sicure – n.d.r) fornisce un elenco e una ripartizione degli strumenti SAST open source, gratuiti e commerciali. Le più utilizzate opzioni open source che possono essere aggiunte al proprio ambiente di sviluppo integrato includono:

  • Bandit
  • Flawfinder
  • GitHub Advanced Security
  • OWASP Automated Software Security Toolkit

DAST: come funziona e a che cosa serve

Mentre il SAST esamina il codice sorgente dall’interno, il DAST si avvicina alla sicurezza dall’esterno. Pratica di test della sicurezza modello black box, gli strumenti DAST identificano in tutta l’infrastruttura aziendale le vulnerabilità a livello di rete e di sistema, includendo anche il sistema operativo. Questo tipo di strumento richiede che le applicazioni siano completamente compilate e operative, l’esecuzione dei test all’interno di ambienti di test/sviluppo deve essere fatto prima del rilascio in produzione. Per rilevare le vulnerabilità, è opportuno configurare strumenti con parametri di test preconfigurati e avviare automaticamente più attività di scansione e penetration test associati. Questo riduce il rischio di mettere software potenzialmente vulnerabile nelle mani degli utenti aziendali.

Uno svantaggio degli strumenti DAST è che potrebbero non raggiungere un’ampiezza sufficiente per testare l’intera superficie di attacco, bucando la sicurezza rispetto ad alcune vulnerabilità non intercettate.

L’OWASP fornisce un elenco di strumenti DAST open source, tra cui le più popolari includono:

  • Deepfence ThreatMapper
  • Nikto
  • OpenVAS
  • OWASP Zed Attack Proxy

Sca: come funziona e a cosa serve

Per le organizzazioni che si affidano a software open source per l’intera applicazione o solo per alcune sue parti, gli SCA possono essere utilizzati per automatizzare l’identificazione delle vulnerabilità in intere immagini di container, file binari compressi e codici sorgente. Gli strumenti SCA sono utili anche per identificare e gestire le licenze, nonché per integrazioni a livello di best practice del codice. Rispetto a uno o più database pertinenti che contengono un archivio di vulnerabilità ed exploit noti è possibile eseguire la scansione di gestori, file e immagini. Il risultato è un modo rapido ed efficiente per identificare rapidamente i problemi di sicurezza nel software open source e nel codice riutilizzabile.

Le aziende dovrebbero capire che possono sorgere problemi se il codice open source e le immagini non vengono tracciati correttamente. Gli esperti suggeriscono di utilizzare una distinta base del software per tenere traccia del codice e aiutare a prevenire le lacune di visibilità. Gli strumenti SCA forniscono un metodo affidabile per automatizzare l’identificazione delle vulnerabilità e degli exploit in modo tempestivo. Tra gli strumenti SCA che offrono versioni di prova gratuite, TechTarget segnala:

  • GitLab
  • ThreatWorx
  • JFrog Xray

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4