SAST Static Application Security Testing, termine anglosassone che anche se tradotto in italiano si presenta un tantino ostico. Sarebbe Test Statico di Sicurezza delle Applicazioni e si contrappone al DAST dove, indovinate un po’, cambia solo la S, sostituita dalla D: Dynamic al posto di Static.

Il SAST è una tendenza? Beh, se lo chiedete a Synopsys, a Veracode, a Checkmarx o a Micro Focus (), per esempio, vi diranno di sì. Vi diranno di essere orgogliosi di essere considerati leader nel quadrante Forrester Wave.

E, in effetti, il trend di mercato è particolarmente interessante. Secondo i dati di Maximize Market Research, il mercato AS (Application Security in generale) nel 2020 valeva circa 4 miliardi di dollari e dovrebbe superare gli 11,5 miliardi di dollari entro il 2027. Con un CAGR, incremento medio annuo, del 16,3% in sette anni. Niente male, e le motivazioni per questo incremento ci sono tutte.

Cosa è SAST Static Application Security Testing

Il test statico di sicurezza delle applicazioni (SAST), o analisi statica, è una metodologia con cui si analizza il codice sorgente per trovare le vulnerabilità che espongono agli attacchi le applicazioni aziendali. SAST esegue la scansione di un’applicazione prima della compilazione del codice. È anche noto come test della scatola bianca.

L’analisi SAST può essere applicata in periodo embrionale del ciclo di vita dello sviluppo del software, poiché può essere effettuato senza che il codice venga eseguito. Di questi tempi è fondamentale più che mai visto che aiuta gli sviluppatori a identificare le vulnerabilità nelle fasi iniziali dello sviluppo. Risolvendo così rapidamente i problemi senza interrompere le build o trasferire le vulnerabilità alla versione finale dell’applicazione.

Gli strumenti SAST forniscono agli sviluppatori un feedback in tempo reale durante la codifica, suggerendo la risoluzione dei problemi prima di passare il codice alla fase di compilazione. Gli strumenti SAST forniscono anche rappresentazioni grafiche dell’analisi, segnalando la posizione delle vulnerabilità. Così è più facile navigare all’interno del codice. Alcuni strumenti indicano la posizione esatta delle vulnerabilità ed evidenziano il codice rischioso. Gli strumenti migliori forniscono anche una guida approfondita su come risolvere i problemi e la posizione migliore per risolverli, senza richiedere particolari competenze in termini di sicurezza.

Già, perché, lo dobbiamo dire: qual è la motivazione principale che richiede l’utilizzo di tool SAST? Che il codice applicativo non è sicuro. La maggioranza degli attacchi alle aziende avviene sfruttando bug software. E questo perché chi sviluppa generalmente si preoccupa(va) poco di rendere il software sicuro. Una criticità che riguarda soprattutto codice vecchio e applicativi on premise obsoleti.  

Con gli strumenti SAST, gli sviluppatori possono creare i report personalizzati da esportare e monitorare l’analisi attraverso dashboard. Così si può tenere traccia di tutti i problemi di sicurezza segnalati per aiutare gli sviluppatori a risolvere tempestivamente i problemi e rilasciare applicazioni più sicure.

È importante notare che gli strumenti SAST devono essere eseguiti sull’applicazione regolarmente, ad esempio durante le build giornaliere/mensili, ogni volta che il codice viene archiviato o durante un rilascio di codice.

LEGGI ANCHE: INDEPENDENT SOFTWARE VENDOR, QUAL E’ IL VOSTRO FUTURO?

Come funziona

Un’analisi SAST ha un preciso processo di funzionamento. Vediamo come funziona in dettaglio.

  1. Scegliere lo strumento. Seleziona uno strumento di analisi statica in grado di eseguire revisioni del codice di applicazioni scritte nei linguaggi di programmazione in uso. Lo strumento dovrebbe anche essere in grado di comprendere il framework sottostante utilizzato dal software.
  2. Creare l’infrastruttura di scansione e distribuirlo. Questo passaggio prevede la gestione dei requisiti di licenza, l’impostazione del controllo dell’accesso e dell’autorizzazione e l’approvvigionamento delle risorse necessarie (ad es. server e database) per la sua distribuzione.
  3. Personalizzare lo strumento. Ovvero, modificare lo strumento per soddisfare le esigenze dell’organizzazione. Per esempio, lo si potrebbe migliorare per ridurre i falsi positivi o trovare ulteriori vulnerabilità di sicurezza scrivendo nuove regole o aggiornando quelle esistenti. Integrare lo strumento nell’ambiente di creazione, creare dashboard per tenere traccia dei risultati della scansione e creare report personalizzati.
  4. Assegnare la priorità e integrare le applicazioni. Una volta che lo strumento è pronto, si esegue l’onboarding delle applicazioni. Se si dispone di un numero elevato di applicazioni, scegliere una priorità di scansione. L’obiettivo è di integrare e scansionare regolarmente le applicazioni, con scansioni sincronizzate su cicli di rilascio, build periodiche o check-in del codice.
  5. Analizzare i risultati della scansione. Questo passaggio prevede il triage dei risultati della scansione per rimuovere i falsi positivi. Una volta che la serie di problemi è stata localizzata, si può procedere alla riparazione.
  6. Fornire formazione. Una formazione adeguata garantisce che i team di sviluppo utilizzino correttamente gli strumenti di scansione. SAST dovrebbe essere incorporato come parte nativa del processo di sviluppo e distribuzione dell’applicazione.

Perché usare SAST Static Application Security Testing

È generalmente complicato per un’organizzazione trovare le risorse per eseguire revisioni del codice anche solo su una piccola parte delle applicazioni. Gli strumenti SAST sono capaci di analizzare il 100% della codice. Inoltre, sono molto più veloci di una revisione manuale, visto che possono scansionare milioni di righe di codice in pochi minuti. Gli strumenti SAST identificano automaticamente le vulnerabilità critiche, come buffer overflow, SQL injection, cross-site scripting e altre, con elevata affidabilità.

SAST o DAST: cosa è meglio?

Molte aziende si chiedono cosa scegliere: SAST o DAST? Analisi statica o dinamica? C’è da specificare che SAST e DAST sono approcci di test diversi con vantaggi e risultati diversi. Trovano diversi tipi di vulnerabilità e ciascuno ha la sua efficacia in diverse fasi del ciclo di vita dello sviluppo del software.

Lo Static Application Security Testing (SAST) dovrebbe essere eseguito in anticipo e su tutti i file contenenti codice sorgente. Mentre il Dynamic Application Security Testing (DAST) deve essere eseguito su un’applicazione in esecuzione in un ambiente simile alla produzione. L’approccio ideale sarebbe di includere sia SAST che DAST nel programma di test di sicurezza delle applicazioni.

E poi ci sarebbe lo Interactive application security testing (IAST). Un ulteriore modello di analisi che, in pratica, combina le tecniche SAST e DAST, evidenziando i vantaggi di entrambi gli approcci. Alla fine, cosa è meglio? Beh, diciamo che intanto è bene prendere in considerazione il tool e che, nel caso di applicazioni già compliate e funzionanti, magari legacy, si potrebbe prendere in considerazione IAST, DAST e SAST in ordine di apparizione.

Static Application Security Testing: cosa è e come funziona ultima modifica: 2022-07-08T11:05:56+02:00 da Valerio Mariani

LEAVE A REPLY

Please enter your comment!
Please enter your name here