Partager via


Analyser votre dépôt GitHub connecté ou votre projet Azure DevOps

Vous pouvez configurer Microsoft Security DevOps pour analyser votre dépôt GitHub connecté ou votre projet Azure DevOps. Utilisez une action GitHub ou une extension Azure DevOps pour exécuter Microsoft Security DevOps uniquement sur votre code source IaC (Infrastructure as Code) et vous aider à réduire votre runtime de pipeline.

Cet article explique comment appliquer un fichier de configuration YAML de modèle pour analyser votre dépôt connecté ou votre projet spécifiquement pour détecter les problèmes de sécurité IaC à l’aide de règles Microsoft Security DevOps.

Prerequisites

Configurer et exécuter une action GitHub pour analyser votre code source IaC connecté

Pour configurer une action et afficher les résultats de l’analyse dans GitHub :

  1. Connectez-vous à GitHub.

  2. Accédez à la page principale de votre dépôt.

  3. Dans le répertoire de fichiers, sélectionnezles flux de travail>.github>msdevopssec.yml.

    Pour plus d’informations sur l’utilisation d’une action dans GitHub, consultez Conditions préalables.

  4. Sélectionnez l’icône Modifier ce fichier (crayon).

    Capture d’écran mettant en évidence l’icône Modifier ce fichier pour le fichier msdevopssec.yml.

  5. Dans la section Exécuter des analyseurs du fichier YAML, ajoutez ce code :

    with:
        categories: 'IaC'
    

    Note

    Les valeurs respectent la casse.

    Voici un exemple :

    Capture d’écran montrant les informations à ajouter au fichier YAML.

  6. Sélectionnez Valider les modifications . . . . . .

  7. Sélectionnez Commiter les modifications.

    Capture d’écran montrant où sélectionner Valider les modifications sur la page GitHub.

  8. (Facultatif) Ajoutez un modèle IaC à votre référentiel. Si vous disposez déjà d’un modèle IaC dans votre référentiel, ignorez cette étape.

    Par exemple, validez un modèle IaC que vous pouvez utiliser pour déployer une application web Linux de base.

    1. Sélectionnez le fichier azuredeploy.json .

      Capture d’écran montrant l’emplacement du fichier azuredeploy.json.

    2. Sélectionnez Brut.

    3. Copiez toutes les informations du fichier, comme dans l’exemple suivant :

      {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
          "webAppName": {
            "type": "string",
            "defaultValue": "AzureLinuxApp",
            "metadata": {
              "description": "The base name of the resource, such as the web app name or the App Service plan."
            },
            "minLength": 2
          },
          "sku": {
            "type": "string",
            "defaultValue": "S1",
            "metadata": {
              "description": "The SKU of the App Service plan."
            }
          },
          "linuxFxVersion": {
            "type": "string",
            "defaultValue": "php|7.4",
            "metadata": {
              "description": "The runtime stack of the current web app."
            }
          },
          "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
              "description": "The location for all resources."
            }
          }
        },
        "variables": {
          "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]",
          "appServicePlanName": "[concat('AppServicePlan-', parameters('webAppName'))]"
        },
        "resources": [
          {
            "type": "Microsoft.Web/serverfarms",
            "apiVersion": "2020-06-01",
            "name": "[variables('appServicePlanName')]",
            "location": "[parameters('location')]",
            "sku": {
              "name": "[parameters('sku')]"
            },
            "kind": "linux",
            "properties": {
              "reserved": true
            }
          },
          {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2020-06-01",
            "name": "[variables('webAppPortalName')]",
            "location": "[parameters('location')]",
            "kind": "app",
            "dependsOn": [
              "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
            ],
            "properties": {
              "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
              "siteConfig": {
                "linuxFxVersion": "[parameters('linuxFxVersion')]"
              }
            }
          }
        ]
      }
      
    4. Dans votre dépôt GitHub, accédez au dossier .github/workflows .

    5. Sélectionnez Ajouter un fichier>Créer un fichier.

      Capture d’écran montrant comment créer un fichier.

    6. Entrez un nom pour le fichier.

    7. Collez les informations copiées dans le fichier.

    8. Sélectionnez Valider le nouveau fichier.

    Le fichier de modèle est ajouté à votre référentiel.

    Capture d’écran montrant que le nouveau fichier que vous avez créé est ajouté à votre référentiel.

  9. Vérifiez que l’analyse Microsoft Security DevOps est terminée :

    1. Pour le référentiel, sélectionnez Actions.

    2. Sélectionnez le flux de travail pour afficher l’état de l’action.

  10. Pour afficher les résultats de l’analyse, accédez à Defender pour Cloud>DevOps security (sans pré-requis GHAS) ou sécurité>alertes d’analyse du code directement dans GitHub (nécessite une licence GHAS).

Configurer et exécuter une extension Azure DevOps pour analyser votre code source IaC connecté

Pour configurer une extension et afficher les résultats de l’analyse dans Azure DevOps :

  1. Connectez-vous à Azure DevOps.

  2. Sélectionnez votre projet.

  3. Sélectionnez Pipelines.

  4. Sélectionnez le pipeline dans lequel votre extension Azure DevOps pour Microsoft Security DevOps est configurée.

  5. Sélectionnez Modifier le pipeline.

  6. Dans le fichier de configuration YAML du pipeline, sous la displayName ligne de la tâche MicrosoftSecurityDevOps@1 , ajoutez ce code :

    inputs:
        categories: 'IaC'
    

    Voici un exemple :

    Capture d’écran montrant où ajouter la ligne de catégories IaC dans le fichier YAML de configuration du pipeline.

  7. Cliquez sur Enregistrer.

  8. (Facultatif) Ajoutez un modèle IaC à votre projet Azure DevOps. Si vous disposez déjà d’un modèle IaC dans votre projet, ignorez cette étape.

  9. Choisissez s’il faut valider directement dans la branche principale ou créer une branche pour la validation, puis sélectionnez Enregistrer.

  10. Pour afficher les résultats de l’analyse IaC, sélectionnez Pipelines, puis sélectionnez le pipeline que vous avez modifié.

  11. Pour plus d'informations, sélectionnez une exécution de pipeline spécifique.

Afficher les détails et les informations de correction pour les règles IaC appliquées

Les outils d’analyse IaC inclus dans Microsoft Security DevOps sont l’analyseur de modèle (PSRule est inclus dans l’analyseur de modèles), Checkov et Terrascan.

Template Analyzer exécute des règles sur les modèles Azure Resource Manager (modèles ARM) et Bicep. Pour plus d’informations, consultez les règles de l’analyseur de modèles et les détails de correction.

Terrascan exécute des règles sur les modèles ARM ainsi que sur les modèles pour CloudFormation, Docker, Helm, Kubernetes, Kustomize et Terraform. Pour plus d’informations, consultez les règles Terrascan.

Chekov exécute des règles sur les modèles ARM et les modèles pour CloudFormation, Docker, Helm, Kubernetes, Kustomize et Terraform. Pour plus d’informations, consultez les règles Checkov.

Pour en savoir plus sur les outils d’analyse IaC inclus dans Microsoft Security DevOps, consultez :

Dans cet article, vous avez appris à configurer une action GitHub et une extension Azure DevOps pour Microsoft Security DevOps afin de rechercher des configurations incorrectes de sécurité IaC et comment afficher les résultats.

Pour obtenir plus d’informations :