Wdrażanie integracji z zabezpieczeniami zaawansowanymi w usłudze GitHub

Ten przewodnik zawiera kroki konfiguracji i inne akcje ułatwiające integrację GitHub Advanced Security (GHAS) i Microsoft Defender dla Chmury, a następnie weryfikowanie zakończenia integracji. Integracja pomaga zmaksymalizować zabezpieczenia aplikacji natywnych dla chmury Microsoft dzięki korelacji zagrożeń środowiska uruchomieniowego i kontekstu z kodem źródłowym w celu szybszego korygowania opartego na sztucznej inteligencji.

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

  • Skonfiguruj repozytorium GitHub na potrzeby pokrycia usługi Defender dla Chmury.
  • Utwórz czynnik ryzyka środowiska uruchomieniowego.
  • Przetestuj rzeczywiste przypadki użycia w usłudze Defender dla Chmury.
  • Połącz kod z zasobami środowiska uruchomieniowego.
  • Rozpocznij kampanię zabezpieczeń na GitHub. Ta kampania używa kontekstu środowiska uruchomieniowego do określania priorytetów alertów zabezpieczeń GHAS.
  • Tworzenie problemów w GitHub z usługi Defender dla Chmury w celu rozpoczęcia naprawy.
  • Zamknij pętlę 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 Defender dla Chmury
— licencja GitHub Advanced Security (GHAS) w połączonych repozytoriach
— plan zarządzania stanem zabezpieczeń w chmurze (DCSPM) Defender włączony w ramach subskrypcji
- Microsoft Security Copilot (opcjonalnie w przypadku zautomatyzowanego korygowania opartego na sztucznej inteligencji)
Role i uprawnienia — Uprawnienia administratora zabezpieczeń
— Administrator zabezpieczeń w subskrypcji Azure (aby wyświetlić wyniki w usłudze Defender dla Chmury)
- Administrator organizacji GitHub (do łączenia repozytoriów i konfigurowania kampanii zabezpieczeń)
Środowiska chmury — Dostępne tylko w chmurach komercyjnych (nie w usłudze Azure Government, na platformie Azure obsługiwanej przez firmę 21Vianet lub w innych suwerennych chmurach)

Przygotowywanie środowiska

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

Aby przetestować integrację, użyj własnych repozytoriów lub przykładowego projektu piaskownicy, który ma repozytorium testowe GitHub z całą zawartością w celu utworzenia obrazu kontenera podatnego na zagrożenia.

  1. Zaloguj się do portalu Azure.

  2. Przejdź do Microsoft Defender dla Chmury>DevOps security.

  3. Wprowadź nazwę repozytorium kodu na pasku wyszukiwania (przykład: zava-webshop).

  4. Sprawdź, czy należy ona do organizacji, którą monitorujesz, na przykład organizacji zava-corporation .

  5. Sprawdź, czy istnieją jakieś wyniki dla repozytorium.

  6. Upewnij się, że stan zaawansowanego zabezpieczeń to Włączone. Oznacza to, że usługa GitHub Advanced Security jest włączona w monitorowanym repozytorium.

  7. Jeśli nie można odnaleźć repozytorium, zapoznaj się z dokumentacją Microsoft Defender dla Chmury dotyczącą rozwiązywania problemów oraz wdrażania łącznika GitHub.

  8. Upewnij się, że skanowanie bez agenta jest włączone dla łącznika GitHub.

    Zrzut ekranu konfiguracji planu w CSPM w usłudze Defender z uaktywnionym bezagentowym skanowaniem kodu i wszystkimi opcjami skanera włączonymi.

Krok 2. Sprawdzanie, czy środowisko jest gotowe

Walidacja potwierdza, że środowisko jest poprawnie skonfigurowane do prezentowania kodu w rekomendacjach środowiska uruchomieniowego i generowania wyników możliwych do działania. W tym kroku usługa Defender sprawdza, czy:

Pełna widoczność kodu podczas działania środowiska uruchomieniowego

  • Microsoft Defender dla Chmury stale monitoruje repozytoria kodu źródłowego pod kątem luk w zabezpieczeniach.
  • Artefakty kompilacji, takie jak obrazy kontenerów, są skanowane w rejestrach kontenerów przed wdrożeniem.
  • Obciążenia środowiska uruchomieniowego wdrożone w klastrach Kubernetes są monitorowane pod kątem zagrożeń bezpieczeństwa.
  • Defender dla Chmury koreluje i śledzi każdy artefakt z kodu, przez kompilowanie i wdrażanie, do środowiska uruchomieniowego i z powrotem.

Note

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

Przetestuj, czy skanowanie bez agenta GitHub wykrywa repozytorium.

Przejdź do Microsoft Defender dla Chmury>Cloud Security Explorer i wykonaj zapytanie. Zapytania weryfikacyjne testują, czy usługa Defender jest w stanie identyfikować artefakty generowane przez przepływy pracy i obciążenia. Jeśli zapytania zwracają wyniki, oznacza to, że skanowanie i korelacja działają zgodnie z oczekiwaniami.

