Freigeben über


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.

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. Fügen Sie im Abschnitt "Run Analyzers" der YAML-Datei den folgenden Code hinzu:

    with:
        categories: 'IaC'
    

    Hinweis

    Bei Werten ist auf die Groß-/Kleinschreibung zu achten.

    Ein Beispiel:

    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 anzuzeigen, wechseln Sie zu Defender für Cloud>DevOps-Sicherheit (keine GHAS-Voraussetzung ) oder>Sicherheitscodeüberprüfungswarnungen nativ in GitHub (erfordert GHAS-Lizenz).

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. Fügen Sie in der Pipeline-YAML-Konfigurationsdatei unter der displayName Zeile für die aufgabe MicrosoftSecurityDevOps@1 diesen Code hinzu:

    inputs:
        categories: 'IaC'
    

    Ein Beispiel:

    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. Für weitere Details 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 Vorlagenanalyseregeln 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 in den Terrascan-Regeln.

Chekov führt Regeln für ARM-Vorlagen und -Vorlagen für CloudFormation, Docker, Helm, Kubernetes, Kustomize und Terraform aus. Weitere Informationen finden Sie in den 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: