Fasi del ciclo di vita dello sviluppo del software Secure SDLC
Pubblicato: 2021-02-26L'approccio intelligente alla creazione di software sicuro è Secure SDLC o Software Development Lifecycle. Invece di creare software e quindi testarlo per le vulnerabilità, è meglio crearlo ponendo l'accento sulla sicurezza.
Cos'è Secure SDLC?
In un senso più ampio, un Secure SDLC è un processo di integrazione di test di sicurezza e altre misure nel ciclo di vita di sviluppo del software esistente. Questo può includere:
- Scrivere i requisiti di sicurezza insieme ai requisiti funzionali.
- Esecuzione dell'analisi dell'architettura.
- Utilizzo di componenti open source senza vulnerabilità di sicurezza note.
- Testare il software in ogni fase e prevenire il proseguimento di vulnerabilità/minacce.
Perché Secure SDLC è importante?
L'implementazione di procedure sicure del ciclo di vita dello sviluppo del software è importante perché gli sviluppatori non possono permettersi di rilasciare un prodotto con vulnerabilità di sicurezza. Per proteggere il software e i dati da minacce e attacchi, è necessario che siano sviluppati in modo da garantire la sicurezza.
Un altro motivo è che non è un approccio efficiente per sviluppare software senza concentrarsi sulla sicurezza e quindi testarlo e correggerlo.
Fasi di Secure SDLC
L'intero concetto di SDLC sicuro ruota attorno a stroncare il male sul nascere. Il processo impedisce che i difetti vengano trasferiti alla fase successiva del ciclo di vita dello sviluppo del software. Ecco uno schizzo delle fasi coinvolte in Secure SDLC e delle misure di sicurezza implementate in ciascuna di esse.
Requisiti Fase di Secure SDLC
Insieme ai requisiti funzionali del software, all'avvio di Secure SDLC vengono descritti anche i requisiti di sicurezza. Questi requisiti descrivono in dettaglio ciò che è richiesto agli sviluppatori per rendere il software intrinsecamente sicuro.
Un elenco dettagliato di tutti i casi d'uso e gli scenari relativi alla sicurezza viene compilato prima dell'inizio dello sviluppo. Questo viene quindi utilizzato per creare le funzionalità di sicurezza e progettare scenari di test di sicurezza.
Questi requisiti possono assomigliare a questo:
- Tutti i gateway e i punti di ingresso devono disporre di misure di autenticazione in atto.
- Il sistema deve implementare l'autenticazione tramite una schermata di accesso protetta.
- Tutti i dati personali devono essere crittografati in ogni momento.
- Per il trasferimento di dati sensibili deve essere utilizzato più di un canale di autenticazione.
Fase di pianificazione per Secure SDLC
La fase di pianificazione è il passaggio fondamentale in Secure SDLC. La pianificazione può variare da caso a caso, ma qui ci sono alcune delle cose più fondamentali che devono essere prese in considerazione:
- È necessario formare un team di sicurezza dedicato con esperienza per trascurare e dirigere tutte le misure relative alla sicurezza del software in modo imparziale. Questo team, preferibilmente di stanza al di fuori dell'ufficio di gestione del progetto, dovrebbe essere composto da un responsabile della sicurezza, architetti della sicurezza e tester della sicurezza. Tutti i membri del team devono avere ruoli e responsabilità chiaramente definiti.
- Eventuali ambiguità o escalation relative ai problemi di sicurezza del progetto devono essere gestite dal responsabile della sicurezza del prodotto. Deve essere avvisato dal team di sicurezza per assicurarsi che vengano prese le decisioni giuste.
- È necessario stabilire un punto di contatto per la sicurezza per assicurarsi che eventuali modifiche apportate alla sicurezza del prodotto non passino inosservate al team di sicurezza.
Architettura e fase di progettazione di SDLC
Durante la fase di progettazione deve essere eseguita una dettagliata valutazione dei rischi per la sicurezza del prodotto. Ciò include la revisione del programma da un punto di vista della sicurezza mentre non è entrato nella fase di codifica. Eventuali rischi per la sicurezza devono essere eliminati prima di entrare nella fase successiva. Per garantire la sicurezza, tutte le valutazioni devono essere eseguite secondo gli standard del settore.

Le cose che devono essere curate durante questa fase includono, ma non sono limitate a:
- Rivedere tutte le caratteristiche, i requisiti, le storie degli utenti e i documenti di progettazione in base ai dettagli condivisi dal team di progetto. In caso di assenza di uno qualsiasi dei documenti richiesti, tutto deve essere chiaramente discusso dai membri del team di progetto.
- Eventuali lacune nei requisiti di sicurezza del programma devono essere identificate e valutate rispetto agli standard del settore utilizzati. Se necessario, è possibile creare modelli di minaccia in base alle lacune individuate.
- Dovrebbero essere elencate le lacune con sufficienti rischi per la sicurezza e suggerite una possibile mitigazione.
Fase di sviluppo di SDLC
Questo è il vero "sviluppo" del software. Dopo aver preparato un layout sicuro dell'applicazione, gli sviluppatori devono scrivere il codice in un modo che sia in linea con le linee guida di sicurezza. Ciò comprende:
- Utilizzo di componenti open source senza vulnerabilità note.
- Utilizzo delle misure di sicurezza concordate durante lo sviluppo del software.
- Testare a freddo il codice per esporre e mitigare qualsiasi vulnerabilità nel codice.
Nella fase vengono eseguiti anche alcuni test. Ciò può includere cose come garantire che i dati sensibili non vengano trasmessi come testo normale.
Fase di implementazione dell'SDLC
Una volta sviluppato il software, il passaggio successivo è l'analisi dinamica del codice. Questa è una forma di test di sicurezza delle applicazioni, noto anche come test OWASP (Open Web Application Project).
Prima che la soluzione venga implementata nella vita reale, vengono eseguiti l'analisi delle vulnerabilità e il test di penetrazione. Le versioni del software su cui viene eseguito questo controllo sono chiamate build di test. Le cose principali da notare su questo includono:
- Strumenti come HP WebInspect, ZAP, Burp Suite e SOAP vengono utilizzati per verificare le vulnerabilità del software rispetto a vari database di vulnerabilità.
- L'intera fase è un misto di automazione e test manuali.
- Questo processo viene eseguito in un ambiente indipendente non collegato all'ambiente di sviluppo per garantire scenari di test vicini alla realtà.
- Qualsiasi vulnerabilità rilevata in questa fase viene mitigata prima del rilascio del software.
- Le minacce comuni e tipiche vengono identificate durante questa fase e vengono adottate misure per prevenirle.
Conclusione
Poiché la nostra dipendenza dal software continua ad aumentare, è importante renderli sicuri per gli utenti. Per assicurarsi che il software e le applicazioni siano all'altezza della sicurezza, vengono adottate le pratiche Secure SDLC. L'obiettivo finale è sempre quello di creare soluzioni software che siano invulnerabili.
IL processo SDLC sicuro prevede cinque fasi a partire dalla raccolta dei requisiti fino al test di pre-distribuzione. L'obiettivo è mitigare le minacce e le vulnerabilità in ogni fase in modo che non vengano portate avanti alla fase successiva.
