Come Implementare Strumenti di Sicurezza: Il Framework 'Crawl, Walk, Run'
Sommario: L’Approccio a Fasi
Questo approccio passo-passo ti aiuta a distribuire gli strumenti di sicurezza senza intoppi e mantiene i tuoi build in esecuzione. Pensalo come una serie di piccoli passi che proteggono la tua spedizione, garantendo un processo di sviluppo più affidabile e sicuro.
| Modalità di Scansione | Impatto sullo Sviluppatore | Configurazione / Impostazione | Scopo & Risultato |
|---|---|---|---|
| Crawl Fail Open (Modalità Audit, Nessun avviso) | Nessuna interruzione; invisibile agli sviluppatori | Scansione ad ogni push/commit, registra i risultati | Raccogliere dati, regolare le regole, sopprimere i falsi positivi; i build passano sempre |
| Walk Fail Open (Modalità Notifica, avvisi) | Gli sviluppatori vedono avvisi nei PR/IDE | Abilita decorazione PR/plugin IDE | Gli sviluppatori ricevono feedback attuabili, costruiscono fiducia, risolvono i problemi volontariamente |
| Run Fail Closed (Modalità Blocco) | Build bloccati su problemi critici/di alta gravità | Attiva cancelli di qualità, blocca il build su nuove scoperte critiche | Previene che nuove vulnerabilità raggiungano la produzione; gli sviluppatori rispettano i fallimenti |
Introduzione: Perché i Rilasci “Big Bang” Falliscono
Un progetto DevSecOps può rapidamente andare fuori strada con un rilascio “Big Bang”. Questo accade spesso quando un team ottiene un nuovo SAST o strumento di scansione dei container e attiva immediatamente la “Modalità Blocco”. Ad esempio, un team di sviluppo software presso XYZ Corp ha attivato la “Modalità Blocco” il primo giorno con il loro nuovo strumento di scansione.

Durante la notte, lo strumento ha segnalato centinaia di problemi di sicurezza minori che richiedevano attenzione urgente, bloccando di fatto l’intero processo di sviluppo.
Mentre gli sviluppatori si affannavano a risolvere questi problemi, le scadenze critiche dei progetti venivano mancate, portando a frustrazione e perdita di fiducia nello strumento. Questo scenario evidenzia i rischi e illustra perché è necessario un approccio più graduale.
Il risultato porta solitamente a problemi:
- Build interrotte: Gli sviluppatori non sono in grado di distribuire correzioni critiche.
- Affaticamento da allerta: Un’ondata di falsi positivi travolge il team.
- Shadow IT: I team frustrati aggirano i controlli di sicurezza per continuare il loro lavoro.
Per evitare questi problemi, adottare un approccio evolutivo invece di cercare di cambiare tutto in una volta. Questo è ciò di cui tratta il framework Crawl, Walk, Run.
Studi recenti hanno dimostrato che le organizzazioni che implementano rollout graduali sperimentano un miglioramento misurabile nella frequenza di distribuzione e un recupero più rapido dai fallimenti, migliorando così l’affidabilità delle loro pratiche DevSecOps.
Collegando questo framework a risultati di performance comprovati, come la riduzione dei tempi di inattività e l’aumento dei tassi di successo delle build, possiamo garantire che i leader ingegneristici ne riconoscano il valore.

Fase 1: Crawl (Visibilità e Baseline)
Obiettivo: Ottenere piena visibilità sul debito tecnico esistente evitando interruzioni nei flussi di lavoro degli sviluppatori. Puntare a raggiungere una copertura del 90% dei repository nelle prime due settimane per garantire un successo misurabile e chiari parametri di progresso.
- In questa fase iniziale, concentrarsi sulla raccolta dati integrando lo strumento di sicurezza nel pipeline CI/CD in modo non intrusivo.
- Configurazione: Impostare lo strumento su Fail Open utilizzando la Modalità Audit—registrando tutti i risultati senza notificare gli sviluppatori o bloccare le build.
- Azione: Attivare le scansioni ad ogni push o commit di codice.
- Risultato: Lo scanner registra tutti i risultati su una dashboard consentendo a tutte le build di passare con successo, anche se vengono rilevate vulnerabilità critiche.
💡 Suggerimento Pro: Utilizzare questa fase per regolare attentamente lo scanner. Se una regola specifica (ad esempio, “Numeri Magici nel Codice”) genera rumore eccessivo (ad esempio, 500 volte nei repository), considerare di regolarla o disabilitarla temporaneamente per concentrarsi su problemi attuabili prima di procedere.
Perché è importante: Stabilire questo “Baseline di Sicurezza” consente al team di sicurezza di comprendere il volume e la natura del debito tecnico esistente e di affinare le configurazioni delle regole senza impattare le distribuzioni.
Fase 2: Camminare (Feedback & Educazione)
Obiettivo: Fornire agli sviluppatori feedback di sicurezza attuabili e tempestivi integrati nei loro flussi di lavoro quotidiani, senza bloccare il progresso dello sviluppo.
- Una volta ridotto il rumore, rendere i risultati visibili agli sviluppatori. Mantenere lo strumento in modalità Fail Open, ma passare alla modalità Notifica abilitando gli avvisi.
- Configurazione: Integrare il feedback negli strumenti di sviluppo come la decorazione delle Pull Request (commenti) o i plugin IDE.
- Risultato: Gli sviluppatori ricevono feedback di sicurezza in tempo reale nel loro processo di revisione del codice, ad esempio, “⚠️ Alta Gravità: Segreto hardcoded introdotto alla linea 42.”
Gli sviluppatori possono scegliere di risolvere immediatamente il problema o documentare i falsi positivi per una risoluzione successiva.
Perché è importante: Questa fase costruisce fiducia tra sicurezza e sviluppatori. La sicurezza è vista come una guida collaborativa, non come un guardiano. Gli sviluppatori si abituano alla presenza dello strumento e iniziano a risolvere volontariamente i problemi perché il ciclo di feedback è diretto e attuabile.
Per rafforzare questi comportamenti positivi, incoraggiare i team a celebrare le prime vittorie. Condividere storie di successo rapide, come la ‘prima PR fusa senza risultati di alta gravità’, costruisce slancio e spinge più sviluppatori verso correzioni volontarie.
Fase 3: Esecuzione (Blocco e Applicazione)
Obiettivo: Prevenire che nuove vulnerabilità ad alto rischio raggiungano la produzione applicando barriere di sicurezza.
- Dopo aver istruito e formato gli sviluppatori, attiva i Build Breakers o i Quality Gates che applicano le politiche bloccando le build con problemi critici.
- Configurazione: Imposta lo strumento in modalità Fail Closed per fermare le build con vulnerabilità di gravità Alta e Critica. I problemi di gravità media e bassa rimangono come avvertimenti per evitare interruzioni eccessive.
- Importante sfumatura: Considera di bloccare solo le nuove vulnerabilità introdotte dalle modifiche attuali (ad esempio, nel PR corrente), mentre tracci i problemi esistenti come elementi di backlog da risolvere nel tempo.
- Risultato: Se uno sviluppatore introduce, ad esempio, una vulnerabilità critica di SQL Injection, la build fallisce e non può essere unita fino a quando non viene risolta o non viene approvata una deroga documentata.
Perché è importante: Poiché lo strumento e il team sono ben sintonizzati e istruiti, il tasso di falsi positivi è basso. Gli sviluppatori rispettano i fallimenti delle build come veri segnali di sicurezza piuttosto che combatterli.
Prossimi Passi
Ora che hai una strategia a fasi per quando bloccare le build, il passo successivo è decidere dove integrare questi strumenti per massimizzare la produttività degli sviluppatori.
Nel prossimo articolo, esploreremo Frictionless Security, un modo per integrare senza soluzione di continuità gli strumenti di sicurezza negli IDE degli sviluppatori e nei flussi di lavoro dei PR, riducendo il cambio di contesto e aumentando l’adozione.
Domande Frequenti (FAQ)
Cos’è il framework “Crawl, Walk, Run”?
È un modo semplice e passo dopo passo per iniziare a utilizzare nuovi strumenti di sicurezza senza causare problemi. Prima, raccogli informazioni in modo discreto (Crawl). Successivamente, mostri agli sviluppatori i problemi in modo che possano imparare e risolverli (Walk). Infine, blocchi il codice dannoso per mantenere il tuo software sicuro (Run). Questo aiuta i team ad adottare gli strumenti di sicurezza in modo fluido e a guadagnare fiducia lungo il percorso.
Perché non dovremmo bloccare le build subito?
Se blocchi le build dal primo giorno, lo strumento potrebbe segnalare troppi problemi contemporaneamente, impedendo agli sviluppatori di svolgere il loro lavoro. Questo può causare frustrazione e rallentare i progetti. Iniziare lentamente significa trovare e risolvere prima gli avvisi rumorosi, in modo che il blocco avvenga solo quando lo strumento è accurato e affidabile.
Quanto tempo dovrebbe durare ciascuna fase?
Di solito, la fase Crawl dura un paio di settimane mentre raccogli abbastanza dati. La fase Walk richiede più tempo poiché gli sviluppatori si abituano a vedere gli avvisi e a risolvere i problemi. Passa alla fase Run solo quando lo strumento è ben calibrato e il team è a suo agio nel risolvere i problemi prima che il codice venga unito.
Cos’è il “Fail Open” e quando lo usiamo?
“Fail Open” significa che lo strumento trova problemi ma non impedisce al codice di essere unito. Usalo nelle fasi Crawl e Walk per evitare di disturbare gli sviluppatori mentre raccogli dati e li istruisci sui problemi.


