Condividi tramite


Configurare GitHub sicurezza avanzata per Azure DevOps

GitHub Advanced Security per Azure DevOps aggiunge la suite delle funzionalità di sicurezza avanzate di GitHub ad Azure Repos e include le seguenti funzionalità:

  • Protezione ai push tramite l'analisi dei segreti: verificare se i push di codice includono commit che espongono segreti come le credenziali
  • Scansione di segreti nei repository: esamina il tuo repository e cerca segreti esposti che sono stati accidentalmente commitati
  • Analisi delle dipendenze: cercare vulnerabilità note nelle dipendenze open source (dirette e transitive)
  • Analisi del codice: usare il motore di analisi statico codeQL per identificare le vulnerabilità dell'applicazione a livello di codice, ad esempio l'inserimento di SQL e il bypass dell'autenticazione

È possibile offrire all'azienda la protezione della sicurezza avanzata con la flessibilità necessaria per abilitare il livello di protezione appropriato per i repository. GitHub Advanced Security per Azure DevOps è disponibile come GitHub Protezione dei Segreti per Azure DevOps e Sicurezza del Codice GitHub per Azure DevOps.

La protezione dei segreti include le funzionalità seguenti:

  • Protezione push, per evitare perdite di segreti prima che si verifichino
  • Avvisi di analisi dei segreti con notifiche, per intercettare le esposizioni esistenti prima che diventino un problema
  • Panoramica della sicurezza, che fornisce informazioni dettagliate sul livello di rischio e protezione della sicurezza dell'organizzazione

La sicurezza del codice include le funzionalità seguenti:

  • Avvisi delle dipendenze, per individuare le vulnerabilità nelle dipendenze open source
  • Analisi codeQL per rilevare le vulnerabilità direttamente nel codice
  • Risultati della sicurezza per strumenti di terze parti
  • Panoramica della sicurezza, che fornisce informazioni dettagliate sul livello di rischio e protezione della sicurezza dell'organizzazione

GitHub Sicurezza avanzata per Azure DevOps è disponibile solo per i servizi Azure DevOps e in particolare per i repository Git di codice.

GitHub Sicurezza avanzata per Azure DevOps funziona con Azure Repos. Per utilizzare GitHub Sicurezza Avanzata con repository di GitHub, vedere GitHub Advanced Security.

Prerequisiti

Categoria Requisiti
Autorizzazioni - Per visualizzare un riepilogo di tutti gli avvisi per un repository: collaboratore autorizzazioni per il repository.
- Per ignorare gli avvisi in Sicurezza avanzata: delle autorizzazioni amministratore del progetto.
- Per gestire le autorizzazioni in Sicurezza avanzata: membro del gruppo Amministratori della raccolta di progetti o con l'autorizzazione Sicurezza avanzata: gestire le impostazioni impostata su Consenti.

Per altre informazioni sulle autorizzazioni di sicurezza avanzata, vedere Gestire le autorizzazioni di sicurezza avanzata.

Prerequisiti aggiuntivi per gli agenti ospitati autonomamente

Se l'organizzazione usa agenti self-hosted, aggiungere gli URL seguenti all'elenco Consenti in modo che l'attività di analisi delle dipendenze possa recuperare i dati di avviso sulle vulnerabilità. Per altre informazioni, vedere Indirizzi IP consentiti e URL di dominio.

URL di dominio Descrizione
https://governance.dev.azure.com Per le organizzazioni che usano il dominio dev.azure.com per accedere all'istanza di DevOps
https://dev.azure.com Per le organizzazioni che usano il dominio dev.azure.com per accedere all'istanza di DevOps
https://advsec.dev.azure.com Per le organizzazioni che usano il dominio dev.azure.com per accedere all'istanza di DevOps
https://{organization_name}.governance.visualstudio.com Per le organizzazioni che usano il dominio {organization_name}.visualstudio.com per accedere all'istanza di DevOps
https://{organization_name}.visualstudio.com  Per le organizzazioni che usano il dominio {organization_name}.visualstudio.com per accedere all'istanza di DevOps
https://{organization_name}.advsec.visualstudio.com Per le organizzazioni che usano il dominio {organization_name}.visualstudio.com per accedere all'istanza di DevOps
  • Eseguire una versione compatibile del runtime di .NET. A partire da aprile 2026, la versione corrente è ancora .NET 8.x. Se nell'agente non è presente una versione compatibile, il task di build di scansione delle dipendenze scarica .NET.

  • Verificare che CodeQL bundle sia installato nella cache degli strumenti dell'agente. È possibile usare la enableAutomaticCodeQLInstall: true variabile con l'attività AdvancedSecurity-Codeql-Init@1 pipeline per le pipeline YAML o selezionare la Enable automatic CodeQL detection and installation casella di controllo per le pipeline classiche. In alternativa, per le istruzioni di installazione manuale, vedere Scansione del codice per la Sicurezza Avanzata di GitHub per Azure DevOps.

Abilitare GitHub sicurezza avanzata

È possibile abilitare sicurezza avanzata a livello di organizzazione, progetto o repository. Per accedere a ognuno degli strumenti di analisi e dei risultati, è prima necessario abilitare Sicurezza avanzata. Dopo aver abilitato Sicurezza avanzata, tutti i push futuri contenenti segreti in un repository con questo criterio abilitato vengono bloccati e l'analisi dei segreti del repository viene eseguita in background.

Onboarding a livello di repository

  1. Passare alle impostazioni Project per il Azure DevOps project.
  2. Selezionare Repos>Repositories.
  3. Selezionare il repository per cui si vuole abilitare sicurezza avanzata.
  4. Selezionare Abilita e Inizia fatturazione per attivare Sicurezza avanzata. Ora viene visualizzata un'icona di scudo nella vista del repository per qualsiasi repository con Advanced Security abilitato.

Screenshot dell'abilitazione di GitHub Advanced Security.

onboarding a livello di progetto

  1. Passare alle impostazioni Project per il Azure DevOps project.
  2. Selezionare Repos.
  3. Seleziona la scheda Impostazioni.
  4. Selezionare Abilita tutto e visualizzare una stima per il numero di committer attivi per il tuo progetto. Questa azione abilita solo il prodotto per i repository esistenti.
  5. Selezionare Inizia fatturazione per attivare Sicurezza avanzata per ogni repository esistente nel progetto.
  6. Facoltativamente, selezionare Abilita automaticamente sicurezza avanzata per i nuovi repository in modo che tutti i nuovi repository creati in futuro abbiano la sicurezza avanzata abilitata al momento della creazione. Questa impostazione è separata dall'azione Abilita tutto e deve essere selezionata in modo indipendente.

Screenshot dell'abilitazione a livello di progetto per Sicurezza Avanzata.

Onboarding a livello di organizzazione

  1. Passare alle impostazioni di Organizzazione per l'organizzazione Azure DevOps.
  2. Selezionare Archivi.
  3. Seleziona Abilita tutto per visualizzare una stima del numero di collaboratori attivi per la tua organizzazione. Questa azione abilita solo il prodotto per i repository esistenti.
  4. Selezionare Inizia fatturazione per attivare Sicurezza avanzata per ogni repository esistente in ogni progetto dell'organizzazione.
  5. Facoltativamente, selezionare Abilita automaticamente sicurezza avanzata per i nuovi progetti in modo che tutti i progetti appena creati in futuro abbiano la sicurezza avanzata abilitata al momento della creazione. Questa impostazione è separata dall'azione Abilita tutto e deve essere selezionata in modo indipendente.

Screenshot dell'abilitazione a livello di organizzazione per Sicurezza Avanzata.

È possibile abilitare la protezione dei segreti o la sicurezza del codice a livello di organizzazione, progetto o repository.

Onboarding a livello di repository

  1. Passare alle impostazioni Project per il Azure DevOps project.
  2. Selezionare Repos>Repositories.
  3. Selezionare il repository per cui si vuole abilitare sicurezza avanzata.
  4. Attivare o disattivare protezione dei segreti o sicurezza del codice.
  5. Selezionare Inizia fatturazione. Ora viene visualizzata un'icona di scudo nella vista del repository per qualsiasi repository con uno dei due prodotti abilitato.
  6. Per abilitare facoltativamente l'impostazione predefinita per l'analisi delle dipendenze, selezionare Opzioni e abilitare la casella di controllo Impostazione predefinita analisi delle dipendenze.

Screenshot dell'abilitazione di GitHub Advanced Security.

onboarding a livello di progetto

  1. Passare alle impostazioni Project per il Azure DevOps project.
  2. Selezionare Repos.
  3. Seleziona la scheda Impostazioni.
  4. Seleziona Abilita tutto per visualizzare una stima del numero di committenti attivi per prodotto nel tuo progetto. Questa azione abilita solo il prodotto selezionato per i repository esistenti.
  5. Attivare o disattivare i prodotti desiderati di Protezione dei segreti o Sicurezza del codice e tutte le sottofeture associate.
  6. Selezionare Begin billing (Inizia fatturazione ) per attivare La protezione dei segreti e/o La sicurezza del codice per ogni repository esistente nel progetto.
  7. Facoltativamente, attivare Abilita automaticamente la sicurezza avanzata per i nuovi repository affinché i nuovi repository creati in futuro abbiano la protezione dei segreti o la sicurezza del codice abilitata al momento della loro creazione. Questa impostazione è separata dall'azione Abilita tutto e deve essere selezionata in modo indipendente.

