Włącz adnotacje pull requestów w usługach GitHub i Azure DevOps

Zabezpieczenia DevOps wyświetlają ustalenia dotyczące zabezpieczeń jako adnotacje w żądaniach pull request (PR). Operatorzy zabezpieczeń mogą włączać adnotacje żądań ściągnięć w Microsoft Defender dla Chmury. Wszelkie ujawnione problemy mogą zostać rozwiązane przez deweloperów. Ten proces może zapobiegać potencjalnym lukom w zabezpieczeniach i błędom konfiguracji oraz usuwać je przed wejściem do etapu produkcji. Zabezpieczenia DevOps oznaczają podatności w zmianach wprowadzonych w żądaniu pull request, a nie wszystkie podatności wykryte w całym pliku. Deweloperzy mogą zobaczyć adnotacje w swoich systemach zarządzania kodem źródłowym, a operatorzy zabezpieczeń mogą zobaczyć wszelkie nierozwiązane ustalenia w Microsoft Defender dla Chmury.

Za pomocą Microsoft Defender dla Chmury można skonfigurować adnotacje żądań ściągnięcia w usłudze Azure DevOps. Adnotacje żądań ściągnięcia można uzyskać w usłudze GitHub, jeśli jesteś klientem usługi GitHub Advanced Security.

Note

Adnotacje próśb o ściągnięcie, znane również jako adnotacje próśb o scalanie (GitLab), nie są obsługiwane w projektach GitLab połączonych z usługą Defender dla Chmury DevOps.

Usługa Defender dla Chmury przedstawi wyniki zabezpieczeń dla wszystkich połączonych repozytoriów GitLab. Jednak żądania scalania w GitLab nie pokazują tych wyników jako adnotacji w linii.

Usługa GitHub obsługuje adnotacje żądań ściągnięcia po włączeniu usługi GitHub Advanced Security.

Czym są adnotacje do pull requestów

Adnotacje do pull requestu to komentarze dodawane do pull requestu w serwisie GitHub lub Azure DevOps. Te adnotacje dostarczają opinii na temat wprowadzonych zmian w kodzie i zidentyfikowanych problemów z zabezpieczeniami w żądaniu ściągnięcia oraz pomagają recenzentom zrozumieć wprowadzone zmiany.

Użytkownicy z dostępem do repozytorium mogą dodawać adnotacje, sugerować zmiany, zadawać pytania lub przekazywać opinię na temat kodu. Adnotacje mogą również służyć do śledzenia problemów i usterek, które należy naprawić przed scaleniem kodu z gałęzią główną. Zabezpieczenia DevOps w usłudze Defender dla Chmury wykorzystują adnotacje, aby wyświetlać ustalenia zabezpieczeń.

Wymagania wstępne

W przypadku usługi GitHub:

W przypadku usługi Azure DevOps:

Włącz adnotacje pull requestów w GitHubie

Po włączeniu adnotacji do pull requestów w serwisie GitHub deweloperzy mogą zobaczyć problemy związane z bezpieczeństwem podczas tworzenia pull requestu bezpośrednio do głównej gałęzi.

Aby włączyć adnotacje do pull requestów w usłudze GitHub:

  1. Przejdź do usługi GitHub i zaloguj się.

  2. Wybierz repozytorium, które wdrożono do usługi Microsoft Defender dla Chmury.

  3. Przejdź do Your repository's home page>folderu .github/workflows.

    Zrzut ekranu pokazujący, dokąd przejść, aby wybrać folder przepływu pracy GitHub.

  4. Wybierz msdevopssec.yml, który został utworzony w sekcji Wymagania wstępne.

    Zrzut ekranu przedstawiający miejsce wyboru pliku msdevopssec.yml na ekranie.

  5. Wybierz pozycję Edytuj.

    Zrzut ekranu przedstawiający wygląd przycisku edycji.

  6. Znajdź i zaktualizuj sekcję wyzwalacza, aby uwzględnić następujące elementy:

    # Triggers the workflow on push or pull request events but only for the main branch
    pull_request:
      branches: ["main"]
    

    Możesz również wyświetlić przykładowe repozytorium.

    (Opcjonalnie) Możesz wybrać gałęzie, na których chcesz to uruchomić, podając jedną lub więcej gałęzi w sekcji wyzwalania. Jeśli chcesz uwzględnić wszystkie gałęzie, usuń wiersze z listą gałęzi. 

  7. Wybierz pozycję Rozpocznij zatwierdzenie.

  8. Wybierz pozycję Zatwierdź zmiany.

    Wszelkie problemy wykryte przez skaner będą widoczne w sekcji Pliki zmienione w żądaniu ściągnięcia.

    • Używane w testach — alert nie znajduje się w kodzie produkcyjnym.

