Share via


Raccomandazioni sulla sicurezza per le risorse DevOps

Questo articolo elenca i suggerimenti visualizzati in Microsoft Defender per il cloud se si connette un ambiente Azure DevOps, GitHub o GitLab usando la pagina Impostazioni ambiente. Le raccomandazioni visualizzate nell'ambiente sono basate sulle risorse protette e sulla configurazione personalizzata.

Per informazioni sulle azioni che è possibile eseguire in risposta a queste raccomandazioni, vedere Correggere le raccomandazioni in Defender per il cloud.

Altre informazioni sui vantaggi e sulle funzionalità di sicurezza di DevOps.

Le raccomandazioni di DevOps non influiscono sul punteggio di sicurezza. Per decidere quali raccomandazioni risolvere prima, esaminare la gravità di ogni raccomandazione e il potenziale impatto sul punteggio di sicurezza.

Raccomandazioni di DevOps

Raccomandazioni di Azure DevOps

Per i repository Di Azure DevOps deve essere abilitata la sicurezza avanzata di GitHub per Azure DevOps (GHAzDO)

Descrizione: La sicurezza devOps in Defender per il cloud usa una console centrale per consentire ai team di sicurezza di proteggere le applicazioni e le risorse dal codice al cloud in Azure DevOps. Con l'abilitazione dei repository GitHub Advanced Security for Azure DevOps (GHAzDO) include GitHub Advanced Security per Azure DevOps, si ottengono risultati relativi a segreti, dipendenze e vulnerabilità del codice nei repository di Azure DevOps visualizzati in Microsoft Defender per il cloud.

Gravità: alta

I repository Di Azure DevOps devono avere i risultati dell'analisi dei segreti risolti

Descrizione: i segreti sono stati trovati nei repository di codice. Correggere immediatamente per evitare una violazione della sicurezza. I segreti trovati nei repository possono essere persi o individuati da avversari, causando la compromissione di un'applicazione o di un servizio. Nota: lo strumento di analisi delle credenziali di Microsoft Security DevOps analizza solo le build su cui è configurato per l'esecuzione. Pertanto, i risultati potrebbero non riflettere lo stato completo dei segreti nei repository.

Gravità: alta

I repository DevOps di Azure devono avere i risultati di analisi del codice risolti

Descrizione: le vulnerabilità sono state trovate nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità.

Gravità: medio

I repository Di Azure DevOps devono avere i risultati dell'analisi delle vulnerabilità delle dipendenze risolti

Descrizione: le vulnerabilità delle dipendenze sono state trovate nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità.

Gravità: medio

I repository DevOps di Azure devono avere un'infrastruttura perché i risultati dell'analisi del codice risolti

Descrizione: sono stati rilevati problemi di configurazione dell'infrastruttura come codice nei repository. I problemi mostrati di seguito sono stati rilevati nei file modello. Per migliorare il comportamento di sicurezza delle risorse cloud correlate, è consigliabile risolvere questi problemi.

Gravità: medio

Le pipeline di compilazione di Azure DevOps non devono avere segreti disponibili per le compilazioni di fork

Descrizione: nei repository pubblici è possibile che gli utenti esterni all'organizzazione creino fork ed eseguano compilazioni nel repository con fork. In questo caso, se questa impostazione è abilitata, gli esterni possono accedere ai segreti della pipeline di compilazione che devono essere interni.

Gravità: alta

Le connessioni al servizio Azure DevOps non devono concedere l'accesso a tutte le pipeline

Descrizione: le connessioni al servizio vengono usate per creare connessioni da Azure Pipelines a servizi esterni e remoti per l'esecuzione di attività in un processo. Le autorizzazioni della pipeline controllano quali pipeline sono autorizzate a usare la connessione al servizio. Per supportare la sicurezza delle operazioni della pipeline, alle connessioni del servizio non deve essere concesso l'accesso a tutte le pipeline YAML. Ciò consente di mantenere il principio dei privilegi minimi perché una vulnerabilità nei componenti usati da una pipeline può essere sfruttata da un utente malintenzionato per attaccare altre pipeline che hanno accesso alle risorse critiche.

Gravità: alta

I file protetti di Azure DevOps non devono concedere l'accesso a tutte le pipeline

Descrizione: i file protetti offrono agli sviluppatori un modo per archiviare i file che possono essere condivisi tra le pipeline. Questi file vengono in genere usati per archiviare segreti, ad esempio certificati di firma e chiavi SSH. Se a un file sicuro viene concesso l'accesso a tutte le pipeline YAML, un utente non autorizzato può rubare informazioni dai file protetti creando una pipeline YAML e accedendo al file sicuro.

Gravità: alta

I gruppi di variabili di Azure DevOps con variabili segrete non devono concedere l'accesso a tutte le pipeline

Descrizione: i gruppi di variabili archiviano i valori e i segreti che è possibile passare a una pipeline YAML o rendere disponibili in più pipeline. È possibile condividere e usare gruppi di variabili in più pipeline nello stesso progetto. Se un gruppo di variabili contenente segreti è contrassegnato come accessibile a tutte le pipeline YAML, un utente malintenzionato può sfruttare gli asset che coinvolgono le variabili segrete creando una nuova pipeline.

Gravità: alta

Le connessioni al servizio di Azure classico di Azure DevOps non devono essere usate per accedere a una sottoscrizione

Descrizione: usare il tipo di connessioni al servizio di Azure Resource Manager (ARM) anziché le connessioni al servizio classico di Azure per connettersi alle sottoscrizioni di Azure. Il modello arm offre più miglioramenti alla sicurezza, tra cui un controllo di accesso più forte, un controllo migliorato, una distribuzione/governance basata su ARM, l'accesso alle identità gestite e all'insieme di credenziali delle chiavi per i segreti, l'autenticazione basata su Entra Permissions e il supporto per tag e gruppi di risorse per una gestione semplificata.

Gravità: medio

(Anteprima) I repository Di Azure DevOps devono avere i risultati dei test di sicurezza dell'API risolti

Descrizione: le vulnerabilità di sicurezza delle API sono state trovate nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità.

Gravità: medio

Raccomandazioni su GitHub

Nei repository GitHub deve essere abilitata l'analisi dei segreti

Descrizione: GitHub analizza i repository per i tipi noti di segreti, per evitare l'uso fraudolento dei segreti di cui è stato accidentalmente eseguito il commit nei repository. L'analisi dei segreti analizzerà l'intera cronologia Git in tutti i rami presenti nel repository GitHub per individuare eventuali segreti. Esempi di segreti sono token e chiavi private che un provider di servizi può emettere per l'autenticazione. Se un segreto viene archiviato in un repository, chiunque abbia accesso in lettura al repository può usare il segreto per accedere al servizio esterno con tali privilegi. I segreti devono essere archiviati in una posizione sicura dedicata all'esterno del repository per il progetto.

Gravità: alta

Nei repository GitHub deve essere abilitata l'analisi del codice

Descrizione: GitHub usa l'analisi del codice per analizzare il codice per trovare vulnerabilità ed errori di sicurezza nel codice. L'analisi del codice può essere usata per trovare, valutare e classificare in ordine di priorità le correzioni per i problemi esistenti nel codice. L'analisi del codice può anche impedire agli sviluppatori di introdurre nuovi problemi. Le analisi possono essere pianificate per giorni e ore specifiche oppure le analisi possono essere attivate quando si verifica un evento specifico nel repository, ad esempio un push. Se l'analisi del codice rileva una potenziale vulnerabilità o un errore nel codice, GitHub visualizza un avviso nel repository. Una vulnerabilità è un problema nel codice di un progetto che potrebbe essere sfruttato per danneggiare la riservatezza, l'integrità o la disponibilità del progetto.

Gravità: medio

Per i repository GitHub deve essere abilitata l'analisi Dependabot

Descrizione: GitHub invia avvisi Dependabot quando rileva le vulnerabilità nelle dipendenze del codice che interessano i repository. Una vulnerabilità è un problema nel codice di un progetto che potrebbe essere sfruttato per danneggiare la riservatezza, l'integrità o la disponibilità del progetto o di altri progetti che usano il codice. Le vulnerabilità variano in base al tipo, alla gravità e al metodo di attacco. Quando il codice dipende da un pacchetto che presenta una vulnerabilità di sicurezza, questa dipendenza vulnerabile può causare una serie di problemi.

Gravità: medio

I repository GitHub devono avere i risultati dell'analisi dei segreti risolti

Descrizione: i segreti sono stati trovati nei repository di codice. Questa operazione deve essere risolta immediatamente per evitare una violazione della sicurezza. I segreti trovati nei repository possono essere persi o individuati da avversari, causando la compromissione di un'applicazione o di un servizio.