Screenshot dell'abilitazione a livello di progetto per Sicurezza Avanzata.

Onboarding a livello di organizzazione

  1. Passare alle impostazioni di Organizzazione per l'organizzazione Azure DevOps.
  2. Selezionare Archivi.
  3. Seleziona Abilita tutto e visualizza una stima per il numero di committer attivi per prodotto per la tua organizzazione. Questa azione abilita solo il prodotto selezionato per i repository esistenti.
  4. Attivare o disattivare i prodotti desiderati di Protezione dei segreti o Sicurezza del codice e tutte le sottofeture associate.
  5. Selezionare Inizia fatturazione per attivare Sicurezza avanzata per ogni repository esistente in ogni progetto dell'organizzazione.
  6. Facoltativamente, attivare l'opzione per abilitare automaticamente la sicurezza avanzata per i nuovi progetti in modo che i nuovi progetti creati in futuro abbiano la protezione dei segreti o la sicurezza del codice abilitata al momento della creazione. Questa impostazione è separata dall'azione Abilita tutto e deve essere selezionata in modo indipendente.

Screenshot dell'abilitazione a livello di organizzazione per Sicurezza Avanzata.

Configurare la scansione dei segreti

La protezione push di analisi dei segreti e l'analisi dei repository vengono abilitate automaticamente quando si attiva la Sicurezza Avanzata. È possibile attivare o disattivare la protezione push dei dati sensibili dalla pagina delle impostazioni del repository.

Screenshot dell'abilitazione della protezione push.

La scansione del repository dei segreti viene avviata automaticamente quando si abilita Advanced Security per un repository selezionato.

La scansione dei segreti per la protezione push e l'analisi dei repository vengono abilitate automaticamente quando si attiva la protezione dei segreti. È possibile attivare o disattivare la protezione push dei dati sensibili dalla pagina delle impostazioni del repository.

Screenshot dell'abilitazione della protezione push.

La scansione dei segreti nel repository viene avviata automaticamente quando si abilita la protezione dei segreti per un repository selezionato.

Configurare l'analisi delle dipendenze

Per ottenere l'accesso alle funzionalità di analisi delle dipendenze, è necessario abilitare il prodotto Sicurezza del codice per il repository.

L'analisi delle dipendenze è uno strumento di analisi basato su pipeline. I risultati vengono aggregati per ogni repository. Per analizzare il ramo predefinito, è possibile usare l'impostazione "Analizza dipendenze vulnerabili" dalla pagina delle impostazioni del repository. Questa funzionalità includerà automaticamente l'attività di analisi delle dipendenze in qualsiasi pipeline destinata al ramo predefinito o a qualsiasi compilazione di richiesta pull destinata al ramo predefinito.

Per una configurazione più avanzata o per analizzare tutti i rami, è consigliabile aggiungere l'attività di analisi delle dipendenze a tutte le pipeline da analizzare. Per altri dettagli, vedere Dependency scanning for GitHub Advanced Security for Azure DevOps .

Configura la scansione del codice

Per ottenere l'accesso alle funzionalità di analisi del codice, è necessario abilitare il prodotto Sicurezza del codice per il repository.

Anche l'analisi del codice è uno strumento di analisi basato su pipeline in cui i risultati vengono aggregati per ogni repository. È possibile abilitare l'analisi del codice usando la configurazione predefinita o la configurazione avanzata. È possibile eseguire entrambi nella stessa organizzazione, a seconda delle tue esigenze e del livello di controllo dell'analisi.

La configurazione predefinita è il modo più rapido per abilitare l'analisi del codice. L'installazione predefinita viene eseguita su base pianificata usando Azure Pipelines, rileva le lingue supportate da CodeQL nel repository e configura automaticamente l'analisi. Se le lingue del repository cambiano, la configurazione della scansione si aggiorna automaticamente.

Il pool di agenti e la pianificazione dell'analisi per la configurazione predefinita vengono condivisi tra tutti i repository dell'organizzazione. È possibile configurare queste opzioni dalle impostazioni dell'organizzazione>repository nell'elenco a discesa delle Opzioni configurabili per l'installazione predefinita di CodeQL. Per altre informazioni su ogni opzione, vedere Configurare le opzioni di installazione predefinite.

