SEC11-BP05 Centralizzazione dei servizi per pacchetti e dipendenze
Fornisci servizi centralizzati per permettere ai team di sviluppo di ottenere pacchetti software e altre dipendenze. Questo approccio permette la convalida dei pacchetti prima di includerli nel software scritto e fornisce un'origine dati per l'analisi del software usato nell'organizzazione.
Risultato desiderato: il software include una serie di altri pacchetti software oltre al codice scritto. In questo modo, è più facile utilizzare implementazioni di funzionalità usate ripetutamente, come un parser JSON o una libreria di crittografia. La centralizzazione logica delle origini per questi pacchetti e dipendenze fornisce un meccanismo tramite il quale i team responsabili della sicurezza possono convalidare le proprietà dei pacchetti prima che vengano usati. Questo approccio riduce anche il rischio di un problema imprevisto causato da una modifica in un pacchetto esistente o dall'aggiunta da parte dei team di sviluppo di pacchetti arbitrari direttamente da Internet. Usa questo approccio insieme ai flussi di test manuali e automatici per garantire ulteriormente la qualità del software sviluppato.
Anti-pattern comuni:
-
Recupero di pacchetti da repository arbitrari su Internet.
-
Mancata esecuzione di test sui nuovi pacchetti prima di renderli disponibili agli sviluppatori.
Vantaggi dell'adozione di questa best practice:
-
Migliore comprensione dei pacchetti usati nel software sviluppato.
-
Capacità di informare i team responsabili del carico di lavoro quando un pacchetto deve essere aggiornato in base alle informazioni su chi usa cosa.
-
Minor rischio di includere nel software un pacchetto con problemi.
Livello di rischio associato alla mancata adozione di questa best practice: medio
Guida all'implementazione
Fornisci servizi centralizzati per i pacchetti e le dipendenze in modo da semplificarne l'uso per gli sviluppatori. La centralizzazione dei servizi può essere eseguita in modo logico anziché implementarli come sistema monolitico. Questo approccio permette di fornire servizi in modo da soddisfare le esigenze degli sviluppatori. Ti consigliamo di implementare un metodo efficiente per aggiungere pacchetti al repository quando sono necessari aggiornamenti o emergono nuovi requisiti. Servizi AWS come AWS CodeArtifact
Passaggi dell'implementazione:
Implementa un servizio di repository centralizzato in modo logico che sia disponibile in tutti gli ambienti in cui viene sviluppato il software.
Includi l'accesso al repository come parte del processo di provisioning automatico dell'Account AWS.
Crea automazione per testare i pacchetti prima che vengano pubblicati in un repository.
Gestisci le metriche dei pacchetti, dei linguaggi e dei team usati più comunemente e con la maggiore quantità di modifiche.
-
Offri ai team di sviluppo un meccanismo automatico per richiedere nuovi pacchetti e fornire feedback.
-
Analizza regolarmente i pacchetti nel repository per identificare il possibile impatto di nuovi problemi riscontrati.
Risorse
Best practice correlate:
Documenti correlati:
Video correlati:
Esempi correlati: