Scannen 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 in Ihrem Quellcode (Infrastructure as Code, IaC) auszuführen, und verringern Sie die Pipelinelaufzeit.

In diesem Artikel erfahren Sie, wie Sie eine YAML-Vorlagenkonfigurationsdatei anwenden, um Ihr verbundenes Repository oder Projekt speziell auf Sicherheitsprobleme bei IaC mithilfe von Microsoft Security DevOps-Regeln prüfen zu lassen. Bevor Sie beginnen, stellen Sie sicher, dass Sie ein verbundenes GitHub-Repository oder ein Azure DevOps-Projekt haben, und überprüfen Sie die Voraussetzungen.

Voraussetzungen

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

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

So richten Sie eine Aktion ein und zeigen Die Scanergebnisse in GitHub an:

  1. Melden Sie sich bei GitHub an.

  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 das Symbol "Diese Datei bearbeiten " (Bleistift) aus.

    Screenshot, der das Symbol

  5. Im Abschnitt "Analyzers ausführen " der YAML-Datei fügen Sie folgenden Code hinzu, um das Scannen von Infrastructure as Code zu aktivieren:

    with:
        categories: 'IaC'
    

    Note

    Bei Werten wird zwischen Groß- und Kleinschreibung unterschieden.

    Der folgende Screenshot zeigt ein Beispiel der aktualisierten YAML-Konfiguration:

    Screenshot der Informationen, die der YAML-Datei hinzugefügt werden sollen.

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

  7. Wählen Sie Änderungen übernehmen.

    Screenshot, der zeigt, wo Commit-Änderungen auf der GitHub-Seite ausgewählt werden sollen.

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

    Führen Sie z. B. einen Commit für eine IaC-Vorlage durch, mit der Sie eine einfache Linux-Webanwendung bereitstellen können.

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

      Screenshot, der zeigt, wo sich die azuredeploy.json Datei befindet.

    2. Wählen Sie Raw.

    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" aus.

      Screenshot, der zeigt, wie Sie eine neue Datei erstellen.

    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 für neue Datei ausführen" aus.

    Die Vorlagendatei wird Ihrem Repository hinzugefügt.

    Screenshot, der zeigt, dass die von Ihnen erstellte neue Datei ihrem Repository hinzugefügt wird.

  9. Überprüfen Sie, ob der Microsoft Security DevOps-Scan abgeschlossen ist:

    1. Wählen Sie für das Repository "Aktionen" aus.

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

  10. Um die Ergebnisse des Scans einzusehen, verwenden Sie eine der folgenden Optionen:

    • Gehen Sie zu Defender for Cloud>DevOps Security. Für diese Option ist keine GitHub Advanced Security (GHAS)-Lizenz erforderlich.
    • Wenn du eine GitHub Advanced Security (GHAS)-Lizenz hast, gehe direkt zu Security>Code Scanning Alerts in GitHub.

Einrichten und Ausführen einer Azure DevOps-Erweiterung zum Scannen des 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. In der YAML-Konfigurationsdatei der Pipeline, unterhalb der displayNameZeile für die MicrosoftSecurityDevOps@1 Aufgabe, fügen Sie folgenden Code hinzu, um Infrastructure as Code Scanning zu aktivieren:

    inputs:
        categories: 'IaC'
    

    Der folgende Screenshot zeigt ein Beispiel für die Pipeline-YAML-Konfiguration mit hinzugefügter IaC-Kategorie:

    Screenshot, der zeigt, wo die Zeile

  7. Wählen Sie Speichern aus.

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

  9. Wählen Sie aus, ob Sie direkt in den Haupt-Branch committen oder einen neuen Branch für den Commit erstellen möchten, und wählen Sie dann Speichern aus.

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

  11. Um weitere Details anzuzeigen, wählen Sie eine bestimmte Pipelineausführung aus.

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

Die IaC-Scantools, die in Microsoft Security DevOps enthalten sind , sind Template Analyzer (PSRule ist in Template Analyzer enthalten), Checkov und Terrascan.

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. Sehen Sie sich die Terrascan-Regeln an.

Chekov führt Regeln für ARM-Vorlagen und -Vorlagen für CloudFormation, Docker, Helm, Kubernetes, Kustomize und Terraform aus. Siehe die Checkov-Regeln.

Weitere Informationen zu den IaC-Scantools, die in Microsoft Security DevOps enthalten sind, finden Sie unter:

In diesem Artikel haben Sie erfahren, wie Sie eine GitHub-Aktion und eine Azure DevOps-Erweiterung für Microsoft Security DevOps einrichten, um nach Sicherheitsfehlern von IaC zu suchen und die Ergebnisse anzuzeigen.

So erhalten Sie weitere Informationen: