Analyser votre référentiel GitHub connecté ou votre projet Azure DevOps

Vous pouvez configurer Microsoft Security DevOps pour analyser votre référentiel 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). Cette action vous permettra également de réduire votre runtime de pipeline.

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

Prérequis

  • Pour Microsoft Security DevOps, configurez l'action GitHub ou l'extension Azure DevOps en fonction de votre système de gestion du code source dans las cas suivants :
  • Vérifiez que votre référentiel contient un modèle IaC.

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 procédez comme suit :

  1. Se connecter à GitHub.

  2. Accédez à la page principale de votre référentiel.

  3. Dans le répertoire de fichiers, sélectionnez .github>workflows>msdevopssec.yml.

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

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

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

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

    with:
        categories: 'IaC'
    

    Remarque

    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 Valider les modifications.

    Capture d’écran montrant où sélectionner Commiter les changements dans la page GitHub.

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

    Par exemple, valider 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 Raw.

    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 référentiel GitHub, accédez au dossier .github/workflows.

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

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

    6. Entrez le nom à attribuer au fichier.

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

    8. Sélectionnez Commit new file (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éé a été ajouté à votre dépôt.

  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 le Cloud>Sécurité DevOps (aucune licence GHAS requise) ou à Sécurité>Alertes d’analyse de code en mode natif 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 procéder comme suit :

  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 ligne displayName pour la tâche MicrosoftSecurityDevOps@1, ajoutez le code suivant :

    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 de valider directement la branche principale ou de créer une nouvelle 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 Analyseur de modèle (PSRule est inclus dans l’analyseur de modèle), Checkov et Terrascan.

L'analyseur de modèle exécute des règles sur les modèles Azure Resource Manager (modèles ARM) et les modèles Bicep. Pour plus d'informations, consultez les Règles de l'analyseur de modèles et les détails de la correction.

Terrascan 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 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 les problèmes de configuration de la sécurité IaC et d'afficher les résultats.

Pour obtenir plus d'informations :