What is Dynamic Code Analysis?

Le organizzazioni applicano diverse metodologie per identificare le vulnerabilità potenzialmente sfruttabili all'interno del loro software. Ad esempio, l'analisi statica del codice è una forma di test white-box che può aiutare a identificare i problemi di sicurezza nel codice sorgente. D'altra parte, l'analisi dinamica del codice è una forma di scansione delle vulnerabilità black-box che consente ai team di software di analizzare le applicazioni in esecuzione e identificare le vulnerabilità.

Se implementata correttamente, l'analisi dinamica del codice può ridurre il tempo medio di identificazione (MTTI) per gli incidenti di produzione, migliorare la visibilità dei problemi applicativi e aumentare la sicurezza complessiva di un progetto. Qui daremo un'occhiata più da vicino all'analisi dinamica del codice.

CloudGuard AppSec Prova Gratuita

What is Dynamic Code Analysis?

What is Dynamic Code Analysis?

L'analisi dinamica del codice - chiamata anche Dynamic Application Security Testing (DAST) - è progettata per testare un'applicazione in esecuzione alla ricerca di vulnerabilità potenzialmente sfruttabili. Strumenti DAST per identificare le vulnerabilità sia in fase di compilazione che di esecuzione, come gli errori di configurazione che appaiono solo in un ambiente di esecuzione realistico.

 

Uno strumento DAST utilizza un dizionario di vulnerabilità conosciute e di input dannosi per fare il 'fuzz' di un'applicazione. Esempi di questi input potenzialmente dannosi includono:

 

  • Query SQL (per identificare le vulnerabilità di SQL injection)
  • Stringhe di input lunghe (per sfruttare le vulnerabilità di buffer overflow)
  • Numeri negativi e grandi numeri positivi (per rilevare le vulnerabilità di overflow e underflow di interi)
  • Dati di ingresso inaspettati (per sfruttare ipotesi non valide da parte degli sviluppatori)

 

Durante l'esecuzione, l'applicazione viene bombardata da questi input potenzialmente dannosi e lo strumento DAST analizza le risposte dell'applicazione. Se l'applicazione ha una risposta negativa a un input (come un crash, una risposta non valida, ecc.), lo strumento DAST registra la vulnerabilità identificata.

 

Poiché gli strumenti DAST vengono eseguiti su un'applicazione in esecuzione, possono rilevare un'ampia gamma di potenziali vulnerabilità. Questo include le vulnerabilità che sono difficili o impossibili da rilevare nel codice sorgente, come i problemi di allocazione della memoria.

DAST e il ciclo di vita dello sviluppo sicuro del software

Il ciclo di vita dello sviluppo del software (SDLC) traccia le fasi del processo di sviluppo del software. Questo include tutto, dalla pianificazione iniziale e l'identificazione dei requisiti per un'applicazione alla manutenzione a lungo termine e alla sua eventuale fine di vita.

 

Il DAST di solito entra in gioco nella fase di test dell'SDLC. Questo perché DAST richiede la capacità di eseguire l'applicazione e di testarla utilizzando input maligni simulati. Di conseguenza, una volta che il codice dell'applicazione è in grado di costruire e distribuire in un ambiente di test o di staging, è possibile utilizzare DAST. Con i flussi di lavoro di Integrazione continua/Consegna continua (CI/CD), ciò può significare che le scansioni DAST vengono eseguite più volte al giorno durante le build iterative.

 

In molti programmi di sicurezza del software aziendale, il DAST avviene dopo i test di penetrazione che non richiedono competenze interne in materia di sicurezza. Ad esempio, dopo un pen test per soddisfare i requisiti PCI DSS (Payment Card Industry Data Security Standard), un team di sicurezza può utilizzare uno strumento DAST per eseguire scansioni di sicurezza automatizzate.

Differenze tra analisi statica e dinamica del codice

L'analisi statica e dinamica del codice sono due delle forme più comuni di test di sicurezza delle applicazioni. Hanno approcci diversi per identificare le vulnerabilità e spesso sono complementari.

 

A differenza dell'analisi dinamica del codice, l'analisi statica del codice - chiamata anche Static application Security Testing (SAST) - non richiede l'accesso a un eseguibile completo. Invece, adotta un approccio white-box e ispeziona il codice sorgente dell'applicazione alla ricerca di vulnerabilità. Costruendo un modello del flusso di esecuzione dell'applicazione e applicando le regole a questo modello, SAST è in grado di rilevare le iniezioni, i buffer overflow e vulnerabilità simili.

 

Poiché DAST e SAST applicano metodi di test diversi e sono applicati a tipi diversi di file (eseguibili compilati vs. codice sorgente), rilevano tipi diversi di vulnerabilità e sono applicati in fasi diverse del processo di sviluppo. SAST può essere applicato prima nell'SDLC (durante la fase di sviluppo) rispetto a DAST, perché non richiede il completamento dell'applicazione per identificare le vulnerabilità.

Perché l'analisi dinamica del codice è fondamentale

L'analisi dinamica del codice viene applicata una volta che un'applicazione è in gran parte completa e in grado di essere eseguita. Utilizza input dannosi per simulare attacchi realistici contro l'applicazione e osservare le sue risposte.

 

Uno dei vantaggi principali del test DAST è che può simulare il comportamento di un'applicazione in un ambiente realistico deployment. Questo permette al tester di identificare i problemi di configurazione e altre vulnerabilità che potrebbero essere visibili solo quando il codice è attivo. Inoltre, l'uso di attacchi simulati del mondo reale permette di vedere l'impatto di un potenziale exploit sullo stato dell'applicazione. Lo strumento DAST può anche rilevare le vulnerabilità all'interno delle dipendenze e delle librerie di terze parti, che influiscono sulla sicurezza dell'applicazione, ma che potrebbero non essere rilevate da SAST e da strumenti simili incentrati sul codice sorgente.

 

Check Point CloudGuard offre la scansione delle vulnerabilità per le applicazioni serverless e containerizzate basate sul cloud. Questo include il supporto per la scansione delle vulnerabilità sia DAST che SAST, per aiutare l'identificazione e la correzione delle vulnerabilità durante il processo di sviluppo. Per vedere le funzionalità delle soluzioni CloudGuard per le applicazioni Serverlessin azione, prenoti una demo. Può anche richiedere una prova gratuita per vedere come può integrarsi nel flusso di lavoro di sviluppo della sua organizzazione.

×
  Feedback
Questo sito web utilizza cookies per la sua funzionalità e per scopi di analisi e marketing. Continuando a utilizzare questo sito Web, accetti l'utilizzo dei cookies. Per ulteriori informazioni, leggere la nostra Informativacookies .
OK