Włącz adnotacje do żądań ściągnięcia w usłudze Azure DevOps

Po włączeniu adnotacji do pull requestów w usłudze Azure DevOps deweloperzy mogą widzieć swoje problemy związane z bezpieczeństwem podczas tworzenia pull requestów bezpośrednio do gałęzi głównej.

Włącz zasady walidacji kompilacji dla kompilacji CI

Aby można było włączyć adnotacje żądań ściągnięcia zmian, główna gałąź musi mieć włączoną zasadę weryfikacji kompilacji dla kompilacji CI.

Aby włączyć zasadę weryfikacji kompilacji dla kompilacji CI:

  1. Zaloguj się do projektu Azure DevOps.

  2. Przejdź do Ustawienia projektu>Repozytoria.

    Zrzut ekranu przedstawiający miejsce, do którego należy przejść, aby wybrać repozytoria.

  3. Wybierz repozytorium, aby włączyć żądania ściągnięcia.

  4. Wybierz pozycję Zasady.

  5. Przejdź do Zasady gałęzi>Gałąź główna.

    Zrzut ekranu pokazujący, gdzie znaleźć zasady gałęzi.

  6. Znajdź sekcję Weryfikacja kompilacji.

  7. Upewnij się, że walidacja kompilacji dla repozytorium jest ustawiona na Wł..

    Zrzut ekranu pokazujący, gdzie znajduje się przełącznik CI Build.

  8. Wybierz opcję Zapisz.

    Zrzut ekranu przedstawiający weryfikację kompilacji.

Po wykonaniu tych kroków możesz wybrać utworzony wcześniej potok kompilacji i dostosować jego ustawienia do własnych potrzeb.

Włączanie adnotacji żądania ściągnięcia

Aby włączyć adnotacje do żądań ściągnięcia w usłudze Azure DevOps:

  1. Zaloguj się do portalu Azure.

  2. Przejdź do Defender dla Chmury>Zabezpieczenia DevOps.

  3. Wybierz wszystkie odpowiednie repozytoria, aby włączyć adnotacje do pull requestów dla tych repozytoriów.

  4. Wybierz pozycję Zarządzaj zasobami.

    Zrzut ekranu przedstawiający sposób zarządzania zasobami.

  5. Przełącz adnotacje pull requestu na Włączone.

    Zrzut ekranu przedstawiający przełącznik włączony.

  6. (Opcjonalnie) Wybierz kategorię z menu rozwijanego.

    Note

    Obecnie obsługiwane są tylko wyniki dotyczące błędnych konfiguracji Infrastructure as Code (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm Charts i innych).

  7. (Opcjonalnie) Wybierz poziom ważności z menu rozwijanego.

  8. Wybierz opcję Zapisz.

Wszystkie adnotacje dotyczące Twoich pull requestów będą od teraz wyświetlane zgodnie z Twoją konfiguracją.

Aby włączyć adnotacje do żądań pull request dla moich projektów i organizacji w Azure DevOps:

Można to zrobić programistycznie, wywołując interfejs API aktualizacji zasobów usługi Azure DevOps udostępniany przez firmę Microsoft. Dostawca zasobów zabezpieczeń.

Informacje o interfejsie API:

Metoda HTTP: PATCH Adresy URL:

  • Aktualizacja projektu usługi Azure DevOps: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
  • Aktualizacja organizacji usługi Azure DevOps]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

Treść żądania :

{
   "properties": {
"actionableRemediation": {
              "state": <ActionableRemediationState>,
              "categoryConfigurations":[
                    {"category": <Category>,"minimumSeverityLevel": <Severity>}
               ]
           }
    }
}

Dostępne parametry/opcje

<ActionableRemediationState> Opis: Stan konfiguracji adnotacji PR Opcje: Włączone | Wyłączone

<Category> Opis: Kategoria wyników, które są oznaczane adnotacjami w pull requests. Opcje: IaC | Kod | Artefakty | Zależności | Uwaga dotycząca kontenerów: obecnie obsługiwana jest tylko usługa IaC

<Severity> Opis: minimalna dotkliwość znalezienia, która jest rozważana podczas tworzenia adnotacji do żądań ściągnięcia. Opcje: Wysoki | Średni | Niski

Przykład włączania adnotacji PR organizacji Azure DevOps dla kategorii IaC przy minimalnym poziomie ważności Średni za pomocą narzędzia az cli.

Zaktualizuj organizację:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}

Przykład włączenia adnotacji PR w projekcie Azure DevOps dla kategorii IaC z minimalnym poziomem ważności High przy użyciu narzędzia az CLI.

Aktualizuj projekt:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"

Learn more

Następne kroki

Teraz dowiedz się więcej o zabezpieczeniach metodyki DevOps.