My IBM Accedi Iscriviti
Cos'è il test dinamico di sicurezza delle applicazioni (DAST)?

Cos'è il test dinamico di sicurezza delle applicazioni (DAST)?

Esplora IBM Security MaaS360 Registrati per ricevere aggiornamenti sulla sicurezza
Pittogrammi di nuvole, telefono cellulare, impronta digitale, segno di spunta

Data di pubblicazione: 8 aprile 2024
Autori: Annie Badman, Amber Forrest

Cos'è il DAST?

Cos'è il DAST?

Il test dinamico di sicurezza delle applicazioni (DAST) è un metodo di test della cybersecurity utilizzato per identificare vulnerabilità e configurazioni errate nelle applicazioni web, nelle API e, più recentemente, nelle app mobili. 

Rispetto ad altri tipi di test sulla sicurezza delle applicazioni (AppSec), il DAST si distingue per il suo approccio outside-in. Mentre altri strumenti richiedono il codice sorgente e l'accesso interno all'applicazione per valutare le vulnerabilità della sicurezza, DAST testa le applicazioni nel loro ambiente di runtime dall'esterno, utilizzando attacchi simulati per imitare i soggetti malintenzionati. Per questo motivo, il DAST viene talvolta chiamato test outside-in o test black box, un metodo di test in cui i sistemi vengono esaminati senza che il tester debba accedere, analizzare o persino conoscere il funzionamento del sistema interno.

Perché il DAST è importante

Perché il DAST è importante

Gli sviluppatori di oggi lavorano rapidamente, spesso aggiornando aree di codice specifiche più volte al giorno, senza una visione completa dell'intero codice. Si affidano molto a componenti di terze parti e open source e spesso faticano a collaborare in modo efficace con i team di sicurezza. La maggior parte lavora anche su applicazioni sempre più complesse, con numerose funzionalità, librerie e dipendenze, il tutto gestendo minacce di cybersecurity in continua evoluzione. 

Il risultato è una superficie di vulnerabilità della sicurezza in costante aumento, che aumenta la difficoltà di scrivere codice sicuro e proteggere le informazioni sensibili dalla violazione dei dati. Gli sviluppatori hanno bisogno di modi per testare potenziali vulnerabilità mentre lavorano, senza compromettere la loro produttività. 

DAST aiuta a rendere possibile tutto questo automatizzando il processo di test di sicurezza. Funziona imitando le azioni degli hacker reali, lavorando dall'esterno per scoprire potenziali vulnerabilità nelle applicazioni in esecuzione. Il DAST consente agli sviluppatori di testare il proprio codice e di vedere l'impatto sulla sicurezza complessiva dell'applicazione prima che venga messa in funzione ed eccelle nell'individuare i problemi di sicurezza, come gli errori di autenticazione e le vulnerabilità del codice, che spesso sfuggono ad altri metodi di test, come la Software Composition Analysis (SCA).

I moderni strumenti DAST (vedi sotto) si integrano perfettamente anche nelle pipeline DevOps e CI/CD per offrire interfacce per tutte le fasi dello sviluppo, anche nelle prime fasi del workflow di sviluppo delle applicazioni. 

Le integrazioni di build e deployment sono una delle ragioni per cui i team DevOps adottano comunemente il DAST negli ambienti DevOps/DevSecOps come parte di un approccio "shift left" in cui i test vengono eseguiti nelle prime fasi del ciclo di vita dello sviluppo del software (SDLC) per una correzione più economica e rapida. Altri principi DevOps rafforzati dagli strumenti DAST includono la priorità dell'automazione, della collaborazione e del feedback continuo in modo che gli sviluppatori e i team di sicurezza possano rimanere agili e produttivi senza compromettere la sicurezza.

Come funziona il DAST? 

Come funziona il DAST? 

Adottando un approccio black box, il DAST emula le azioni che un soggetto malintenzionato potrebbe intraprendere quando tenta di violare un'applicazione web.

In generale, il DAST prevede le seguenti cinque fasi:

Scansione

Come primo passo, gli scanner DAST simulano le interazioni degli utenti con l'applicazione in esecuzione inviando varie richieste HTTP. Questa mappatura identifica tutte le pagine, i collegamenti, le funzioni (per le applicazioni web a pagina singola) e i punti di ingresso come definiti nei test API tramite un documento di definizione API. 

Analisi

Man mano che le richieste vengono inviate, lo strumento DAST inizia ad analizzare le risposte dell'applicazione, cercando anomalie, messaggi di errore e comportamenti imprevisti che potrebbero indicare una vulnerabilità dell'applicazione web. Quando la scansione DAST rileva una potenziale vulnerabilità, ne registra la posizione e la risposta per riferimento futuro, consentendo di eseguire test manuali, se necessario.

