Delen via


Uw verbonden GitHub-opslagplaats of Azure DevOps-project scannen

U kunt Microsoft Security DevOps instellen om uw verbonden GitHub-opslagplaats of Azure DevOps-project te scannen. Gebruik een GitHub-actie of een Azure DevOps-extensie om Microsoft Security 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 Security DevOps-regels.

Vereisten

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-werkstromen>>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 deze code toe:

    with:
        categories: 'IaC'
    

    Notitie

    Waarden zijn hoofdlettergevoelig.

    Hier volgt een voorbeeld:

    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 azuredeploy.json-bestand .

      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 Add file>Create new file.

      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 Security DevOps-scan is voltooid:

    1. Selecteer Acties voor de opslagplaats.

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

  10. Als u de resultaten van de scan wilt bekijken, gaat u naar Defender voor Cloud> DevOps-beveiliging (geen GHAS-vereiste) of waarschuwingen voor het scannen van beveiligingscodes>in GitHub (hiervoor is een GHAS-licentie vereist).

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

Een extensie instellen en scanresultaten weergeven in Azure DevOps:

  1. Aanmelden bij Azure DevOps.

  2. Selecteer uw project.

  3. Selecteer Pijplijnen.

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

  5. Selecteer Pijplijn bewerken.

  6. Voeg in het YAML-configuratiebestand van de pijplijn, onder de displayName regel voor de MicrosoftSecurityDevOps@1 taak, deze code toe:

    inputs:
        categories: 'IaC'
    

    Hier volgt een voorbeeld:

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

  7. Selecteer 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 doorvoeren naar de hoofdbranch of een nieuwe vertakking wilt maken voor de doorvoering en selecteer Vervolgens 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. Zie meer informatie, selecteer een specifieke pijplijnuitvoering.

Details en herstelinformatie weergeven voor toegepaste IaC-regels

De IaC-scanprogramma's die zijn opgenomen in Microsoft Security 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 sjabloonanalyseregels en hersteldetails voor meer informatie.

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

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

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

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

Voor meer informatie: