Dela via


Skanna din anslutna GitHub-lagringsplats eller Azure DevOps-projekt

Du kan konfigurera Microsoft Security DevOps för att genomsöka din anslutna GitHub-lagringsplats eller Azure DevOps-projekt. Använd en GitHub-åtgärd eller ett Azure DevOps-tillägg för att endast köra Microsoft Security DevOps på källkoden infrastruktur som kod (IaC) och minska pipelinekörningen.

Den här artikeln visar hur du använder en YAML-mallkonfigurationsfil för att söka igenom den anslutna lagringsplatsen eller projektet specifikt efter IaC-säkerhetsproblem med hjälp av Microsoft Security DevOps-regler.

Förutsättningar

Konfigurera och köra en GitHub-åtgärd för att genomsöka din anslutna IaC-källkod

Så här konfigurerar du en åtgärd och visar genomsökningsresultat i GitHub:

  1. Logga in på GitHub.

  2. Gå till huvudsidan för lagringsplatsen.

  3. I filkatalogen väljer du .github-arbetsflöden>>msdevopssec.yml.

    Mer information om hur du arbetar med en åtgärd i GitHub finns i Krav.

  4. Välj ikonen Redigera den här filen (pennan).

    Skärmbild som visar ikonen Redigera den här filen för msdevopssec.yml-filen.

  5. I avsnittet Kör analysverktyg i YAML-filen lägger du till den här koden:

    with:
        categories: 'IaC'
    

    Kommentar

    Värden är skiftlägeskänsliga.

    Här är ett exempel:

    Skärmbild som visar den information som ska läggas till i YAML-filen.

  6. Välj Genomför ändringar . . .

  7. Välj Genomför ändringar.

    Skärmbild som visar var du väljer Genomför ändringar på GitHub-sidan.

  8. (Valfritt) Lägg till en IaC-mall till lagringsplatsen. Om du redan har en IaC-mall på lagringsplatsen hoppar du över det här steget.

    Du kan till exempel checka in en IaC-mall som du kan använda för att distribuera ett grundläggande Linux-webbprogram.

    1. Välj filen azuredeploy.json .

      Skärmbild som visar var filen azuredeploy.json finns.

    2. Välj .

    3. Kopiera all information i filen, som i följande exempel:

      {
        "$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. Gå till mappen .github/workflows på gitHub-lagringsplatsen .

    5. Välj Lägg till fil>Skapa ny fil.

      Skärmbild som visar hur du skapar en ny fil.

    6. Ange ett namn på filen.

    7. Klistra in den kopierade informationen i filen.

    8. Välj Checka in ny fil.

    Mallfilen läggs till i lagringsplatsen.

    Skärmbild som visar att den nya filen som du skapade läggs till på lagringsplatsen.

  9. Kontrollera att Microsoft Security DevOps-genomsökningen är klar:

    1. Välj Åtgärder för lagringsplatsen.

    2. Välj arbetsflödet för att se åtgärdsstatusen.

  10. Om du vill visa resultatet av genomsökningen går du till Defender för Cloud>DevOps-säkerhet (ingen GHAS-förutsättning) eller säkerhetskodgenomsökningsaviseringar> internt i GitHub (kräver GHAS-licens).

Konfigurera och köra ett Azure DevOps-tillägg för att genomsöka din anslutna IaC-källkod

Så här konfigurerar du ett tillägg och visar genomsökningsresultat i Azure DevOps:

  1. Logga in på Azure DevOps.

  2. Välj ditt projekt.

  3. Välj Pipelines.

  4. Välj den pipeline där ditt Azure DevOps-tillägg för Microsoft Security DevOps har konfigurerats.

  5. Välj Redigera pipeline.

  6. Lägg till den displayName här koden under raden för MicrosoftSecurityDevOps@1-uppgiften i YAML-konfigurationsfilen för pipelinen:

    inputs:
        categories: 'IaC'
    

    Här är ett exempel:

    Skärmbild som visar var du lägger till IaC-kategoriraden i YAML-filen för pipelinekonfiguration.

  7. Välj Spara.

  8. (Valfritt) Lägg till en IaC-mall i ditt Azure DevOps-projekt. Om du redan har en IaC-mall i projektet hoppar du över det här steget.

  9. Välj om du vill checka in direkt till huvudgrenen eller skapa en ny gren för incheckningen och välj sedan Spara.

  10. Om du vill visa resultatet av IaC-genomsökningen väljer du Pipelines och sedan den pipeline som du ändrade.

  11. Se mer information, välj en specifik pipelinekörning.

Visa information och reparationsinformation för tillämpade IaC-regler

IaC-genomsökningsverktygen som ingår i Microsoft Security DevOps är Template Analyzer (PSRule ingår i Template Analyzer), Checkov och Terrascan.

Template Analyzer kör regler för Azure Resource Manager-mallar (ARM-mallar) och Bicep-mallar. Mer information finns i mallanalysregler och reparationsinformation.

Terrascan kör regler för ARM-mallar och mallar för CloudFormation, Docker, Helm, Kubernetes, Kustomize och Terraform. Mer information finns i Terrascan-reglerna.

Chekov kör regler för ARM-mallar och mallar för CloudFormation, Docker, Helm, Kubernetes, Kustomize och Terraform. Mer information finns i Checkov-reglerna.

Mer information om IaC-genomsökningsverktygen som ingår i Microsoft Security DevOps finns i:

I den här artikeln har du lärt dig hur du konfigurerar en GitHub-åtgärd och ett Azure DevOps-tillägg för Microsoft Security DevOps för att söka efter felkonfigurationer för IaC-säkerhet och hur du visar resultatet.

Så här får du mer information: