Włączanie adnotacji żądania ściągnięcia w usługach GitHub i Azure DevOps

Zabezpieczenia metodyki DevOps uwidaczniają wyniki zabezpieczeń jako adnotacje w żądaniach ściągnięcia (PR). Operatory zabezpieczeń mogą włączać adnotacje żądań ściągnięcia 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 metodyki DevOps dodają adnotacje do luk w zabezpieczeniach w ramach różnic wprowadzonych podczas żądania ściągnięcia, a nie wszystkich wykrytych luk w zabezpieczeniach 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.

Co to są adnotacje żądania ściągnięcia

Adnotacje żądania ściągnięcia to komentarze dodawane do żądania ściągnięcia w usłudze 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.

Adnotacje mogą być dodawane przez użytkownika z dostępem do repozytorium i mogą służyć do sugerowania zmian, zadawania pytań lub przekazywania opinii 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 metodyki DevOps w Defender dla Chmury używają adnotacji do uwidocznienia wyników zabezpieczeń.

Wymagania wstępne

W przypadku usługi GitHub:

W przypadku usługi Azure DevOps:

Włączanie adnotacji żądania ściągnięcia w usłudze GitHub

Włączając adnotacje żądań ściągnięcia w usłudze GitHub, deweloperzy uzyskują możliwość wyświetlania problemów z zabezpieczeniami podczas tworzenia żądania ściągnięcia bezpośrednio do gałęzi głównej.

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

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

  2. Wybierz repozytorium, które zostało dołączone do Defender dla Chmury.

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

    Zrzut ekranu pokazujący, gdzie przejść do, aby wybrać folder przepływu pracy usługi GitHub.

  4. Wybierz pozycję msdevopssec.yml, która została utworzona w wymaganiach wstępnych.

    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 ją uruchomić, wprowadzając gałąź w sekcji wyzwalacza. Jeśli chcesz uwzględnić wszystkie gałęzie, usuń wiersze z listą gałęzi. 

  7. Wybierz pozycję Start commit (Rozpocznij zatwierdzanie).

  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łączanie adnotacji żądania ściągnięcia w usłudze Azure DevOps

Włączając adnotacje żądań ściągnięcia w usłudze Azure DevOps, deweloperzy uzyskują możliwość wyświetlania problemów z zabezpieczeniami podczas tworzenia żądań ściągnięcia bezpośrednio w gałęzi głównej.

Włączanie zasad weryfikacji kompilacji dla kompilacji ciągłej integracji

Aby można było włączyć adnotacje żądań ściągnięcia, gałąź główna musi mieć włączone zasady weryfikacji kompilacji dla kompilacji ciągłej integracji.

Aby włączyć zasady weryfikacji kompilacji dla kompilacji ciągłej integracji:

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

  2. Przejdź do obszaru Repozytoria ustawień>projektu.

    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 głównej gałęzi Zasady>gałęzi.

    Zrzut ekranu przedstawiający lokalizację zasad gałęzi.

  6. Znajdź sekcję Weryfikacja kompilacji.

  7. Upewnij się, że walidacja kompilacji dla repozytorium jest przełączana do wł.

    Zrzut ekranu przedstawiający lokalizację przełącznika kompilacji ciągłej integracji.

  8. Wybierz pozycję 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 żądań ściągnięcia w usłudze Azure DevOps:

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do pozycji zabezpieczenia Defender dla Chmury> DevOps.

  3. Wybierz wszystkie odpowiednie repozytoria, aby włączyć adnotacje żądania ściągnięcia.

  4. Wybierz pozycję Zarządzaj zasobami.

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

  5. Przełącz adnotacje żądania ściągnięcia na włączone.

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

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

    Uwaga

    Obecnie obsługiwane są tylko błędy konfiguracji infrastruktury jako kodu (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Charts i inne).

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

  8. Wybierz pozycję Zapisz.

Wszystkie adnotacje dotyczące żądań ściągnięcia będą teraz wyświetlane na podstawie konfiguracji.

Aby włączyć adnotacje żądań ściągnięcia dla moich projektów i organizacji w usłudze Azure DevOps:

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

Informacje o interfejsie API:

Metoda HTTP: ADRESY URL PATCH:

  • 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 opcji konfiguracji adnotacji żądania ściągnięcia: włączone | Wyłączone

<Category>Opis: Kategoria wyników, które zostaną oznaczone adnotacjami dla żądań ściągnięcia. Opcje: IaC | Kod | Artefakty | Zależności | Uwaga dotycząca kontenerów: obecnie obsługiwana jest tylko usługa IaC

<Severity>Opis: minimalna ważność ustalenia, które będzie brane pod uwagę podczas tworzenia adnotacji żądania ściągnięcia. Opcje: Wysoki | Średni | Niskie

Przykład włączania adnotacji żądania ściągnięcia organizacji usługi Azure DevOps dla kategorii IaC o minimalnej ważności średniej przy użyciu narzędzia az cli.

Aktualizacja organizacji:

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łączania adnotacji żądania ściągnięcia projektu DevOps platformy Azure dla kategorii IaC o minimalnej ważności Wysoki 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'}]}}}"

Dowiedz się więcej

Następne kroki

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