Distribuera integration av GitHub Advanced Security

Den här guiden innehåller installationssteg och andra åtgärder som hjälper dig att integrera GitHub Advanced Security (GHAS) och Microsoft Defender för molnet och sedan verifiera integreringen från slutpunkt till slutpunkt. Integreringen hjälper till att maximera Microsoft molnbaserade programsäkerhet genom att korrelera körningsrisker och kontext med ursprungskoden för snabbare AI-baserad reparation.

Genom att följa den här guiden:

  • Konfigurera din GitHub lagringsplats för Defender för molnet-täckning.
  • Skapa en körningstidsriskfaktor.
  • Testa verkliga användningsfall i Defender för molnet.
  • Länka kod till resurser vid körning.
  • Starta en säkerhetskampanj på GitHub. Den här kampanjen använder körmiljö för att prioritera GHAS-säkerhetsaviseringar.
  • Skapa GitHub-ärenden från Defender för molnet för att initiera åtgärder.
  • Stäng loopen mellan teknik- och säkerhetsteam.

Förutsättningar

Aspekt Detaljer
Miljökrav – GitHub-konto med en anslutning som skapats i Defender för Molnet
- GitHub ADVANCED Security-licens (GHAS) på anslutna lagringsplatser
– Defender DCSPM-plan (Cloud Security Posture Management) aktiverad för prenumerationen
– Microsoft Security Copilot (valfritt för AI-baserad automatiserad reparation)
Roller och behörigheter – Behörigheter för säkerhetsadministratör
– Säkerhetsadministratör för Azure-prenumerationen (för att visa resultat i Defender för molnet)
– GitHub organisationsägare (för att ansluta lagringsplatser och konfigurera säkerhetskampanjer)
Molnmiljöer – Endast tillgängligt i kommersiella moln (inte i Azure Government, Azure som drivs av 21Vianet eller andra nationella moln)

Förbered din miljö

Steg 1: Konfigurera GitHub-lagringsplatsen och kör arbetsflödet

Om du vill testa integreringen använder du dina egna lagringsplatser eller ett exempel sandbox-projekt som har ett test GitHub lagringsplats med allt innehåll för att skapa en sårbar containeravbildning.

  1. Logga in på Azure-portalen.

  2. Gå till Microsoft Defender för molnet>DevOps-säkerhet.

  3. Ange namnet på din kodlagringsplats i sökfältet (exempel: zava-webshop).

  4. Kontrollera att den tillhör den organisation som du övervakar, till exempel zava-corporation-organisationen .

  5. Granska om det finns några resultat för koddatabasen.

  6. Se till att Avancerad säkerhetsstatus är . Detta anger att GitHub Advanced Security är aktiverat på den övervakade lagringsplatsen.

  7. Om lagringsplatsen inte hittas kan du läsa Microsoft Defender för molnet-dokumentationen för felsökning och mer information om onboarding av GitHub-anslutningen.

  8. Kontrollera att agentlös genomsökning är aktiverat för din GitHub-anslutning.

    Skärmbild av plankonfiguration i Defender CSPM med agentlös kodgenomsökning aktiverad och alla skanneralternativ aktiverade.

Steg 2: Kontrollera att din miljö är redo

Verifieringen bekräftar att din miljö är korrekt konfigurerad för att visa kod för körningsrekommendationer och generera åtgärdsbara resultat. Under det här steget verifierar Defender att:

Fullständig kod för körningssynlighet

  • Microsoft Defender för molnet övervakar kontinuerligt lagringsplatser för källkod för säkerhetsrisker.
  • Byggartefakter, till exempel containeravbildningar, genomsöks i containerregister före distributionen.
  • Körningsarbetsbelastningar som distribueras till Kubernetes-kluster övervakas för säkerhetsrisker.
  • Defender för molnet korrelerar och spårar varje artefakt från kod, via kompilering och distribution, till körning och tillbaka.

Anmärkning

Det kan ta upp till 24 timmar efter att föregående steg har tillämpats för att se följande resultat.

Testa att GitHub agentlös genomsökning hämtar lagringsplatsen.

Gå till Microsoft Defender för molnet>Cloud Security Explorer och utför frågan. Valideringsfrågorna testar om Defender kan identifiera artefakter som produceras av dina pipelines och arbetsbelastningar. Om frågorna returnerar resultat anger det att genomsökning och korrelation fungerar som förväntat.

Skärmbild av Defender för molnet Cloud Security Explorer som visar en fråga för GitHub-lagringsplatsen skickar till containeravbildningar.

Anmärkning

Om inga resultat returneras kan det tyda på att artefakter ännu inte har genererats, att genomsökningen inte har konfigurerats eller att behörigheter saknas. Mer information finns i Användarroller och behörigheter .

  1. Verifiera att Defender för molnet (i Azure Container Registry) genomsökt containeravbildningen och använt den för att skapa en container.

  2. I frågan lägger du till villkoren för din specifika distribution.

    Skärmbild av Defender för molnet Cloud Security Explorer som visar en fråga för GitHub-lagringsplatsen skickar till containeravbildningar med sårbarheter.

  3. Kontrollera att containern körs och att Defender för molnet genomsökt AKS-klustret.

    Skärmbild av Defender för molnet:s

  4. Kontrollera att riskfaktorerna är korrekt konfigurerade på Defender för molnet-sidan. Sök efter ditt containernamn på sidan Defender för molninventering och du bör se det markerat som kritiskt.

Anmärkning

Det här steget krävs endast om riskfaktorer inte redan har konfigurerats i din miljö. Om du redan använder riskfaktorer kan du verifiera konfigurationen under Inställningar > Resurskritiskhet.

Lyckad validering säkerställer att nästa steg, till exempel rekommendationer, kampanjer och GitHub problemgenerering, ger meningsfulla resultat.

Anmärkning

När du har klassificerat resursen som kritisk kan det ta upp till 12 timmar innan Defender för molnet skickar data till GitHub. Läs mer.

Steg 3: Skapa en GitHub kampanj

Om du vill skapa en genomsökningskampanj måste du arbeta på GitHub organisationsnivå. Den här upplevelsen är inte tillgänglig på enskild lagringsplatsnivå.

  1. I GitHub går du till den GitHub organisation som du använde för konfigurationstestningen.

  2. VäljSäkerhetskampanjer>>Skapa kampanj>Från kodgenomsökningsfilter.

  3. Den här kampanjen hjälper till att prioritera GHAS-resultat som tillhör kod som verkligen distribueras och körs.

  4. Välj Filter för körningsrisker för kampanjen.

    Skärmbild av skapandet av en GitHub-kodgenomsökningskampanj med ett filterfält, filterknappen och en knappbeskrivning om filtrering efter artefaktmetadata.

    Skärmbild av dialogrutan avancerade filter i GitHub kampanjskapande med Runtime Risk-filter och menyn för valbara riskfaktorer öppen.

  5. Välj Spara>publicera som kampanj. Ange nödvändig information och publicera sedan kampanjen.

  6. Spåra kampanjframsteg. Skärmbild av GitHub kampanjsida som visar förfallen status, kampanjförloppsindikator, lista över kritiska aviseringar och filteralternativ.

Steg 4: Rekommendationer för mobilisering

Använd funktionen för att köra Containers VA-rekommendationers kod-till-körningsfunktionalitet och korrelationen mellan identifierade CVE:er och Dependabot-säkerhetsaviseringar för att få en överblick över säkerhetsproblemens status. Du kan sedan tilldela rekommendationen för lösning till relevant teknikteam baserat på kod-till-körning-mappning.

  1. I Defender för molnet-portalen går du till fliken Rekommendationer .

  2. Sök efter namnet på containern som du skapade från din kodlagringsplats.

  3. Öppna någon av rekommendationerna för uppdateringsprogramvaran . rekommendationsnamnet börjar med Uppdatera

  4. Välj fliken Associerade CVE:er Säkerhetsaviseringar visas som en del av rekommendationens utvärderingsflöde. Dessa aviseringar visar vilka identifierade säkerhetsproblem i GitHub Advanced Security som redan är kända för utvecklingsteamet. Observera att vissa CVE-ID:er har en länk för att Visa på GitHub i kolumnen Relaterade GitHub-varningar.

    Skärmbild av fliken Defender för molnet Resultat som visar CVE-2024-21409-aviseringar, korrigeringsstatus, CVSS-poäng och GitHub aviseringsinformation popup.

Välj länken för att öppna relevant GHAS-säkerhetsavisering. (Om du vill visa GHAS-aviseringsinnehållet i GitHub måste du ha åtkomstbehörighet till relevant GitHub lagringsplats. Om du inte har åtkomstbehörigheter kan du alltid kopiera länken för nästa användning eller kontakta din GitHub administratör.)

Om det finns en aviseringsberikning finns det en matchad Dependabot-avisering som redan är känd för utveckling. Om statusen är Aktiv har ingen åtgärdat den ännu, och problemet måste prioriteras för en korrigering.

Om det inte finns någon berikning anger detta en körningsrisk som är okänd för teknik som måste prioriteras för en korrigering.

Vad händer härnäst? Hur vet jag vilket som är det relevanta teamet för åtgärden? Hur skulle jag veta vilket sammanhang som kan hjälpa ingenjörerna med att lösa problemet?

Skapa ett GitHub problem

Om du vill stänga loopen mellan säkerhets- och teknikteam kan du skapa ett GitHub problem som prioriterar de säkerhetsproblem som teknikteamet bör fokusera på. Den här prioriteringen kan omfatta att överföra resultat som GHAS inte upptäckte men som Defender för molnet identifierade för CVE-ID:er som inte ingår i direkta beroenden. Dessa resultat kan omfatta sårbarheter i basavbildningen, operativsystemet eller programvara som NGINX.

GitHub-ärendet genereras automatiskt i källkodsförrådet med alla CVE-ID:n som hittas inom rekommendationens omfattning, inklusive andra sammanhang relaterade till runtime, containrar och SDLC som kan hjälpa till vid åtgärd och testning.

Från rekommendationsvyn kan du uttryckligen generera ett GitHub problem för att spåra reparationsarbete.

  1. Gå till fliken Remediation Insights och visa diagrammet code-to-runtime. Diagrammet mappar din körande container till containerbilden i kodarkivet och till kodens ursprungliga lagringsplats i GitHub.

    Skärmbild av Remediation Insights som visar kod-till-körningsdiagram med risknivåer och menyn Vidta åtgärd öppen i rutan Körning.

    1. På fliken Remediation Insights granskar du den berörda Runtime-rutan.

    2. Validera om det redan finns ett GitHub problem. Om det redan finns ett GitHub problem visas en GitHub-ikon i rutan. Hovra över ikonen för att visa probleminformation.

    3. Om det inte finns något problem och du har de behörigheter som krävs kan du generera ett nytt GitHub problem. Välj Gör något.

    4. Välj alternativet Generera GitHub-ärende i popupmenyn.

    5. Om ärendet skapades framgångsrikt kommer du att se ett popup-meddelande med en länk till ärendet. Problemet skapas i ursprungslagringsplatsen för kod.

      Skärmbild av GitHub problemlista som visar öppna problem för beroenden med etiketter som Defender för molnet och security.

    Anmärkning

    Om Generate GitHub problemalternativet inte är tillgängligt, kanske nödvändiga GitHub eller lagringsplatsbehörigheter saknas. Kontakta din GitHub- eller lagringsplatsadministratör för att begära åtkomst.

    Screenshot som visar ett genererat GitHub problem för ett öppet beroende med Defender för molnet och säkerhetsetiketter.

    1. Spåra ägarskap och statusuppdateringar – ändringar i problemstatus eller tilldelning som görs i GitHub återspeglas i Microsoft Defender för molnet, så att du kan spåra ägarskap och åtgärdsförlopp i vyn Recommendations.

      Skärmbild av sidan Microsoft Defender för molnet Rekommendationer som visar högriskproblem med GitHub-problemdetaljer-popup.

Göra agentiska korrigeringar

Om du har en GitHub Copilot licens på GitHub sidan kan du lösa problemet med hjälp av GitHub kodningsagenten:

  1. Tilldela ett GitHub kodningsagent till problemet.
  2. Granska den genererade korrigeringen.
  3. Om korrigeringen verkar rimlig, tillämpa den.
  4. Observera när Defender för molnet uppdaterar problemstatusen till Stängd.