Zrzut ekranu przedstawiający Eksplorator zabezpieczeń chmury w Defender dla Chmury, pokazujący zapytanie dotyczące przesyłania repozytoriów GitHub do obrazów kontenerów.

Note

Jeśli nie zostaną zwrócone żadne wyniki, może to oznaczać, że artefakty nie są jeszcze generowane, skanowanie nie jest skonfigurowane lub brakuje uprawnień. Aby uzyskać więcej informacji, zobacz Role i uprawnienia użytkownika .

  1. Sprawdź, czy usługa Defender dla Chmury (w Azure Container Registry) przeskanowała obraz kontenera i użyła go do utworzenia kontenera.

  2. W zapytaniu dodaj warunki określonego wdrożenia.

    Zrzut ekranu przedstawiający Cloud Security Explorer programu Defender dla Chmury pokazujący zapytanie dotyczące wypychania repozytoriów GitHub do obrazów kontenerów narażonych na luki w zabezpieczeniach.

  3. Sprawdź, czy kontener jest uruchomiony i czy usługa Defender dla Chmury przeskanowała klaster usługi AKS.

    Zrzut ekranu Defender dla Chmury's Cloud Security Explorer pokazującego zapytanie dotyczące wypychania GitHub do obrazów kontenerów z podatnościami.

  4. Sprawdź, czy czynniki ryzyka są prawidłowo skonfigurowane po stronie usługi Defender dla Chmury. Wyszukaj nazwę kontenera na stronie spisu usługi Defender dla Chmury i powinna zostać wyświetlona jako krytyczna.

Note

Ten krok jest wymagany tylko wtedy, gdy czynniki ryzyka nie zostały jeszcze skonfigurowane w danym środowisku. Jeśli już używasz czynników ryzyka, możesz zweryfikować ich konfigurację w obszarze Ustawienia > Krytyczne zasoby.

Pomyślna walidacja zapewnia, że kolejne kroki, takie jak rekomendacje, kampanie i tworzenie zgłoszeń w GitHubie, przynoszą wartościowe rezultaty.

Note

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

Krok 3. Tworzenie kampanii GitHub

Aby utworzyć kampanię skanowania, musisz pracować na poziomie organizacji GitHub. To doświadczenie nie jest dostępne na poziomie indywidualnego repozytorium.

  1. W GitHub przejdź do organizacji GitHub używanej do testowania konfiguracji.

  2. Wybierz Zabezpieczenia>Kampanie>Utwórz kampanię>Na podstawie filtrów skanowania kodu.

  3. Ta kampania pomaga ustalać priorytety dla wyników GHAS, które dotyczą kodu faktycznie wdrożonego i uruchomionego.

  4. Wybierz filtry Ryzyka czasu wykonywania dla kampanii.

    Zrzut ekranu tworzenia kampanii skanowania kodu na GitHub z paskiem filtru, przyciskiem Filtr i podpowiedzią dotyczącą filtrowania według metadanych artefaktu.

    Zrzut ekranu przedstawiający okno dialogowe zaawansowanych filtrów w tworzeniu kampanii na GitHub z filtrem Ryzyko uruchomieniowe oraz otwarte menu wyboru czynników ryzyka.

  5. Wybierz Zapisz>Opublikuj jako kampanię. Wprowadź wymagane informacje, a następnie opublikuj kampanię.

  6. Śledź postęp kampanii. Oświet ekranu przedstawiający stronę kampanii GitHub pokazującą zaległy stan, pasek postępu kampanii, listę alertów krytycznych i opcje filtru.

Krok 4. Mobilizacja zaleceń

Aby zrozumieć stan problemów z zabezpieczeniami, użyj funkcjonalności oceny rekomendacji kontenerów VA i korelacji funkcji od kodu do środowiska wykonawczego w celu związania zidentyfikowanych CVE z alertami zabezpieczeń Dependabot. Następnie możesz przekazać zalecenie dotyczące rozwiązania odpowiedniemu zespołowi inżynieryjnemu na podstawie mapowania kodu do czasu wykonywania.

  1. W portalu usługi Defender dla Chmury przejdź do karty Zalecenia .

  2. Wyszukaj nazwę kontenera utworzonego na podstawie repozytorium kodu.

  3. Otwórz jedną z rekomendacji dotyczących aktualizacji oprogramowania ; nazwa zalecenia zaczyna się od aktualizacji

  4. Wybierz kartę Skojarzone CVEs. Alerty zabezpieczeń pojawiają się jako część przepływu oceny rekomendacji. Te alerty wskazują wyniki usługi GitHub Advanced Security, które są już znane zespołowi inżynieryjnemu. Należy pamiętać, że niektóre identyfikatory CVE mają link „Zobacz na GitHub” w kolumnie Alerty powiązane z GitHub.

    Zrzut ekranu przedstawiający kartę Wyniki Defender dla Chmury z wyświetlonymi alertami CVE-2024-21409, stanem naprawy, ocenami CVSS i szczegółami alertu GitHub.

Wybierz link, aby otworzyć odpowiedni alert zabezpieczeń GHAS. (Aby wyświetlić zawartość alertu GHAS w GitHub, musisz mieć uprawnienia dostępu do odpowiedniego repozytorium GitHub. Jeśli nie masz uprawnień dostępu, zawsze możesz skopiować link do następnego użycia lub skontaktować się z administratorem GitHub).

Jeśli istnieje ulepszenie alertu, to istnieje dopasowany alert Dependabot, który jest już znany inżynierom. Jeśli stan to Aktywny, nikt jeszcze go nie rozwiązał, a problem musi mieć priorytet dla poprawki.

Jeśli nie ma żadnych wyników wzbogacania, oznacza to ryzyko środowiska uruchomieniowego nieznane inżynierii, które musi być priorytetowe dla poprawki.

Co dalej? Jak sprawdzić, kto jest odpowiednim zespołem w celu rozwiązania problemu? Jak mogę się dowiedzieć, który kontekst może pomóc inżynierom w naprawie?

Utwórz problem na GitHubie

Aby zamknąć pętlę między zespołami ds. zabezpieczeń i inżynierii, możesz utworzyć problem z usługą GitHub, który określa priorytety problemów z zabezpieczeniami, na których powinien skupić się zespół inżynierów. Ta priorytetyzacja może obejmować uwzględnianie wyników, które nie zostały wychwycone przez usługę GHAS, ale zostały wykryte przez usługę Defender dla Chmury dla identyfikatorów CVE, które nie są częścią bezpośrednich zależności. Wyniki te mogą obejmować luki w zabezpieczeniach obrazu podstawowego, systemu operacyjnego lub oprogramowania, takiego jak NGINX.

Zgłoszenie w serwisie GitHub jest generowane automatycznie w repozytorium kodu źródłowego i zawiera wszystkie identyfikatory CVE znalezione w zakresie zalecenia, a także inne konteksty związane ze środowiskiem uruchomieniowym, kontenerami i cyklem życia tworzenia oprogramowania (SDLC), które mogą pomóc w usunięciu problemu i testowaniu.

W widoku rekomendacji możesz jawnie utworzyć zgłoszenie w GitHub w celu śledzenia działań korygujących.

  1. Przejdź do karty Wskazówki dotyczące naprawy i wyświetl diagram kod-wykonanie. Diagram mapuje twój uruchomiony kontener na obraz kontenera w repozytorium kodu oraz do oryginalnego repozytorium kodu na GitHubie.

    Zrzut ekranu szczegółowych informacji dotyczących remediacji, pokazującego diagram od kodu do środowiska uruchomieniowego z poziomami ryzyka i otwartego menu Wykonaj Akcję w polu Środowisko uruchomieniowe.

    1. Na karcie Informacje o działaniach naprawczych sprawdź sekcję Runtime, której dotyczy problem.

    2. Sprawdź, czy problem w GitHub już istnieje. Jeśli problem z GitHub już istnieje, w polu zostanie wyświetlona ikona GitHub. Zatrzymaj wskaźnik myszy na ikonie, aby wyświetlić szczegóły problemu.

    3. Jeśli problem nie istnieje i masz wymagane uprawnienia, możesz wygenerować nowy GitHub problem. Wybierz pozycję Podejmij akcję.

    4. Wybierz opcję Generate GitHub issue z wyskakującego okienka.

    5. Jeśli problem został utworzony pomyślnie, zostanie wyświetlone wyskakujące powiadomienie z linkiem do problemu. Problem został utworzony w oryginalnym repozytorium kodu.

      Zrzut ekranu przedstawiający listę problemów na GitHub z otwartymi kwestiami dotyczącymi zależności z etykietami takimi jak Defender dla Chmury i security.

    Note

    Jeśli opcja Generate GitHub jest niedostępna, może brakować wymaganych uprawnień do GitHub lub repozytorium. Skontaktuj się z administratorem GitHub lub repozytorium, aby zażądać dostępu.

    Zrzut ekranu przedstawiający wygenerowane zgłoszenie w usłudze GitHub dotyczące otwartej zależności z etykietami Defender dla Chmury i etykietami zabezpieczeń.

    1. Śledzenie własności i aktualizacji stanu — zmiany stanu zgłoszenia lub przypisania wprowadzone w usłudze GitHub są odzwierciedlane w Microsoft Defender dla Chmury, co umożliwia śledzenie przypisania właściciela i postępów w korygowaniu w widoku Recommendations.

      Zrzut ekranu przedstawiający stronę z zaleceniami Microsoft Defender dla Chmury, pokazujący problemy o wysokim ryzyku z wyskakującym oknem zawierającym szczegóły problemów w serwisie GitHub.

Wprowadź poprawki wynikające z inicjatywy

Po stronie 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 poprawka wydaje się rozsądna, zastosuj ją.
  4. Obserwuj, jak usługa Defender dla Chmury aktualizuje stan problemu na Zamknięty.