Überprüfen Ihres verbundenen GitHub-Repositorys oder Azure DevOps-Projekts

Sie können Microsoft Security DevOps einrichten, um Ihr verbundenes GitHub-Repository oder Azure DevOps-Projekt zu scannen. Verwenden Sie eine GitHub-Aktion oder eine Azure DevOps-Erweiterung, um Microsoft Security DevOps nur auf Ihrem Infrastructure as Code (IaC)-Quellcode auszuführen und die Laufzeit Ihrer Pipeline zu reduzieren.

Dieser Artikel zeigt Ihnen, wie Sie eine Vorlage für eine YAML-Konfigurationsdatei anwenden, um Ihr verbundenes Repository oder Projekt mithilfe von Microsoft Security DevOps-Regeln gezielt auf IaC-Sicherheitsprobleme zu überprüfen.

Voraussetzungen

  • Für Microsoft Security DevOps richten Sie die GitHub-Aktion oder die Azure DevOps-Erweiterung basierend auf Ihrem Quellcode-Verwaltungssystem ein:
  • Stellen Sie sicher, dass Sie über eine IaC-Vorlage in Ihrem Repository verfügen.

Einrichten und Ausführen einer GitHub-Aktion zum Scannen Ihres verbundenen IaC-Quellcodes

So richten Sie eine Aktion ein und sehen sich die Scanergebnisse in GitHub an:

  1. Bei GitHub anmelden.

  2. Wechseln Sie zur Hauptseite Ihres Repositorys.

  3. Wählen Sie im Dateiverzeichnis .github>workflows>msdevopssec.yml aus.

    Weitere Informationen zum Arbeiten mit einer Aktion in GitHub finden Sie unter Voraussetzungen.

  4. Wählen Sie Diese Datei bearbeiten (das Bleistift-Symbol) aus.

    Screenshot that highlights the Edit this file icon for the msdevopssec.yml file.

  5. Fügen Sie im Abschnitt Analysetool ausführen der YAML-Datei diesen Code hinzu:

    with:
        categories: 'IaC'
    

    Hinweis

    Bei Werten wird zwischen Groß- und Kleinschreibung unterschieden.

    Ein Beispiel:

    Screenshot that shows the information to add to the YAML file.

  6. Wählen Sie Änderungen committen . . . aus.

  7. Wählen Sie Commit changes (Änderungen committen) aus.

    Screenshot that shows where to select Commit changes on the GitHub page.

  8. (Optional:) Fügen Sie Ihrem Repository eine IaC-Vorlage hinzu. Wenn Sie bereits über eine IaC-Vorlage im Repository verfügen, überspringen Sie diesen Schritt.

    Committen Sie beispielsweise eine IaC-Vorlage, die Sie verwenden können, um eine einfache Linux-Webanwendung bereitzustellen.

    1. Wählen Sie die Datei azuredeploy.json.

      Screenshot that shows where the azuredeploy.json file is located.

    2. Klicken Sie auf Raw (Roh).

    3. Kopieren Sie alle Informationen in der Datei, wie im folgenden Beispiel:

      {
        "$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. Wechseln Sie in Ihrem GitHub-Repository zum Ordner .github/workflows.

    5. Wählen Sie Datei hinzufügen>Neue Datei erstellen aus.

      Screenshot that shows you how to create a new file.

    6. Geben Sie einen Namen für die Datei ein.

    7. Fügen Sie die kopierten Informationen in die Datei ein.

    8. Wählen Sie Commit new file (Neue Datei committen) aus.

    Die Beispieldatei wurde ihrem Repository hinzugefügt.

    Screenshot that shows that the new file you created is added to your repository.

  9. Vergewissern Sie sich, dass die Microsoft Security DevOps-Überprüfung abgeschlossen ist:

    1. Wählen Sie für das Repository Aktionenaus.

    2. Wählen Sie den Workflow aus, um den Aktionsstatus anzuzeigen.

  10. Um die Ergebnisse der Überprüfung anzuzeigen, navigieren Sie zu Sicherheit>Codeüberprüfungsbenachrichtigungen.

    Sie können nach Tool filtern, um nur die IaC-Ergebnisse anzuzeigen.

Einrichten und Ausführen einer Azure DevOps-Erweiterung zum Scannen Ihres verbundenen IaC-Quellcodes

So richten Sie eine Erweiterung ein und zeigen die Scanergebnisse in Azure DevOps an:

  1. Melden Sie sich bei Azure DevOps an.

  2. Wählen Sie Ihr Projekt aus.

  3. Wählen Sie Pipelines aus.

  4. Wählen Sie die Pipeline aus, in der Ihre Azure DevOps-Erweiterung für Microsoft Security DevOps konfiguriert ist.

  5. Wählen Sie Pipeline bearbeiten aus.

  6. Fügen Sie in der YAML-Konfigurationsdatei der Pipeline unterhalb der displayName-Zeile für die Aufgabe MicrosoftSecurityDevOps@1 diesen Code hinzu:

    inputs:
        categories: 'IaC'
    

    Ein Beispiel:

    Screenshot that shows where to add the IaC categories line in the pipeline configuration YAML file.

  7. Wählen Sie Speichern.

  8. (Optional:) Fügen Sie Ihrem Azure DevOps-Projekt eine IaC-Vorlage hinzu. Wenn Sie bereits über eine IaC-Vorlage im Projekt verfügen, überspringen Sie diesen Schritt.

  9. Wählen Sie, ob Sie den Commit direkt im Mainbranch ausführen, oder einen neuen Branch für diesen Commit erstellen wollen, und wählen Sie dann Speichern aus.

  10. Um die Ergebnisse des IaC-Scans anzuzeigen, wählen Sie Pipelines aus, und wählen Sie dann die geänderte Pipeline aus.

  11. Für weitere Details wählen Sie eine bestimmte Pipelineausführung aus.

Anzeigen von Details und Wartungsinformationen für angewendete IaC-Regeln

In Microsoft Security DevOps sind die IaC-Überprüfungstools Template Analyzer (PSRule ist in Template Analyzer enthalten) und Terrascan enthalten.

Template Analyzer führt Regeln für Azure Resource Manager-Vorlagen (ARM-Vorlagen) und Bicep-Vorlagen aus. Weitere Informationen finden Sie in den Template Analyzer-Regeln und Wartungsdetails.

Terrascan führt Regeln für ARM-Vorlagen und Vorlagen für CloudFormation, Docker, Helm, Kubernetes, Kustomize und Terraform aus. Weitere Informationen finden Sie unter Terrascan-Regeln.

Weitere Informationen zu den IaC-Überprüfungstools, die in Microsoft Security DevOps enthalten sind, finden Sie unter:

In diesem Artikel haben Sie gelernt, wie Sie eine GitHub-Aktion und eine Azure DevOps-Erweiterung für Microsoft Security DevOps so einrichten, dass IaC-Sicherheitsfehlkonfigurationen (Infrastructure as Code) überprüft werden, und wie Sie die Ergebnisse anzeigen.

Weitere Informationen finden Sie unter: