Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
SEC11-BP02 Automatizza i test durante tutto il ciclo di vita di sviluppo e rilascio
Automatizza i test per le proprietà di sicurezza lungo il ciclo di vita di sviluppo e test. L'automazione semplifica l'identificazione coerente e ripetibile dei potenziali problemi nel software prima del rilascio, riducendo il rischio di riscontrare problemi di sicurezza nel software fornito.
Risultato desiderato: l'obiettivo dei test automatizzati è fornire una soluzione programmatica per l'individuazione di potenziali problemi nelle fasi iniziali e spesso durante l'intero ciclo di vita dello sviluppo. Automatizzando i test di regressione, puoi ripetere l'esecuzione di test funzionali e non funzionali per verificare che il software testato in precedenza continui ad avere le prestazioni previste dopo una modifica. Quando definisci test di unità di sicurezza per verificare la presenza di configurazioni errate comuni, come autorizzazioni non corrette o mancanti, puoi identificare e correggere i problemi all'inizio del processo di sviluppo.
Per l'automazione dei test vengono usati casi di test dedicati per la convalida delle applicazioni, in base ai requisiti e alle funzionalità desiderate. Il risultato dei test automatici è basato sul confronto dell'output del test generato con quello previsto, che accelera l'intero ciclo di vita dei test. Metodologie di test come i test di regressione e le suite di test di unità sono ideali per l'automazione. L'automazione dei test delle proprietà di sicurezza permette agli sviluppatori di ricevere in automatico feedback senza attendere una revisione della sicurezza. I test automatici sotto forma di analisi statica o dinamica del codice possono migliorare la qualità del codice e semplificare il rilevamento dei potenziali problemi software all'inizio del ciclo di vita di sviluppo.
Anti-pattern comuni:
-
Mancata comunicazione dei casi di test e dei risultati dei test automatici.
-
Esecuzione dei test solo immediatamente prima di un rilascio.
-
Automazione dei casi di test con requisiti che cambiano spesso.
-
Assenza di linee guida su come gestire i risultati dei test di sicurezza.
Vantaggi dell'adozione di questa best practice:
-
Riduzione della dipendenza da valutazioni personali delle proprietà di sicurezza dei sistemi.
-
Migliore coerenza grazie a esiti uniformi tra più flussi di lavoro.
-
Minore probabilità di introdurre problemi di sicurezza nel software di produzione.
-
Intervallo di tempo più breve tra l'individuazione e la correzione grazie all'identificazione più tempestiva dei problemi software.
-
Maggiore visibilità su comportamenti sistematici o ripetuti tra più flussi di lavoro, utile per favorire miglioramenti in tutta l'organizzazione.
Livello di rischio associato se questa best practice non fosse adottata: medio
Guida all'implementazione
Durante lo sviluppo del software, adotta diversi meccanismi di test in modo da avere la certezza di testare l'applicazione per requisiti funzionali, basati sulla logica di business, e non funzionali, incentrati sull'affidabilità, sulle prestazioni e sulla sicurezza dell'applicazione.
Static Application Security Testing (SAST) analizza il codice sorgente alla ricerca di modelli di sicurezza anomali e fornisce indicazioni sul codice soggetto a difetti. SASTsi basa su input statici, come la documentazione (specifiche dei requisiti, documentazione di progettazione e specifiche di progettazione) e il codice sorgente dell'applicazione per verificare la presenza di una serie di problemi di sicurezza noti. Gli analizzatori di codice statici possono contribuire ad accelerare l'analisi di volumi elevati di codice. Il NISTQuality Group
Completa i test statici con metodologie di analisi dinamica (security testing (DAST), che eseguono test sull'applicazione in esecuzione per identificare comportamenti potenzialmente imprevisti. I test dinamici consentono di individuare potenziali problemi non rilevabili tramite l'analisi statica. L'esecuzione di test nelle fasi di repository, compilazione e pipeline del codice permette di verificare potenziali problemi di tipi diversi, evitandone la presenza nel codice. Amazon CodeWhisperer
Il workshop Security for AWS Developers
Man mano che procediSDLC, stabilisci un processo iterativo che includa revisioni periodiche delle applicazioni con il tuo team di sicurezza. Il feedback raccolto da queste revisioni della sicurezza deve essere affrontato e convalidato come parte della revisione dell'idoneità per il rilascio. Queste revisioni permettono di stabilire una solida posizione di sicurezza per l'applicazione e forniscono agli sviluppatori feedback di utilità pratica per affrontare i potenziali problemi.
Passaggi dell'implementazione
-
Implementa strumenti CI/CD coerentiIDE, di revisione del codice e strumenti CI/CD che includano test di sicurezza.
-
Valuta dove è SDLC opportuno bloccare le pipeline invece di limitarsi a notificare ai costruttori che i problemi devono essere risolti.
-
Il workshop Security for Developers
offre un esempio di integrazione di test statici e dinamici all'interno di una pipeline di rilascio. -
L'esecuzione di test o analisi del codice utilizzando strumenti automatizzati, come Amazon CodeWhisperer
integrato con lo sviluppatore IDEs e Amazon CodeGuru Reviewer per la scansione del codice su commit, aiuta i costruttori a ottenere feedback al momento giusto. -
Quando crei utilizzando AWS Lambda, puoi usare Amazon Inspector
per scansionare il codice dell'applicazione nelle tue funzioni. -
Se le pipeline CI/CD includono test automatici, devi usare un sistema di gestione dei ticket per tenere traccia della notifica e della correzione dei problemi software.
-
Per test di sicurezza che possono generare esiti, il collegamento a linee guida per la correzione permette agli sviluppatori di migliorare la qualità del codice.
-
Analizza regolarmente gli esiti ottenuti dagli strumenti automatici per definire le priorità delle successive iniziative di automazione, formazione degli sviluppatori o creazione di campagne di sensibilizzazione.
Risorse
Documenti correlati:
-
AWS Security Competency Partners
per la sicurezza delle applicazioni -
Monitoraggio CodeCommit degli eventi in Amazon EventBridge e Amazon CloudWatch Events
Video correlati:
Esempi correlati: