Udostępnij przez


Wdrażanie integracji usługi GitHub Advanced Security z usługą Microsoft Defender for Cloud

Ten przewodnik przeprowadzi Cię przez wszystkie kroki konfiguracji, aby jak najlepiej wykorzystać zabezpieczenia aplikacji natywnych dla chmury Microsoft, dzięki integracji z usługą GitHub Advanced Security (GHAS) oraz Microsoft Defender dla chmury (MDC).

Postępując zgodnie z tym przewodnikiem, wykonasz następujące czynności:

  • Konfigurowanie repozytorium GitHub dla pokrycia usługi Microsoft Defender for Cloud (MDC)
  • Utwórz czynnik ryzyka w czasie wykonania
  • Testowanie rzeczywistych przypadków użycia w usłudze MDC
  • Łączenie kodu z zasobami w chmurze
  • Rozpocznij kampanię zabezpieczeń w usłudze GitHub, korzystając z kontekstu środowiska uruchomieniowego w celu nadania priorytetów alertom zabezpieczeń GHAS na podstawie kontekstu środowiska uruchomieniowego
  • Tworzenie zgłoszeń GitHub w MDC w celu rozpoczęcia działań naprawczych
  • Zamykanie pętli między zespołami inżynieryjnymi i zespołami ds. zabezpieczeń

Wymagania wstępne

Aspekt Szczegóły
Wymagania środowiskowe — Konto usługi GitHub z łącznikiem utworzonym w usłudze Microsoft Defender for Cloud (MDC)
— Licencja usługi GitHub Advanced Security (GHAS)
— Usługa Defender CSPM włączona w subskrypcji
— GitHub Security Copilot (opcjonalnie na potrzeby zautomatyzowanego korygowania)
Role i uprawnienia — Uprawnienia administratora zabezpieczeń
— Czytelnik zabezpieczeń w subskrypcji platformy Azure (aby wyświetlić wyniki w usłudze MDC)
- Właściciel organizacji usługi GitHub
Środowiska chmury — Dostępne tylko w chmurach komercyjnych (nie w chmurach US Gov, China Gov ani innych chmurach suwerennych)

Przygotowywanie środowiska

Krok 1. Konfigurowanie repozytorium GitHub i uruchamianie przepływu pracy

Aby przetestować integrację, użyj własnych repozytoriów lub przykładowego repozytorium GitHub, które zawiera już całą zawartość, aby utworzyć obraz kontenera podatnego na zagrożenia.

Uwaga / Notatka

Upewnij się, że repozytorium używane na potrzeby integracji jest prywatne.

Jeśli chcesz użyć przykładowego repozytorium, sklonuj następujące repozytorium do swojej organizacji na GitHubie. To repozytorium ma włączoną usługę GHAS i jest dołączane do dzierżawy platformy Azure z włączoną funkcją DCSPM:build25-woodgrove/mdc-customer-playbook. To repozytorium jest przeznaczone dla klientów do testowania integracji usługi Microsoft Defender for Cloud i GHAS.

W repozytorium wykonaj następujące kroki:

  1. Przejdź do Ustawienia.
  2. Na panelu po lewej stronie wybierz pozycję Tajne informacje i zmienne>.Akcje.
  3. Dodaj następujące sekrety na poziomie repozytorium lub organizacji:
Variable Description
ACR_ENDPOINT Serwer logowania usługi Azure Container Registry
ACR_PASSWORD Hasło usługi Azure Container Registry
ACR_USERNAME Nazwa użytkownika usługi Azure Container Registry

Zrzut ekranu interfejsu GitHub z wybranym menu

Uwaga / Notatka

Nazwy można wybierać swobodnie i nie muszą być zgodne z określonym wzorcem.

Te informacje można znaleźć w witrynie Azure Portal, wykonując następujące czynności:

  1. Wybierz ACR, do którego chcesz wdrożyć.

  2. Wybierz pozycję Klucze dostępu w obszarze Ustawienia.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Klucze dostępu dla rejestru kontenerów z widocznymi polami serwera logowania, nazwy użytkownika i hasła.

  3. W repozytorium wybierz pozycję Akcje.

  4. Wybierz przepływ pracy Kompilowanie i przepychanie do ACR i uruchom pracę.

    Zrzut ekranu przedstawiający sekcję Akcje repozytorium GitHub przedstawiającą historię przepływu pracy i opcje ręcznego wyzwalania przepływu pracy.

  5. Sprawdź, czy obraz został wdrożony do rejestru kontenerów Azure.

  6. Dla podanego przykładowego repozytorium: Obraz powinien znajdować się w rejestrze o nazwie mdc-mock-0001 z tagiem mdc-ghas-integration.

  7. Wdróż ten sam obraz jako działający kontener w swoim klastrze. Jednym ze sposobów wykonania tego kroku jest nawiązanie połączenia z klastrem i użycie kubectl run polecenia . Oto przykład usługi AKS:

    1. Ustaw subskrypcję klastra:

      az account set --subscription $subscriptionID
      
    2. Ustaw poświadczenia dla klastra:

      az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing
      
    3. Wdróż obraz:

      kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration
      

Krok 2. Tworzenie pierwszego czynnika ryzyka — reguła krytyczna dla działania firmy

Jednym z czynników ryzyka wykrywanych przez usługę Defender for Cloud dla tej integracji jest kluczowość biznesowa. Organizacje mogą tworzyć reguły, aby oznaczyć różne zasoby jako krytyczne dla działania firmy.

  1. W witrynie Microsoft Defender for Cloud Portal (Azure Portal) przejdź do pozycji Ustawienia środowiska, wybierz pozycję Krytyczne zasoby.

  2. W okienku po prawej stronie wybierz link, aby otworzyć usługę Microsoft Defender.

    Zrzut ekranu przedstawiający interfejs usługi Microsoft Defender for Cloud z kafelkiem Krytyczne zasoby i linkiem otwórz portal Usługi Microsoft Defender w okienku po prawej stronie.

  3. Wybierz pozycję Utwórz nową klasyfikację.

    Zrzut ekranu przedstawiający stronę ustawień XDR w usłudze Microsoft Defender z wyróżnionym linkiem

  4. Wprowadź nazwę i opis.

  5. W konstruktorze zapytań wybierz pozycję Zasób w chmurze .

  6. Napisz zapytanie, aby ustawić nazwę zasobu równą nazwie kontenera wdrożonego w klastrze w celu weryfikacji, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający konstruktora zapytań w usłudze Microsoft Defender z filtrem, w którym Nazwa zasobu równa się 'mdc-ghas-container', zastosowanym w obszarze Zasób w chmurze.

  7. Na stronie Zasoby w wersji zapoznawczej , jeśli usługa Microsoft Defender już wykryła zasób, nazwa kontenera będzie wyświetlana z typem zasobu K8s-container lub K8s-pod. Nawet jeśli nie jest jeszcze widoczny na stronie zasobów w wersji zapoznawczej, przejdź do następnego kroku. Usługa Microsoft Defender stosuje etykietę krytyczności do kontenera po wykryciu. Ten proces może potrwać do 24 godzin.

  8. Wybierz poziom krytyczny, a następnie przejrzyj i prześlij regułę klasyfikacji.

Krok 3. Sprawdzanie, czy środowisko jest gotowe

Uwaga / Notatka

Po zastosowaniu poprzednich kroków, może minąć do 24 godzin, zanim zobaczą Państwo następujące wyniki.

  1. Sprawdź, czy skanowanie bez agenta GitHub wykrywa repozytorium.

  2. Przejdź do Eksploratora zabezpieczeń w chmurze i wykonaj zapytanie. Zrzut ekranu konstruktora zapytań w Eksploratorze zabezpieczeń w chmurze z filtrami ustawionymi na repozytoria GitHub i obrazy kontenerów z wynikami wyszukiwania.

  3. Sprawdź, czy usługa MDC (w usłudze ACR) przeskanowała obraz kontenera i użyła go do utworzenia kontenera. W zapytaniu dodaj warunki określonego wdrożenia. Zrzut ekranu eksploratora zabezpieczeń w chmurze przedstawiający zapytanie z filtrami dla repozytoriów GitHub i obrazów kontenerów, wyświetlając wyniki skanowania.

  4. Potwierdź, że kontener jest uruchomiony i że MDC przeskanowało klaster AKS. Zrzut ekranu pokazujący konstruktor zapytań usługi Cloud Security Explorer z filtrami dla repozytoriów GitHub i obrazów kontenerów, pokazujący wyniki z lukami w zabezpieczeniach i użyciem kontenerów.

  5. Sprawdź, czy czynniki ryzyka są prawidłowo skonfigurowane po stronie rozwiązania MDC. Wyszukaj nazwę swojego kontenera na stronie inwentarza MDC, a powinna być oznaczona jako krytyczna.

Krok 4. Tworzenie kampanii usługi GitHub

Ponieważ przepływ pracy wdraża obraz, który tworzy uruchomiony kontener z jednym z czynników ryzyka (krytyczny dla działania firmy), deweloperzy mogą zobaczyć czynniki ryzyka w usłudze GitHub.

Uwaga / Notatka

Po sklasyfikowaniu zasobu jako krytycznego może upłynąć do 12 godzin, aby usługa MDC wysyłała dane do usługi GitHub. Dowiedz się więcej tutaj.

  1. W usłudze GitHub przejdź do organizacji usługi GitHub używanej do testowania konfiguracji.

  2. Wybierz pozycję Zabezpieczeń>Kampanie>Utwórz kampanię na podstawie filtrów skanowania kodu.

    Zrzut ekranu interfejsu usługi GitHub przedstawiający kartę Kampanie zabezpieczeń > z opcjami tworzenia kampanii na podstawie kodu lub filtrów skanowania danych wrażliwych.

  3. Utwórz następującą kampanię. Ta kampania pokazuje otwarte alerty o średniej ważności, w których obraz wdrożony z repozytorium jest powiązany z zasobem krytycznym. Repozytorium testowe powinno zostać wykryte w tej kampanii.

    Zrzut ekranu interfejsu GitHub Campaigns pokazujący filtry dla otwartych alertów, stopień ważności ustawiony na krytyczne i średnie oraz ryzyko związane z czasem wykonywania jako zasób krytyczny.

  4. Wybierz pozycję Zapisz , a następnie pozycję Publikuj jako kampanię.

  5. Wprowadź wymagane informacje, a następnie opublikuj kampanię.

Krok 5: Ocena zaleceń dotyczących przekształcenia kodu na chmurę

Użyj doświadczenia SDLC rekomendacji C2C i wzbogacenia alertów bezpieczeństwa, aby zrozumieć stan zagadnień związanych z bezpieczeństwem i przypisać rekomendacje dotyczące rozwiązania odpowiedniemu zespołowi inżynieryjnemu, korzystając z połączenia alertów bezpieczeństwa Dependabot z pasującymi CVE na karcie Skojarzone CVE rekomendacji środowiska uruchomieniowego.

Wyświetl zalecenia C2C

  1. W portalu MDC przejdź do karty Zalecenia .
  2. Wyszukaj nazwę utworzonego kontenera i otwórz jedną z rekomendacji z informacją **Aktualizuj ***.
  3. Jeśli użyto przykładowego repozytorium, poszukaj rekomendacji dotyczącej aktualizacji rozszerzenia nawiasu klamrowego.
  4. Przejdź do karty Szczegółowe informacje dotyczące korygowania i wyświetl kod na diagramie chmury.
  5. Diagram mapuje uruchomiony kontener z obrazem kontenera w repozytorium kodu, do oryginalnego repozytorium kodu w usłudze GitHub.

Zrzut ekranu przedstawiający kartę Wgląd w działania naprawcze z diagramem faz rozwoju, gdzie fazy Kodowania, Budowania, Wysyłania i Czasu działania są połączone liniami przerywanymi.

Wzbogacanie dwukierunkowe

  1. Wybierz kartę Skojarzone CVE. Zwróć uwagę, że niektóre CVE mają link w kolumnie Powiązane alerty GitHub.

    Zrzut ekranu przedstawiający zakładkę Powiązane CVEs, pokazując CVE-2025-5889 z oceną CVSS 3.1, w poprawionej wersji 2.0.2 i linkiem Zobacz na GitHub w sekcji Powiązane alerty GitHub.

  2. Wybierz link Wyświetl w witrynie GitHub, aby otworzyć odpowiedni alert zabezpieczeń GHAS.

Mobilizacja inżynierów

Aby zamknąć pętlę między zespołami ds. zabezpieczeń i inżynierii, możesz utworzyć problem z usługą GitHub dla konteneryzowanej aplikacji o priorytowaniu dla zespołu inżynierów problemów z zabezpieczeniami, na których powinni się skupić. Ta priorytetyzacja może obejmować przekazywanie wyników, których GHAS nie wykrył, ale MDC wykryło dla CVE, które nie są częścią bezpośrednich zależności (na przykład luki w zabezpieczeniach w obrazie podstawowym, systemie operacyjnym lub oprogramowaniu stron trzecich, takim jak NGINX).

Problem z systemem GitHub jest generowany automatycznie i zawiera wszystkie znalezione CVE w zakresie rekomendacji. Obejmuje to zarówno te z alertami Dependabot, jak i bez nich, wraz z innym kontekstem środowiska uruchomieniowego w repozytorium pochodzenia.

Zrzut ekranu przedstawiający listę problemów z usługą GitHub z trzema wpisami, w tym

Po przypisaniu zadania status problemu zostaje zaktualizowany w portalu MDC.

Zrzut ekranu przedstawiający problem z usługą GitHub zatytułowany

Poprawki związane z działaniem lub agencją

Po stronie usługi GitHub, jeśli masz licencję gitHub Copilot, możesz rozwiązać problem z pomocą agenta kodowania GitHub:

  1. Przypisz agenta kodowania GitHub do problemu.
  2. Przejrzyj wygenerowaną poprawkę.
  3. Jeśli wydaje się to uzasadnione, zastosuj poprawkę.
  4. Obserwuj aktualizację stanu problemu w systemie MDC na Zamknięte.