Uw verbonden GitHub-opslagplaats of Azure DevOps-project scannen

U kunt Microsoft Beveiliging DevOps instellen om uw verbonden GitHub-opslagplaats of Azure DevOps-project te scannen. Gebruik een GitHub-actie of een Azure DevOps-extensie om Microsoft Beveiliging DevOps alleen uit te voeren op de broncode van Infrastructure as Code (IaC) en om uw pijplijnruntime te verminderen.

In dit artikel wordt beschreven hoe u een YAML-sjabloonconfiguratiebestand kunt toepassen om uw verbonden opslagplaats of project specifiek te scannen op beveiligingsproblemen met IaC met behulp van Microsoft Beveiliging DevOps-regels. Voordat je begint, zorg ervoor dat je een verbonden GitHub-repository of Azure DevOps-project hebt en bekijk de vereisten.

Prerequisites

Een GitHub-actie instellen en uitvoeren om uw verbonden IaC-broncode te scannen

Een actie instellen en scanresultaten weergeven in GitHub:

  1. Meld u aan bij GitHub.

  2. Ga naar de hoofdpagina van uw opslagplaats.

  3. Selecteer in de bestandsmap .github>workflows>msdevopssec.yml.

    Zie Vereisten voor meer informatie over het werken met een actie in GitHub.

  4. Selecteer het pictogram Dit bestand bewerken (potlood).

    Schermopname waarin het pictogram Dit bestand bewerken voor het msdevopssec.yml-bestand is gemarkeerd.

  5. Voeg in de sectie Run analyzers van het YAML-bestand de volgende code toe om Infrastructure as Code-scanning mogelijk te maken:

    with:
        categories: 'IaC'
    

    Note

    Waarden zijn hoofdlettergevoelig.

    De volgende screenshot toont een voorbeeld van de bijgewerkte YAML-configuratie:

    Schermopname van de informatie die moet worden toegevoegd aan het YAML-bestand.

  6. Selecteer Wijzigingen doorvoeren . . . .

  7. Selecteer Wijzigingen doorvoeren.

    Schermopname die laat zien waar u Wijzigingen doorvoeren op de GitHub-pagina kunt selecteren.

  8. (Optioneel) Voeg een IaC-sjabloon toe aan uw opslagplaats. Als u al een IaC-sjabloon in uw opslagplaats hebt, kunt u deze stap overslaan.

    Voer bijvoorbeeld een IaC-sjabloon door die u kunt gebruiken om een eenvoudige Linux-webtoepassing te implementeren.

    1. Selecteer het bestand azuredeploy.json.

      Schermopname van de locatie van het azuredeploy.json-bestand.

    2. Selecteer Onbewerkt.

    3. Kopieer alle gegevens in het bestand, zoals in het volgende voorbeeld:

      {
        "$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. Ga in uw GitHub-opslagplaats naar de map .github/workflows .

    5. Selecteer Bestand toevoegen>Nieuw bestand maken.

      Schermopname van het maken van een nieuw bestand.

    6. Voer een naam in voor het bestand.

    7. Plak de gekopieerde gegevens in het bestand.

    8. Selecteer Nieuw bestand doorvoeren.

    Het sjabloonbestand wordt toegevoegd aan uw opslagplaats.

    Schermopname van het nieuwe bestand dat u hebt gemaakt, wordt toegevoegd aan uw opslagplaats.

  9. Controleer of de Microsoft Beveiliging DevOps-scan is voltooid:

    1. Selecteer Acties voor de opslagplaats.

    2. Selecteer de werkstroom om de actiestatus weer te geven.

  10. Om de resultaten van de scan te bekijken, gebruik een van de volgende opties:

    • Ga naar Defender voor CloudDevOps>security. Voor deze optie is geen GitHub Advanced Security (GHAS)-licentie nodig.
    • Als je een GitHub Advanced Security (GHAS) licentie hebt, ga dan native naar Security>Code scanning alerts in GitHub.

Een Azure DevOps-extensie instellen en uitvoeren om uw verbonden IaC-broncode te scannen

Een extensie instellen en scanresultaten weergeven in Azure DevOps:

  1. Meld u aan bij Azure DevOps.

  2. Selecteer uw project.

  3. Selecteer Pijplijnen.

  4. Selecteer de pijplijn waarin uw Azure DevOps-extensie voor Microsoft Beveiliging DevOps is geconfigureerd.

  5. Selecteer Pijplijn bewerken.

  6. In het pipeline YAML-configuratiebestand, onder de displayName regel voor de MicrosoftSecurityDevOps@1 taak, voeg je de volgende code toe om Infrastructure as Code-scanning mogelijk te maken:

    inputs:
        categories: 'IaC'
    

    De volgende screenshot toont een voorbeeld van de pipeline YAML-configuratie met de IaC-categorie toegevoegd:

    Schermopname van waar u de regel IaC-categorieƫn toevoegt in het YAML-bestand voor pijplijnconfiguratie.

  7. Kies Opslaan.

  8. (Optioneel) Voeg een IaC-sjabloon toe aan uw Azure DevOps-project. Als u al een IaC-sjabloon in uw project hebt, kunt u deze stap overslaan.

  9. Kies of u rechtstreeks wilt committeren naar de hoofdbranch of een nieuwe branch wilt maken voor de commit en selecteer Opslaan.

  10. Als u de resultaten van de IaC-scan wilt bekijken, selecteert u Pijplijnen en selecteert u vervolgens de pijplijn die u hebt gewijzigd.

  11. Selecteer een specifieke pijplijnuitvoering voor meer informatie.

Details en herstelinformatie weergeven voor toegepaste IaC-regels

De IaC-scanprogramma's die zijn opgenomen in Microsoft Beveiliging DevOps zijn Template Analyzer (PSRule is opgenomen in Template Analyzer), Checkov en Terrascan.

Template Analyzer voert regels uit op ARM-sjablonen (Azure Resource Manager) en Bicep-sjablonen. Zie de Template Analyzer-regels en hersteldetails.

Terrascan voert regels uit op ARM-sjablonen en -sjablonen voor CloudFormation, Docker, Helm, Kubernetes, Kustomize en Terraform. Zie de Terrascan-regels.

Chekov voert regels uit op ARM-sjablonen en -sjablonen voor CloudFormation, Docker, Helm, Kubernetes, Kustomize en Terraform. Zie de Checkov-regels.

Zie voor meer informatie over de IaC-scanprogramma's die zijn opgenomen in Microsoft Beveiliging DevOps:

In dit artikel hebt u geleerd hoe u een GitHub-actie en een Azure DevOps-extensie voor Microsoft Beveiliging DevOps instelt om te scannen op onjuiste configuraties van IaC-beveiliging en hoe u de resultaten kunt bekijken.

Voor meer informatie: