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
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 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 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 Sicurezza avanzata. È possibile abilitare o disabilitare la protezione push dei segreti dalla pagina delle impostazioni del repository.
Come accennato, l'analisi del repository di analisi dei segreti viene avviata automaticamente quando si abilita Sicurezza avanzata per un repository selezionato.
Configurare l'analisi delle dipendenze
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.
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
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.
Aggiungere le attività nell'ordine seguente:
- Inizializzazione 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 richieste pull
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