Gravità: alta

I repository GitHub devono avere i risultati di analisi del codice risolti

Descrizione: le vulnerabilità sono state trovate nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità.

Gravità: medio

I repository GitHub devono avere i risultati dell'analisi delle vulnerabilità delle dipendenze risolti

Descrizione: i repository GitHub devono avere i risultati dell'analisi delle vulnerabilità delle dipendenze risolti.

Gravità: medio

I repository GitHub devono avere un'infrastruttura perché i risultati dell'analisi del codice risolti

Descrizione: sono stati rilevati problemi di configurazione dell'infrastruttura come codice nei repository. I problemi mostrati di seguito sono stati rilevati nei file modello. Per migliorare il comportamento di sicurezza delle risorse cloud correlate, è consigliabile risolvere questi problemi.

Gravità: medio

I repository GitHub devono avere criteri di protezione per il ramo predefinito abilitato

Descrizione: il ramo predefinito del repository deve essere protetto tramite i criteri di protezione dei rami per impedire il commit diretto di modifiche indesiderate/dannose nel repository.

Gravità: alta

I repository GitHub devono avere forzare i push nel ramo predefinito disabilitato

Descrizione: poiché il ramo predefinito viene in genere usato per la distribuzione e altre attività con privilegi, le modifiche apportate devono essere affrontate con cautela. L'abilitazione delle operazioni di forza push può introdurre modifiche indesiderate o dannose al ramo predefinito.

Gravità: medio

Le organizzazioni GitHub devono avere la protezione push di analisi dei segreti abilitata

Descrizione: Protezione push blocca i commit che contengono segreti impedendo così l'esposizione accidentale dei segreti. Per evitare il rischio di esposizione delle credenziali, protezione push deve essere abilitata automaticamente per ogni repository abilitato per l'analisi dei segreti.

Gravità: alta

I repository GitHub non devono usare strumenti di esecuzione self-hosted

Descrizione: gli strumenti di esecuzione self-hosted in GitHub non dispongono di garanzie di funzionamento nelle macchine virtuali temporanee e possono essere compromessi in modo permanente da codice non attendibile in un flusso di lavoro. Di conseguenza, gli strumenti di esecuzione self-hosted non devono essere usati per i flussi di lavoro delle azioni.

Gravità: alta

Le organizzazioni GitHub devono disporre delle autorizzazioni del flusso di lavoro azioni impostate su sola lettura

Descrizione: per impostazione predefinita, ai flussi di lavoro di azione devono essere concesse autorizzazioni di sola lettura per impedire agli utenti malintenzionati di sfruttare flussi di lavoro con autorizzazioni eccessiva per accedere e manomettere le risorse.

Gravità: alta

Le organizzazioni GitHub devono avere più di una persona con autorizzazioni di amministratore

Descrizione: avere almeno due amministratori riduce il rischio di perdere l'accesso amministratore. Ciò è utile in caso di scenari di account break-glass.

Gravità: alta

Le organizzazioni GitHub devono avere autorizzazioni di base impostate su nessuna autorizzazione o lettura

Descrizione: le autorizzazioni di base devono essere impostate su nessuna o leggono affinché un'organizzazione segua il principio dei privilegi minimi e impedisca l'accesso non necessario.

Gravità: alta

(Anteprima) I repository GitHub devono avere i risultati dei test di sicurezza delle API risolti

Descrizione: le vulnerabilità di sicurezza delle API sono state trovate nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità.

Gravità: medio

Raccomandazioni su GitLab

I progetti GitLab devono avere i risultati dell'analisi dei segreti risolti

Descrizione: i segreti sono stati trovati nei repository di codice. Questa operazione deve essere risolta immediatamente per evitare una violazione della sicurezza. I segreti trovati nei repository possono essere persi o individuati da avversari, causando la compromissione di un'applicazione o di un servizio.

Gravità: alta

I progetti GitLab devono avere i risultati di analisi del codice risolti

Descrizione: le vulnerabilità sono state trovate nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità.

Gravità: medio

I progetti GitLab devono avere i risultati dell'analisi delle vulnerabilità delle dipendenze risolti

Descrizione: i repository GitHub devono avere i risultati dell'analisi delle vulnerabilità delle dipendenze risolti.

Gravità: medio

I progetti GitLab devono avere un'infrastruttura perché i risultati dell'analisi del codice risolti

Descrizione: sono stati rilevati problemi di configurazione dell'infrastruttura come codice nei repository. I problemi mostrati di seguito sono stati rilevati nei file modello. Per migliorare il comportamento di sicurezza delle risorse cloud correlate, è consigliabile risolvere questi problemi.

Gravità: medio

Raccomandazioni sulla sicurezza di DevOps deprecate

I repository di codice devono avere i risultati di analisi del codice risolti

Descrizione: la sicurezza devOps in Defender per il cloud ha rilevato vulnerabilità nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità. (Nessun criterio correlato)

Gravità: medio

I repository di codice devono avere i risultati dell'analisi dei segreti risolti

Descrizione: la sicurezza devOps in Defender per il cloud ha trovato un segreto nei repository di codice. Questa operazione deve essere risolta immediatamente per evitare una violazione della sicurezza. I segreti trovati nei repository possono essere persi o individuati da avversari, causando la compromissione di un'applicazione o di un servizio. Per Azure DevOps, lo strumento Microsoft Security DevOps CredScan analizza solo le build su cui è stato configurato per l'esecuzione. Pertanto, i risultati potrebbero non riflettere lo stato completo dei segreti nei repository. (Nessun criterio correlato)

Gravità: alta

I repository di codice devono avere i risultati di analisi Dependabot risolti

Descrizione: la sicurezza devOps in Defender per il cloud ha rilevato vulnerabilità nei repository di codice. Per migliorare il comportamento di sicurezza dei repository, è consigliabile correggere queste vulnerabilità. (Nessun criterio correlato)

Gravità: medio

I repository di codice devono avere un'infrastruttura perché i risultati dell'analisi del codice sono stati risolti

Descrizione: la sicurezza devOps in Defender per il cloud ha rilevato un'infrastruttura come problemi di configurazione della sicurezza del codice nei repository. I problemi mostrati di seguito sono stati rilevati nei file modello. Per migliorare il comportamento di sicurezza delle risorse cloud correlate, è consigliabile risolvere questi problemi. (Nessun criterio correlato)

Gravità: medio

Nei repository GitHub deve essere abilitata l'analisi del codice

Descrizione: GitHub usa l'analisi del codice per analizzare il codice per trovare vulnerabilità ed errori di sicurezza nel codice. L'analisi del codice può essere usata per trovare, valutare e classificare in ordine di priorità le correzioni per i problemi esistenti nel codice. L'analisi del codice può anche impedire agli sviluppatori di introdurre nuovi problemi. Le analisi possono essere pianificate per giorni e ore specifiche oppure le analisi possono essere attivate quando si verifica un evento specifico nel repository, ad esempio un push. Se l'analisi del codice rileva una potenziale vulnerabilità o un errore nel codice, GitHub visualizza un avviso nel repository. Una vulnerabilità è un problema nel codice di un progetto che potrebbe essere sfruttato per danneggiare la riservatezza, l'integrità o la disponibilità del progetto. (Nessun criterio correlato)

Gravità: medio

Nei repository GitHub deve essere abilitata l'analisi dei segreti

Descrizione: GitHub analizza i repository per i tipi noti di segreti, per evitare l'uso fraudolento dei segreti di cui è stato accidentalmente eseguito il commit nei repository. L'analisi dei segreti analizzerà l'intera cronologia Git in tutti i rami presenti nel repository GitHub per individuare eventuali segreti. Esempi di segreti sono token e chiavi private che un provider di servizi può emettere per l'autenticazione. Se un segreto viene archiviato in un repository, chiunque abbia accesso in lettura al repository può usare il segreto per accedere al servizio esterno con tali privilegi. I segreti devono essere archiviati in una posizione sicura dedicata all'esterno del repository per il progetto. (Nessun criterio correlato)

Gravità: alta

Per i repository GitHub deve essere abilitata l'analisi Dependabot

Descrizione: GitHub invia avvisi Dependabot quando rileva le vulnerabilità nelle dipendenze del codice che interessano i repository. Una vulnerabilità è un problema nel codice di un progetto che potrebbe essere sfruttato per danneggiare la riservatezza, l'integrità o la disponibilità del progetto o di altri progetti che usano il codice. Le vulnerabilità variano in base al tipo, alla gravità e al metodo di attacco. Quando il codice dipende da un pacchetto che presenta una vulnerabilità di sicurezza, questa dipendenza vulnerabile può causare una serie di problemi. (Nessun criterio correlato)

Gravità: medio