L'installazione avanzata offre il controllo completo sulla configurazione di analisi aggiungendo le attività della pipeline CodeQL direttamente alle pipeline. Per informazioni dettagliate sulla configurazione dell'installazione avanzata, vedere Configurare l'analisi del codice.

Suggerimento

È consigliabile iniziare con l'installazione predefinita. Se è necessario un maggiore controllo sulla configurazione di analisi, ad esempio pool di agenti diversi, passaggi di compilazione personalizzati per i linguaggi compilati o l'analisi in più rami, è possibile eseguire sia la configurazione predefinita che la configurazione avanzata nella stessa organizzazione. Per altre informazioni, vedere Configurare l'analisi del codice.

Per generare avvisi, l'installazione predefinita viene eseguita in base a una pianificazione settimanale. Tutte le vulnerabilità rilevate vengono visualizzate nella scheda Sicurezza avanzata.

Configurare le annotazioni delle pull request

Per entrambe le analisi delle dipendenze e del codice, le annotazioni vengono configurate automaticamente per le richieste di pull in cui è applicato un criterio di convalida della compilazione con attività di analisi delle dipendenze e/o del codice incluse nella tua pipeline. Per altre informazioni sulla configurazione dei criteri di convalida della compilazione, vedere Convalida della compilazione.

Le annotazioni delle richieste di pull richiedono anche un'analisi di sicurezza avanzata sia nel ramo predefinito che in quello di destinazione, prima di analizzare il ramo di origine (richiesta di pull). Per ulteriori informazioni sulla risoluzione degli avvisi per i rami delle richieste pull, vedere Gestione degli avvisi di analisi delle dipendenze sulle richieste pull e Gestione degli avvisi di analisi del codice sulle richieste pull.

Configurare i controlli di stato della richiesta pull

I controlli avanzati dello stato di sicurezza consentono di bloccare l'unione delle richieste pull quando vengono rilevate vulnerabilità di sicurezza. Questi controlli di stato valutano l'analisi delle dipendenze, l'analisi del codice e i risultati dell'analisi dei segreti e pubblicano uno stato sulla pull request in base ai risultati.

Sono disponibili due controlli di stato:

  • Blocca su tutte le vulnerabilità critiche e elevate (AdvancedSecurity/AllHighAndCritical): usare questo controllo per imporre che tutti gli avvisi critici e con gravità elevata nel repository vengano risolti prima dell'unione.
  • Blocca sulle nuove vulnerabilità critiche e elevate (AdvancedSecurity/NewHighAndCritical): usare questo controllo per impedire l'introduzione di nuove vulnerabilità senza che tutte le vulnerabilità esistenti vengano risolte per prime. Questo controllo richiede un criterio di convalida della compilazione con attività di sicurezza avanzate per analizzare il ramo PR.

Configurare i controlli di stato come criteri di ramo

Per richiedere controlli di stato di sicurezza avanzati prima che le richieste pull possano essere unite, configurarle come criteri di ramo. È possibile impostarli per repository o per un progetto.

  1. Vai a Impostazioni del progetto>Repository.
  2. Facoltativamente, selezionare il repository da configurare.
  3. Selezionare Criteri e quindi selezionare il ramo da proteggere. Per impostazione predefinita, il ramo predefinito dei repository sarà protetto.
  4. Se non è già stata creata, aggiungi una politica di convalida della build. Questa operazione è necessaria affinché entrambi i controlli di stato vengano eseguiti correttamente. Nella pipeline di convalida della compilazione, se sono presenti più attività di sicurezza avanzata, abilitare la Wait for Processing proprietà per le attività AdvancedSecurity-CodeQL-Analyze e AdvancedSecurity-Publish .
  5. In Controlli di stato selezionare + per aggiungere un nuovo criterio di controllo dello stato.
  6. Nel menu Stato da selezionare immettere AdvancedSecurity per Genere e AllHighAndCritical o NewHighAndCritical come Nome. Queste opzioni vengono visualizzate dopo la prima esecuzione della pipeline con le attività di sicurezza avanzata.
  7. Scegliere il requisito criterio (obbligatorio o facoltativo) e impostare altre eventuali opzioni. Lasciare le opzioni avanzate ai valori predefiniti — cambiare l'identità autorizzata o richiedere un ID di iterazione impedisce l'esecuzione dei controlli di stato.
  8. Seleziona Salva.

Screenshot dell'aggiunta di un controllo dello stato di sicurezza avanzato.

Per altre informazioni sulla configurazione dei criteri di controllo dello stato, vedere Controlli di stato.

Per disabilitare la sicurezza avanzata, tutti gli avvisi e lo stato degli avvisi vengono mantenuti nella scheda Sicurezza avanzata per la successiva abilitazione della sicurezza avanzata per il repository.