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.
GitHub Advanced Security per Azure DevOps aggiunge la suite di funzionalità di sicurezza di GitHub Advanced Security ad Azure Repos e include le funzionalità seguenti:
- 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 for Azure DevOps è disponibile come GitHub Secret Protection per Azure DevOps e GitHub Code Security for 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 Advanced Security per Azure DevOps è disponibile solo per Azure DevOps Services e in particolare per i repository Git di codice.
GitHub Advanced Security per Azure DevOps funziona con Azure Repos. Per usare GitHub Advanced Security con i repository GitHub, vedere GitHub Advanced Security.
Prerequisiti
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 .NET (attualmente .NET 8.x). Se non è presente una versione compatibile nell'agente, l'attività di analisi delle dipendenze scaricherà .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 laEnable automatic CodeQL detection and installation
casella di controllo per le pipeline classiche. In alternativa, per istruzioni sull'installazione manuale, vedere Analisi del codice per GitHub Advanced Security per Azure DevOps.
Abilitare GitHub Advanced Security
È 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
- Passare alle impostazioni del progetto per il progetto Azure DevOps.
- Selezionare Repository>Repository.
- Selezionare il repository per cui si vuole abilitare sicurezza avanzata.
- 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.
Onboarding a livello di progetto
- Passare alle impostazioni del progetto per il progetto Azure DevOps.
- Selezionare Repo.
- Seleziona la scheda Impostazioni.
- Selezionare Abilita tutto e visualizzare una stima per il numero di committer attivi per il tuo progetto.
- Selezionare Inizia fatturazione per attivare Sicurezza avanzata per ogni repository esistente nel progetto.
- Facoltativamente, selezionare Abilita automaticamente la sicurezza avanzata per i nuovi repository in modo che tutti i nuovi repository creati abbiano la sicurezza avanzata abilitata al momento della creazione.
Onboarding a livello di organizzazione
- Vai alle impostazioni dell'organizzazione per la tua organizzazione Azure DevOps.
- Selezionare Archivi.
- Seleziona Abilita tutto per visualizzare una stima del numero di collaboratori attivi per la tua organizzazione.
- Selezionare Inizia fatturazione per attivare Sicurezza avanzata per ogni repository esistente in ogni progetto dell'organizzazione.
- Facoltativamente, selezionare Abilita automaticamente sicurezza avanzata per i nuovi repository in modo che tutti i progetti appena creati abbiano la sicurezza avanzata abilitata al momento della creazione.
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.
La scansione del repository dei segreti viene avviata automaticamente quando si abilita Advanced Security per un repository selezionato.
Configurare l'analisi delle dipendenze
È possibile abilitare la protezione dei segreti o la sicurezza del codice a livello di organizzazione, progetto o repository.
Onboarding a livello di repository
- Passare alle impostazioni del progetto per il progetto Azure DevOps.
- Selezionare Repository>Repository.
- Selezionare il repository per cui si vuole abilitare sicurezza avanzata.
- Attivare o disattivare protezione dei segreti o sicurezza del codice.
- Selezionare Inizia fatturazione. Ora viene visualizzata un'icona di scudo nella vista del repository per qualsiasi repository con uno dei due prodotti abilitato.
- Per abilitare facoltativamente l'impostazione predefinita per l'analisi delle dipendenze, selezionare Opzioni e abilitare la casella di controllo Impostazione predefinita analisi delle dipendenze.
Onboarding a livello di progetto
- Passare alle impostazioni del progetto per il progetto Azure DevOps.
- Selezionare Repo.
- Seleziona la scheda Impostazioni.
- Seleziona Abilita tutto per visualizzare una stima del numero di committenti attivi per prodotto nel tuo progetto.
- Attivare o disattivare i prodotti desiderati di Protezione dei segreti o Sicurezza del codice.
- Selezionare Begin billing (Inizia fatturazione ) per attivare La protezione dei segreti e/o La sicurezza del codice per ogni repository esistente nel progetto.
- Opzionalmente, attivare l'opzione Abilita automaticamente la sicurezza avanzata per i nuovi repository in modo che tutti i nuovi repository creati abbiano Protezione segreta o Sicurezza del codice abilitata al momento della creazione.
Onboarding a livello di organizzazione
- Vai alle impostazioni dell'organizzazione per la tua organizzazione Azure DevOps.
- Selezionare Archivi.
- Seleziona Abilita tutto e visualizza una stima per il numero di committer attivi per prodotto per la tua organizzazione.
- Attivare o disattivare i prodotti desiderati di Protezione dei segreti o Sicurezza del codice.
- Selezionare Inizia fatturazione per attivare Sicurezza avanzata per ogni repository esistente in ogni progetto dell'organizzazione.
- Facoltativamente, attivare automaticamente la sicurezza avanzata per i nuovi repository in modo che tutti i progetti appena creati abbiano la Protezione dei Segreti o la Sicurezza del Codice abilitate quando vengono creati.
Configurare la scansione dei segreti
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.
Come accennato, la scansione del repository per segreti 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. È consigliabile aggiungere l'attività di analisi delle dipendenze a tutte le pipeline da analizzare.
Suggerimento
Per ottenere risultati di analisi più accurati, aggiungere l'attività di analisi delle dipendenze dopo i passaggi di compilazione o il passaggio di ripristino del pacchetto in una pipeline che compila il codice da analizzare.
- YAML
- Classico
Aggiungere l'attività Advanced Security Dependency Scanning (AdvancedSecurity-Dependency-Scanning@1) direttamente al file della pipeline YAML oppure selezionare l'attività Advanced Security Dependency Scanning dall'assistente attività.
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.
Suggerimento
L'analisi del codice può essere un'attività di compilazione con un utilizzo più intensivo del tempo, pertanto è consigliabile aggiungere l'attività di analisi del codice a una pipeline separata clonata della pipeline di produzione principale o creare una nuova pipeline.
- YAML
- Classico
Aggiungere le attività nell'ordine seguente:
- Inizializzazione di sicurezza avanzata di CodeQL (AdvancedSecurity-Codeql-Init@1)
- Istruzioni di compilazione personalizzate
- Analisi di sicurezza avanzata con CodeQL (AdvancedSecurity-Codeql-Analyze@1)
Specificare anche la lingua che si sta analizzando nell'attività Initialize CodeQL
. È possibile usare un elenco delimitato da virgole per analizzare più lingue contemporaneamente. Le lingue supportate sono csharp, cpp, go, java, javascript, python, ruby, swift
. Se si usano agenti self-hosted, è anche possibile aggiungere la enableAutomaticCodeQLInstall: true
variabile per installare automaticamente i bit CodeQL più recenti per l'agente.
Di seguito è riportato un esempio di pipeline di avvio:
trigger:
- main
pool:
# Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
vmImage: ubuntu-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: "java"
# Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
# You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines
# If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
enableAutomaticCodeQLInstall: true
# Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.
# If you had a Maven app:
# - task: Maven@4
# inputs:
# mavenPomFile: 'pom.xml'
# goals: 'clean package'
# publishJUnitResults: true
# testResultsFiles: '**/TEST-*.xml'
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.17'
# mavenVersionOption: 'Default'
# Or a general script:
# - script: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines
- task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines
Suggerimento
L'analisi codeQL per Kotlin/Swift è attualmente in versione beta. Durante la beta, l'analisi di questi linguaggi è meno completa rispetto all'analisi codeQL di altri.
- Usare
java
per analizzare il codice scritto in Java, Kotlin o entrambi. - Usare
javascript
per analizzare il codice scritto in JavaScript, TypeScript o entrambi.
Se il linguaggio specificato è cpp, java, csharp
o swift
, sono necessari passaggi di compilazione personalizzati.
Configurare le annotazioni delle pull request
Per l'analisi delle dipendenze e l'analisi del codice, le annotazioni vengono configurate automaticamente per le pull request in cui viene applicato un criterio di convalida della compilazione con attività di analisi delle dipendenze e/o del codice incluse nella 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.
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.
Articoli correlati
- Avvisi di analisi del codice per GitHub Advanced Security per Azure DevOps
- Avvisi di analisi delle dipendenze per La sicurezza avanzata di GitHub per Azure DevOps
- Avvisi di analisi dei segreti per GitHub Advanced Security per Azure DevOps
- Autorizzazioni per GitHub Advanced Security per Azure DevOps
- Fatturazione per GitHub Advanced Security per Azure DevOps