Skanowanie połączonego repozytorium GitHub lub projektu usługi Azure DevOps

Możesz skonfigurować usługę Microsoft Security DevOps do skanowania połączonego repozytorium GitHub lub projektu usługi Azure DevOps. Użyj akcji usługi GitHub lub rozszerzenia usługi Azure DevOps, aby uruchomić metodykę DevOps zabezpieczeń firmy Microsoft tylko w kodzie źródłowym infrastruktury jako kodu (IaC) i pomóc zmniejszyć środowisko uruchomieniowe potoku.

W tym artykule pokazano, jak zastosować plik konfiguracji YAML szablonu w celu skanowania połączonego repozytorium lub projektu specjalnie pod kątem problemów z zabezpieczeniami IaC przy użyciu reguł DevOps zabezpieczeń firmy Microsoft.

Wymagania wstępne

  • W przypadku usługi Microsoft Security DevOps skonfiguruj akcję GitHub lub rozszerzenie usługi Azure DevOps na podstawie systemu zarządzania kodem źródłowym:
    • Jeśli repozytorium znajduje się w usłudze GitHub, skonfiguruj akcję GitHub DevOps zabezpieczeń firmy Microsoft.
    • Jeśli zarządzasz kodem źródłowym w usłudze Azure DevOps, skonfiguruj rozszerzenie Microsoft Security DevOps Azure DevOps.
  • Upewnij się, że masz szablon IaC w repozytorium.

Konfigurowanie i uruchamianie akcji usługi GitHub w celu skanowania połączonego kodu źródłowego IaC

Aby skonfigurować akcję i wyświetlić wyniki skanowania w usłudze GitHub:

  1. Zaloguj się do usługi GitHub.

  2. Przejdź do strony głównej repozytorium.

  3. W katalogu plików wybierz pozycję .github>workflows>msdevopssec.yml.

    Aby uzyskać więcej informacji na temat pracy z akcją w usłudze GitHub, zobacz Wymagania wstępne.

  4. Wybierz ikonę Edytuj ten plik (ołówek).

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

  5. W sekcji Uruchom analizatory pliku YAML dodaj następujący kod:

    with:
        categories: 'IaC'
    

    Uwaga

    W wartościach uwzględniana jest wielkość liter.

    Oto przykład:

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

  6. Wybierz pozycję Zatwierdź zmiany . .

  7. Wybierz pozycję Zatwierdź zmiany.

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

  8. (Opcjonalnie) Dodaj szablon IaC do repozytorium. Jeśli masz już szablon IaC w repozytorium, pomiń ten krok.

    Na przykład zatwierdź szablon IaC, którego można użyć do wdrożenia podstawowej aplikacji internetowej systemu Linux.

    1. Wybierz plik azuredeploy.json.

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

    2. Wybierz pozycję Nieprzetworzone.

    3. Skopiuj wszystkie informacje w pliku, tak jak w poniższym przykładzie:

      {
        "$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. W repozytorium GitHub przejdź do folderu .github/workflows .

    5. Wybierz pozycję Dodaj plik>Utwórz nowy plik.

      Screenshot that shows you how to create a new file.

    6. Wprowadź nazwę pliku.

    7. Wklej skopiowane informacje w pliku.

    8. Wybierz pozycję Zatwierdź nowy plik.

    Plik szablonu jest dodawany do repozytorium.

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

  9. Sprawdź, czy skanowanie usługi Microsoft Security DevOps zostało zakończone:

    1. W repozytorium wybierz pozycję Akcje.

    2. Wybierz przepływ pracy, aby wyświetlić stan akcji.

  10. Aby wyświetlić wyniki skanowania, przejdź do pozycji Alerty skanowania kodu zabezpieczeń>.

    Możesz filtrować według narzędzia, aby wyświetlić tylko wyniki IaC.

Konfigurowanie i uruchamianie rozszerzenia usługi Azure DevOps w celu skanowania połączonego kodu źródłowego IaC

Aby skonfigurować rozszerzenie i wyświetlić wyniki skanowania w usłudze Azure DevOps:

  1. Zaloguj się do usługi Azure DevOps.

  2. Wybierz projekt.

  3. Wybierz pozycję Potoki.

  4. Wybierz potok, w którym skonfigurowano rozszerzenie usługi Azure DevOps dla usługi Microsoft Security DevOps.

  5. Wybierz pozycję Edytuj potok.

  6. W pliku konfiguracji YAML potoku poniżej displayName wiersza zadania MicrosoftSecurityDevOps@1 dodaj następujący kod:

    inputs:
        categories: 'IaC'
    

    Oto przykład:

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

  7. Wybierz pozycję Zapisz.

  8. (Opcjonalnie) Dodaj szablon IaC do projektu usługi Azure DevOps. Jeśli masz już szablon IaC w projekcie, pomiń ten krok.

  9. Wybierz, czy zatwierdzić bezpośrednio gałąź główną, czy utworzyć nową gałąź dla zatwierdzenia, a następnie wybierz pozycję Zapisz.

  10. Aby wyświetlić wyniki skanowania IaC, wybierz pozycję Potoki, a następnie wybierz zmodyfikowany potok.

  11. Zobacz więcej szczegółów, wybierz konkretny przebieg potoku.

Wyświetlanie szczegółów i informacji korygowania dotyczących zastosowanych reguł IaC

Narzędzia do skanowania IaC dołączone do metodyki Microsoft Security DevOps to Analizator szablonów (PSRule jest dołączony do analizatora szablonów) i narzędzia Terrascan.

Analizator szablonów uruchamia reguły w szablonach usługi Azure Resource Manager (szablonach usługi ARM) i szablonach Bicep. Aby uzyskać więcej informacji, zobacz reguły analizatora szablonów i szczegóły korygowania.

Narzędzie Terrascan uruchamia reguły dotyczące szablonów i szablonów usługi ARM dla rozwiązań CloudFormation, Docker, Helm, Kubernetes, Kustomize i Terraform. Aby uzyskać więcej informacji, zobacz reguły narzędzia Terrascan.

Aby dowiedzieć się więcej na temat narzędzi do skanowania IaC dołączonych do usługi Microsoft Security DevOps, zobacz:

W tym artykule przedstawiono sposób konfigurowania akcji usługi GitHub i rozszerzenia usługi Azure DevOps dla usługi Microsoft Security DevOps w celu skanowania pod kątem błędów konfiguracji zabezpieczeń IaC i wyświetlania wyników.

Aby uzyskać więcej informacji: