Configurer l’extension Microsoft Security DevOps Azure DevOps

Microsoft Security DevOps est une application en ligne de commande qui intègre des outils d’analyse statique dans le cycle de vie du développement. Microsoft Security DevOps installe, configure et exécute les dernières versions des outils d’analyse statique, notamment, mais sans s’y limiter, les outils SDL, de sécurité et de conformité. Microsoft Security DevOps est piloté par les données avec des configurations portables qui permettent une exécution déterministe dans plusieurs environnements.

Microsoft Security DevOps utilise les outils open source suivants :

Nom Langage Licence
AntiMalware La protection contre les logiciels anti-programme malveillant, dans Windows de Microsoft Defender for Endpoint, analyse à la recherche de programmes malveillants et interrompt la génération si un programme malveillant a été détecté. Cet outil analyse par défaut le plus récent agent Windows. Non open source
Bandit Python Licence Apache 2.0
BinSkim Binary--Windows, ELF Licence MIT
Checkov Terraform, plan Terraform, CloudFormation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Licence Apache 2.0
ESlint JavaScript Licence MIT
IaCFileScanner Outil de mappage de modèles pour Terraform, CloudFormation, modèle ARM, Bicep Non open source
Template Analyzer Modèle ARM, Bicep Licence MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Licence Apache 2.0
Trivy images conteneur, Infrastructure en tant que code (Infrastructure as Code, ou IaC) Licence Apache 2.0

Remarque

Depuis le 20 septembre 2023, l’outil d’analyse des secrets (CredScan) dans l’extension Microsoft Security DevOps (MSDO) pour Azure DevOps est déconseillé. L’analyse des secrets MSDO est remplacée par GitHub Advanced Security pour Azure DevOps.

Prérequis

  • Les privilèges d’administrateur de collection de projets pour l’organisation Azure DevOps sont nécessaires pour installer l’extension.

Si vous n’avez pas accès à l’installation de l’extension, vous devez demander l’accès auprès de l’administrateur de votre organisation Azure DevOps pendant le processus d’installation.

Configurer l’extension Microsoft Security DevOps Azure DevOps

Pour configurer l’extension Microsoft Security DevOps Azure DevOps :

  1. Connectez-vous à Azure DevOps.

  2. Accédez aux extensions Shopping Bag>Manage.

    Capture d’écran montrant comment accéder à l’écran Gérer les extensions.

  3. Sélectionnez Partagé.

    Notes

    Si vous avez déjà installé l’extension Microsoft Security DevOps, celle-ci est listée sous l’onglet Installé.

  4. Sélectionnez Microsoft Security DevOps.

    Capture d’écran montrant où sélectionner Microsoft Security DevOps.

  5. Sélectionnez Installer.

  6. Sélectionnez l’organisation appropriée dans le menu déroulant.

  7. Sélectionnez Installer.

  8. Sélectionnez Passer à l’organisation.

Configurer vos pipelines à l’aide de YAML

Pour configurer vos pipelines à l’aide de YAML :

  1. Se connecter à Azure DevOps

  2. Sélectionnez votre projet.

  3. Accédez aux pipelines

  4. Sélectionnez Nouveau pipeline.

    Capture d’écran montrant où localiser la création d’un pipeline dans DevOps.

  5. Sélectionnez Azure Repos Git.

    Capture d’écran montrant où naviguer pour sélectionner le connecteur DevOps.

  6. Sélectionnez le référentiel approprié.

    Capture d'écran montrant où sélectionner votre référentiel.

  7. Sélectionnez Pipeline de démarrage.

    Capture d’écran montrant où sélectionner le pipeline de démarrage.

  8. Collez le code YAML suivant dans le pipeline :

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger: none
    pool:
      # ubuntu-latest also supported.
      vmImage: 'windows-latest'
    steps:
    - task: MicrosoftSecurityDevOps@1
      displayName: 'Microsoft Security DevOps'
      # inputs:    
        # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig'). Vist the MSDO GitHub wiki linked below for additional configuration instructions
        # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy to determine the tools/checks to run. If no configuration file or list of tools is provided, the policy may instruct MSDO which tools to run. Default: azuredevops.
        # categories: string. Optional. A comma-separated list of analyzer categories to run. Values: 'code', 'artifacts', 'IaC', 'containers'. Example: 'IaC, containers'. Defaults to all.
        # languages: string. Optional. A comma-separated list of languages to analyze. Example: 'javascript,typescript'. Defaults to all.
        # tools: string. Optional. A comma-separated list of analyzer tools to run. Values: 'bandit', 'binskim', 'checkov', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'. Example 'templateanalyzer, trivy'
        # break: boolean. Optional. If true, will fail this build step if any high severity level results are found. Default: false.
        # publish: boolean. Optional. If true, will publish the output SARIF results file to the chosen pipeline artifact. Default: true.
        # artifactName: string. Optional. The name of the pipeline artifact to publish the SARIF result file to. Default: CodeAnalysisLogs*.
      
    

    Remarque

    L’artifactName (nom d’artefact) « CodeAnalysisLogs » est requis pour l’intégration à Defender pour le cloud. Pour obtenir d’autres options de configuration de l’outil ainsi que des variables d’environnement, consultez le Wiki Microsoft Security DevOps

  9. Pour valider le pipeline, sélectionnez Enregistrer et exécuter.

    Le pipeline s’exécute pendant quelques minutes et enregistre les résultats.

    Notes

    Installez l’extension SARIF SAST Scans Tab sur l’organisation Azure DevOps afin de vous assurer que les résultats d’analyse générés seront affichés automatiquement sous l’onglet Analyses.

Chargement de résultats à partir d’outils de sécurité tiers dans Defender pour le cloud

Même si Defender pour le cloud fournit l’interface CLI MSDO pour les contrôles normalisés de fonctionnalité et de stratégie sur un ensemble d’analyseurs de sécurité open source, vous avez le choix de charger les résultats à partir d’autres outils de sécurité tiers que vous êtes susceptibles d’avoir configurés dans des pipelines CI/CD sur Defender pour le cloud pour une contextualisation complète du code au cloud. Tous les résultats téléchargés vers Defender pour le cloud doivent être au format SARIF standard.

Tout d’abord, assurez-vous de que vos référentiels Azure DevOps sont intégrés à Defender pour le cloud. Une fois que vous avez réussi à intégrer Defender pour le cloud, celui-ci surveille en continu l’artefact « CodeAnalysisLogs » pour la sortie SARIF.

Vous pouvez utiliser la tâche « PublishBuildArtifacts@1 » pour vous assurer que la sortie SARIF est publiée sur l’artefact approprié. Par exemple, si un analyseur de sécurité génère results.sarif, vous pouvez configurer la tâche suivante dans votre travail pour veiller à ce que les résultats soient chargés sur Defender pour le cloud :

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'results.sarif'
    ArtifactName: 'CodeAnalysisLogs'

Findings from third-party security tools will appear as 'Azure DevOps repositories should have code scanning findings resolved' assessments associated with the repository the security finding was identified in.