Configurer GitHub Advanced Security pour Azure DevOps
GitHub Advanced Security pour Azure DevOps ajoute la suite de fonctionnalités de sécurité de GitHub Advanced Security à Azure Repos.
GitHub Advanced Security pour Azure inclut :
- Protection push de l’analyse des secrets : vérifiez si le code push inclut des commits qui exposent des secrets tels que des informations d’identification
- Analyse du référentiel d’analyse des secrets : analysez votre référentiel et recherchez les secrets exposés qui ont été validés accidentellement
- Analyse des dépendances : recherchez les vulnérabilités connues dans les dépendances open source (directes et transitives)
- Analyse du code : utilisez le moteur d’analyse statique CodeQL pour identifier les vulnérabilités d’application au niveau du code, telles que l’injection SQL et le contournement de l’authentification
Pour le moment, GitHub Advanced Security for Azure DevOps n’est disponible que pour Azure DevOps Services et il n’est pas prévu d’introduire ce produit sur Azure DevOps Server.
GitHub Advanced Security pour Azure DevOps fonctionne avec Azure Repos. Si vous souhaitez utiliser GitHub Advanced Security avec des référentiels GitHub, consultez GitHub Advanced Security.
Prérequis
Vous devez disposer d’autorisations allouées en tant que membre du groupe Administrateurs de la collection Project. Pour ajouter des membres au groupe Administrateurs de collection de projets ou modifier une autorisation au niveau de la collection de projets, consultez Modifier les autorisationsau niveau de la collection de projets.
Prérequis supplémentaires pour les agents auto-hébergés
Si votre organisation utilise des agents auto-hébergés, il existe d’autres exigences :
- Ajoutez ces URL à votre liste d’autorisations pour permettre à la tâche d’analyse des dépendances d’extraire des données d’avis sur les vulnérabilités. En savoir plus sur les adresses IP autorisées et lesURL de domaine.
URL du domaine | Description |
---|---|
https://governance.dev.azure.com/{organization_name} |
Pour que les organisations utilisant le domaine dev.azure.com accèdent à leur instance DevOps |
https://dev.azure.com/{organization_name} |
Pour que les organisations utilisant le domaine dev.azure.com accèdent à leur instance DevOps |
https://advsec.dev.azure.com/{organization_name} |
Pour que les organisations utilisant le domaine dev.azure.com accèdent à leur instance DevOps |
https://{organization_name}.governance.visualstudio.com/ |
Pour les organisations utilisant le domaine {organization_name}.visualstudio.com accèdent à leur instance DevOps |
https://{organization_name}.visualstudio.com |
Pour les organisations utilisant le domaine {organization_name}.visualstudio.com accèdent à leur instance DevOps |
https://{organization_name}.advsec.visualstudio.com/ |
Pour les organisations utilisant le domaine {organization_name}.visualstudio.com accèdent à leur instance DevOps |
Exécutez une version compatible du runtime .NET (actuellement .NET 6.0.x). Si une version compatible n’est pas présente sur l’agent, la tâche de génération d’analyse des dépendances télécharge .NET.
Vérifiez que le bundle CodeQL est installé dans le cache de l’outil agent sur votre agent. Vous pouvez utiliser la variable avec la
enableAutomaticCodeQLInstall: true
tâche deAdvanced-Security-CodeQL@1
pipeline pour les pipelines YAML ou cocher laEnable automatic CodeQL detection and installation
case à cocher pour les pipelines classiques. Sinon, pour obtenir des instructions d’installation manuelles, consultez l’analyse du code pour GitHub Advanced Security pour Azure DevOps.
Activer GitHub Advanced Security
Vous pouvez activer la sécurité avancée au niveau de l'organisation, du projet ou du référentiel. Pour accéder à chacun des outils et résultats d'analyse, vous devez d'abord activer la sécurité avancée. Une fois que vous avez activé Advanced Security, les futurs envois contenant des secrets vers un référentiel avec cette stratégie activée sont bloqués et l’analyse des secrets du référentiel se produit en arrière-plan.
Intégration au niveau du référentiel
- Accédez à vos Paramètres projet pour votre projet Azure DevOps.
- Select Référentiels>Repos.
- Sélectionnez le référentiel pour lequel vous souhaitez activer Advanced Security.
- Sélectionnez Activer et commencer la facturation pour activer Advanced Security. Une icône de bouclier s’affiche désormais dans l’affichage référentiel pour n’importe quel référentiels avec Advanced Security activé.
Intégration au niveau du projet
- Accédez à vos Paramètres projet pour votre projet Azure DevOps.
- Sélectionnez Repos.
- Sélectionnez l’onglet Paramètres.
- Sélectionnez Activer tout et voir une estimation du nombre de commiteurs actifs pour votre projet.
- Sélectionnez Commencer la facturation pour activer la sécurité avancée pour chaque référentiel existant dans votre projet.
- Vous pouvez éventuellement sélectionner Activer automatiquement la sécurité avancée pour les nouveaux référentiels afin que la sécurité avancée soit activée lors de la création de tous les référentiels nouvellement créés.
Intégration au niveau de l'organisation
- Accédez aux paramètres de votre organisation pour votre organisation Azure DevOps.
- Sélectionnez Dépôts.
- Sélectionnez Activer tout et consultez une estimation du nombre de commiteurs actifs pour votre organisation.
- Sélectionnez Commencer la facturation pour activer la sécurité avancée pour chaque référentiel existant dans chaque projet de votre organisation.
- Vous pouvez éventuellement sélectionner Activer automatiquement la sécurité avancée pour les nouveaux référentiels afin que la sécurité avancée soit activée lors de la création de tous les projets nouvellement créés.
Configurer l’analyse des secrets
La protection push de l’analyse des secrets et l’analyse des référentiels sont automatiquement activées lorsque vous activez Advanced Security. Vous pouvez activer ou désactiver la protection push de secrets à partir de la page des paramètres du référentiel.
Comme mentionné, l’analyse du référentiel d’analyse des secrets est automatiquement lancée lors de l’activation d’Advanced Security pour un référentiel sélectionné.
Configurer l’analyse des dépendances
L’analyse des dépendances est un outil d’analyse basé sur un pipeline. Les résultats sont agrégés par référentiel. Il est recommandé d’ajouter la tâche d’analyse des dépendances à tous les pipelines que vous souhaitez analyser.
Conseil
Pour obtenir les résultats d'analyse les plus précis, veillez à ajouter la tâche d'analyse des dépendances à la suite des étapes de construction et/ou de restauration des packages d'un pipeline qui construit le code que vous souhaitez analyser.
Ajoutez la tâche Analyse avancée des dépendances de sécurité (AdvancedSecurity-Dependency-Scanning@1) directement à votre fichier de pipeline YAML ou sélectionnez la tâche Analyse avancée des dépendances de sécurité dans l'assistant de tâches.
Configurer l’analyse du code
L’analyse du code est également un outil d’analyse basé sur un pipeline où les résultats sont agrégés par référentiel.
Conseil
Il est recommandé d’ajouter la tâche d’analyse du code à un pipeline distinct, cloné de votre pipeline de production principal ou de créer un pipeline. Cela est dû au fait que l’analyse du code peut être une tâche build plus longue.
Ajoutez les tâches dans l’ordre suivant :
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Vos étapes de génération personnalisées
- Sécurité avancée Effectuer une analyse CodeQL (AdvancedSecurity-Codeql-Analyze@1)
En outre, vous devez spécifier la ou les langues que vous analysez dans la tâche Initialize CodeQL. Une liste séparée par des virgules peut être utilisée pour analyser plusieurs langues à la fois. Les langues prises en charge sont csharp, cpp, go, java, javascript, python, ruby, swift
. Si vous utilisez des agents auto-hébergés, vous pouvez également ajouter la enableAutomaticCodeQLInstall: true
variable pour installer automatiquement les derniers bits CodeQL pour votre agent.
Voici un exemple de pipeline de démarrage :
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
Conseil
L’analyse CodeQL pour Kotlin/Swift est actuellement en version bêta. Dans la version bêta, l’analyse de ces langues sera moins complète que l’analyse d’autres langages par CodeQL.
Utilisez java
pour analyser le code écrit en Java, Kotlin ou les deux.
Utilisez javascript
pour analyser le code écrit en JavaScript, TypeScript ou les deux.
Si la langue spécifiée est cpp, java, csharp
ou swift
si des étapes de génération personnalisées sont requises.
Si, pour une raison quelconque, vous devez désactiver Advanced Security, toutes les alertes et l’état des alertes seront conservés pour la prochaine fois que vous réactivez Advanced Security pour votre référentiel.
Étapes suivantes
- Alertes d’analyse du code pour GitHub Advanced Security pour Azure DevOps
- Alertes d’analyse des dépendances pour GitHub Advanced Security pour Azure DevOps
- Alertes d’analyse des secrets pour GitHub Advanced Security pour Azure DevOps
- Autorisations pour GitHub Advanced Security pour Azure DevOps
- Facturation pour GitHub Advanced Security pour Azure DevOps