Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Lo sviluppo e i test nel DevSecOps determinano se la sicurezza diventa parte delle attività di ingegneria quotidiane oppure rimane qualcosa di cui i team si occupano troppo tardi. Procedure avanzate per la scrittura di codice, strumenti, integrazione e test aiutano i team a trovare e risolvere i problemi durante la scrittura del codice.
Questa area di funzionalità descrive come i team scrivono codice sicuro, accelerano lo sviluppo con strumenti e componenti approvate e integrano e testano il lavoro. È il punto in cui la sicurezza diventa parte dell'ingegneria di tutti i giorni o rimane un afterthought.
Man mano che le organizzazioni maturano, lo sviluppo e i test passano da attività diverse e non gestite verso un ambiente ottimizzato per i singoli sviluppatori. I test di sicurezza diventano continui, l’intelligenza artificiale e l’open source passano da non governati a sicuri per l’uso aziendale e orientati a uno scopo preciso, e il testing passa da periodico e manuale ad automatizzato e spostato a sinistra.
Aree di funzionalità di base
Sviluppo e test in DevSecOps sono incentrati su tre funzionalità secondarie:
Sicurezza del codice: come vengono applicati strumenti e test di sicurezza al codice durante la scrittura e la revisione.
Acceleratori di sviluppo: come vengono regolati e usati componenti di intelligenza artificiale, open source e riutilizzabili per velocizzare il recapito.
Integrazione e test: gestione di repository, rami, compilazioni e test automatizzati.
Fasi
Lo sviluppo e i test si articolano in cinque fasi di maturità. Queste fasi mostrano in che modo i principi DevSecOps vengono visualizzati nelle attività di sviluppo, dalla sperimentazione non gestita a un ambiente di test e codice ottimizzato che migliora l'efficienza dello sviluppatore.
| Fase complessiva | Nome della fase | Che aspetto ha |
|---|---|---|
| Ad hoc | Disparati | Nessuna gestione delle risorse; rapida creazione di prototipi ed esplorazione non sbrigliata. |
| Inizio | Emergente | I team improvvisano la supervisione, iniziando a spostarsi verso una mentalità DevOps. |
| Orchestrazione | Continuo | Una strategia completa con l'automazione integra gli standard nei processi continui. |
| Semplificazione | Spostato a sinistra | Spostarsi a sinistra significa che i problemi vengono rilevati in precedenza e costano meno per risolvere i problemi. |
| Pioniere | Ottimizzato | Il codice e l'ambiente di test sono ottimizzati per l'efficienza dei singoli sviluppatori. |
Disparati (ad hoc)
Senza la gestione delle risorse o le attività iniziali di programmazione, è possibile realizzare rapidamente prototipi ed effettuare un’esplorazione senza vincoli. Questo stato è un punto di partenza naturale per le startup e le nuove organizzazioni.
Sicurezza del codice: non esiste o meno un uso coerente degli strumenti di sicurezza del codice, che crea una superficie di rischio crescente.
Acceleratori di sviluppo: I team utilizzano strumenti di IA non approvati al di fuori dell'organizzazione e fanno ampio uso non regolamentato di software open source o di esempi di codice della community. L'assenza di una policy può anche indurre alcuni sviluppatori a evitare del tutto questi strumenti, perdendo opportunità di migliorare l'efficienza.
Integrazione e test: il lavoro viene sparso in più repository e le compilazioni vengono eseguite manualmente e raramente con configurazioni diverse.
Iniziale (avvio)
I team iniziano a improvvisare la supervisione degli asset e delle metodologie, iniziando un passaggio più ampio verso una mentalità DevOps.
Sicurezza del codice: Teams usa occasionalmente strumenti di test della sicurezza locali.
Acceleratori dello sviluppo: I team riconoscono i rischi derivanti dall'IA non autorizzata e dal software open source, e in alcune aree dell'organizzazione emergono policy, incluse restrizioni o linee guida per il riutilizzo del codice proveniente dalle community di sviluppatori.
Integrazione e test: Teams definisce strategie di repository e di diramazione. I test sono ancora prevalentemente periodici, manuali e talvolta esternalizzati. Allo stesso tempo, la testabilità inizia a emergere in modo isolato, e alcuni team adottano pratiche di integrazione continua.
Continuo (Orchestrazione)
Con una strategia completa supportata dall'automazione, gli strumenti dinamici e i processi aiutano a creare standard in flussi di lavoro e monitoraggio continui.
Sicurezza del codice: alcuni test di sicurezza sono in atto, la sicurezza diventa parte della revisione del codice e i test di sicurezza più approfonditi vengono eseguiti in base a una pianificazione. Vengono adottate strategie di denominazione e di diramazione standardizzate.
Acceleratori di sviluppo: l'intelligenza artificiale sicura per le aziende e i open source vengono resi disponibili in base ai criteri di utilizzo. L'intelligenza artificiale è integrata in IDE come supporto di programmazione e in strumenti DevOps che migliorano i flussi di lavoro delle richieste pull.
Integrazione e test: sono disponibili nomi standardizzati, strategie di diramazione e framework di test. I test automatizzati vengono introdotti nelle pipeline CI/CD primarie, inclusi alcuni test di integrazione.
Spostato a sinistra (streamlining)
La creazione di un ambiente per lo spostamento a sinistra significa che i problemi vengono rilevati in precedenza e meno costosi da correggere.
Sicurezza del codice: I team impongono criteri di blocco per le vulnerabilità ad alta gravità. Gli strumenti di codice dell'IDE includono funzionalità di sicurezza, inclusa la protezione contro l'inserimento di richieste e l'avvelenamento dei dati.
Acceleratori di sviluppo: Teams usa modelli di linguaggio di grandi dimensioni (LLM) sicuri dell'organizzazione allineati a modelli e standard chiari. Gli agenti devOps e ingegneria del software basati sull'intelligenza artificiale iniziano ad automatizzare il lavoro e a operare con maggiore autonomia.
Integrazione e test: sono disponibili procedure di test diffuse, inclusi unit test e test di integrazione. I test automatizzati vengono eseguiti in modo continuo e rilevano i problemi in precedenza nel processo. Teams utilizza anche simulazioni di phishing.
Ottimizzato (pionieristico)
Quando si ottimizza il codice e l'ambiente di test per singoli sviluppatori, si crea un'efficienza più personalizzata.
Sicurezza del codice: la sicurezza diventa continua ed è supportata dall'osservabilità avanzata.
Acceleratori per lo sviluppo: gli sviluppatori estendono gli LLM assistenti per il codice con i propri schemi personalizzati. L'uso dei componenti diventa intenzionale ed è progettato per soddisfare gli obiettivi di prestazioni, conformità e gestione dei rischi. I server MCP e l'orchestrazione emergono come parte della toolchain.
Integrazione e test: l'automazione dei test diventa completa, inclusi i test delle prestazioni. I team adottano anche il rilevamento delle minacce basato sull'intelligenza artificiale e perseguono altre opportunità per migliorare i cicli di feedback di progettazione.