Simulazione dell'attacco

Gli strumenti DAST iniziano anche a imitare attacchi comuni come SQL injection, Cross-Site Scripting (XSS) e Cross-Site Request Forgery (CSRF) per individuare vulnerabilità di sicurezza, come configurazioni errate, esposizioni di dati e problemi di autenticazione, che gli attori delle minacce potrebbero sfruttare.

Reportistica

Dopo l'analisi e gli attacchi simulati, gli strumenti DAST producono report che delineano le vulnerabilità identificate, la loro gravità e i potenziali scenari di attacco per guidare gli sviluppatori e i team di sicurezza. È importante considerare che le soluzioni DAST si concentrano esclusivamente sull'identificazione dei problemi di sicurezza e lasciano qualsiasi correzione ai team di sviluppo.

Risoluzione dei falsi positivi

Gli strumenti DAST possono occasionalmente produrre falsi positivi, segnalando erroneamente qualcosa come una vulnerabilità. Quando ciò accade, è spesso necessario che una persona si occupi della convalida e della definizione della priorità.

Tipi di strumenti DAST

Tipi di strumenti DAST

Sebbene gli strumenti di test DAST non abbiano sottotipi ufficiali, gli esperti di sicurezza li classificano spesso in due gruppi informali: strumenti DAST moderni e strumenti DAST legacy, che si distinguono principalmente per l'automazione/l'integrazione e la validazione delle vulnerabilità. 

DAST legacy 

Gli strumenti DAST legacy spesso mancano di funzionalità di automazione, sebbene il loro processo di scansione sia automatizzato. In genere si concentrano sui test di base, ovvero l'invio di richieste, la ricezione di risposte e l'esecuzione di valutazioni preliminari, e non offrono una convalida completa delle vulnerabilità, ma solo elenchi di potenziali problemi di sicurezza. 

DAST moderno

I moderni strumenti DAST hanno un grado di automazione più elevato e offrono una revisione più approfondita della vulnerabilità delle applicazioni web. 

Le soluzioni DAST moderne possono integrarsi perfettamente nell'SDLC e funzionare in modo trasparente in background. Inoltre, i server di automazione possono attivare gli strumenti DAST moderni e presentare i risultati della scansione come ticket nel tracker dei problemi degli sviluppatori. Alcuni strumenti DAST moderni forniscono persino la prova dello sfruttamento, eliminando la necessità di una verifica manuale da parte di penetration tester o esperti di sicurezza, che richiede molto tempo.

Pro e contro del DAST

Pro e contro del DAST

Il DAST è spesso considerato una parte fondamentale dei test di sicurezza delle applicazioni web. Alcuni dei suoi vantaggi esclusivi includono:

  • Versatilità. Gli utenti possono implementare il DAST in varie fasi del ciclo di vita dello sviluppo software: il DAST può testare le applicazioni web in esecuzione e le applicazioni che sono già state distribuite senza modifiche, facilitando la valutazione dei sistemi legacy.
  • Automazione. Gli strumenti DAST si integrano facilmente nelle pipeline DevOps e CI/CD, rendendo possibile eseguire test di sicurezza automatizzati nelle prime fasi del processo di sviluppo e ridurre significativamente i costi di correzione. 
  • Indipendente dal linguaggio. Poiché il DAST ha un funzionamento outside in, non dipende dal linguaggio di programmazione utilizzato nell'applicazione e può funzionare su molti framework diversi. DAST testa efficacemente sia le interfacce web che le API, emulando il modo in cui gli aggressori individuano le vulnerabilità. 
  • Meno falsi positivi. Il DAST in genere produce meno falsi positivi e negativi quando simula le azioni dell'utente rispetto ad altri metodi, come il SAST.
  • Test realistici e ripetibili. Poiché emula il comportamento degli hacker nel mondo reale, il DAST è una soluzione pratica per identificare le vulnerabilità che i soggetti malintenzionati possono sfruttare. Il DAST offre anche il vantaggio di test ripetibili, consentendo una valutazione continua delle vulnerabilità man mano che le applicazioni si evolvono.
  • Rilevamento completo delle vulnerabilità. Il DAST è in grado di rilevare un'ampia gamma di vulnerabilità, tra cui SQL injection, XSS e configurazioni errate.
  • Allineamento agli standard del settore. Le aziende utilizzano spesso il DAST per aderire agli standard del settore e fornire assistenza nel reporting normativo, come la conformità PCI. Molte aziende utilizzano l'elenco OWASP Top 10 come riferimento per la conformità per i rischi di sicurezza delle applicazioni.

Nonostante questi numerosi vantaggi, il DAST può avere dei limiti. Sebbene il DAST sia in grado di identificare i difetti di sicurezza nell'esecuzione delle applicazioni, potrebbe non rilevare tutte le vulnerabilità, in particolare quelle che richiedono sequenze di azioni specifiche. La combinazione del DAST con altri metodi, come il test statico di sicurezza delle applicazioni (SAST, vedi sotto), il test interattivo di sicurezza delle applicazioni (IAST), l'analisi della composizione del software (SCA) e i test di penetrazione manuali, può aiutare a completare il DAST e offrire un programma di sicurezza più completo.

Altri limiti del DAST possono includere:

  • Focus sul codice eseguibile. Poiché il DAST testa principalmente parti di applicazioni web che sono già state distribuite (cioè, codice già eseguibile), può tralasciare sezioni ancora in fase di sviluppo.
  • Problemi di autenticazione. Il DAST può essere meno efficace con autenticazioni non standard e logiche aziendali complesse, ma gli strumenti DAST professionali includono moduli di guida per queste situazioni.
  • Impatto operativo. Senza un'adeguata messa a punto, il test DAST può influenzare il normale funzionamento dell'applicazione ed eventualmente introdurre dati campione o rallentare l'applicazione. Di conseguenza, molti eseguono DAST in ambienti di staging o cloni di produzione piuttosto che in quelli di produzione reale.
DAST vs. SAST

DAST vs. SAST

Il DAST e il SAST, o test statico di sicurezza delle applicazioni, sono due metodi di test utilizzati per identificare le vulnerabilità di sicurezza nelle applicazioni web. Ma mentre il DAST valuta le applicazioni nel loro ambiente di produzione, imitando gli attacchi di utenti malintenzionati e identificando i problemi di sicurezza, il SAST esamina il loro codice sorgente, alla ricerca di vulnerabilità all'interno dell'applicazione web.

Gli esperti di cybersecurity generalmente suggeriscono di utilizzare sia il SAST che il DAST per affrontare i rischi per la sicurezza, per avere una visione completa delle potenziali vulnerabilità. Ad esempio, esaminando il codice sorgente di un programma, gli strumenti SAST possono rilevare un'ampia gamma di vulnerabilità di sicurezza che il DAST potrebbe non rilevare, tra cui SQL injection, buffer overflow, attacchi XXE e altri rischi dell'elenco OWASP Top 10.

L'utilizzo di una metodologia SAST incoraggia inoltre i test iniziali durante lo sviluppo, riducendo la probabilità di difetti di sicurezza nel codice sorgente dell'applicazione durante le fasi successive, portando a tempi di sviluppo più brevi e a una maggiore sicurezza generale.

Soluzioni correlate

Soluzioni correlate

IBM Security MaaS360

Gestisci e proteggi il tuo personale mobile con una soluzione per la gestione unificata degli endpoint (UEM, Unified Endpoint Management) basata sull'AI.

Esplora IBM Security MaaS360

Soluzioni per la sicurezza dei dati

Migliore protezione dei dati negli hybrid cloud e semplificazione dei requisiti di conformità. 

Esplora le soluzioni IBM per la sicurezza

Soluzioni per la sicurezza delle applicazioni

Costruisci, distribuisci e itera applicazioni ovunque in modo sicuro trasformando DevOps in DevSecOps, includendo persone, processi e strumenti.

Esplora i servizi per la sicurezza delle applicazioni
Risorse

Risorse

Che cos'è la gestione delle vulnerabilità?

Scopri in che modo le soluzioni di gestione delle vulnerabilità aiutano le squadre di sicurezza a rilevare, mettere in priorità e risolvere proattivamente le vulnerabilità della sicurezza negli asset IT.

Che cos'è un test di penetrazione?

I test di penetrazione utilizzano attacchi simulati per individuare le vulnerabilità nei sistemi informatici.

Metodologie e standard per i test di penetrazione

Scopri le principali metodologie di pen testing utilizzate per individuare le vulnerabilità di sicurezza e mitigare i rischi informatici.

Fai il passo successivo

Poiché i modelli di lavoro flessibile sono diventati la nuova norma, i dipendenti devono rimanere produttivi ovunque lavorino e con qualsiasi dispositivo, in modo protetto. Dalla gestione degli endpoint alla sicurezza nativa, IBM Security MaaS360 offre una soluzione UEM

Scopri MaaS360 Prenota una demo live