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

Aspect 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 koppla ihop arkiv 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ö

Genomför följande steg för att konfigurera ditt GitHub-arkiv och Defender för molnet-inställningar innan du validerar integrationen.

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

För att testa integrationen, använd dina egna arkiv eller ett exempel på sandlådeprojekt. Sandlådeprojektet tillhandahåller ett test-GitHub-repository med allt du behöver för att bygga en sårbar containerimage.

  1. Logga in på Azure-portalen.

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

  3. Ange ditt kodreponamn i sökfältet, till 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 På. Denna inställning indikerar att GitHub Advanced Security är aktiverat på det övervakade arkivet.

  7. Om ditt repository inte hittas, se GitHub Connector onboarding quickstart för felsökning och installation.

  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

Denna miljövalidering bekräftar att ditt repository och molnresurser är korrekt inställda. Den kontrollerar att Defender kan visa rekommendationer från kod till körtid och ge användbara resultat. Under valideringssteget i miljön verifierar Defender att:

  • 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 de tidigare stegen har tillämpats innan resultatet kan ses.

Validera full kod-till-körningstid-synlighet

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ärmdump av Defender för molnet:s Cloud Security Explorer som visar en fråga om GitHub-arkiv som pushar till containerbilder.

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. I Azure Container Registry, verifiera att Defender för molnet skannat containeravbilden och använde den för att skapa en container.

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

    Skärmdump av Defender för molnet:s Cloud Security Explorer som visar en fråga om GitHub-arkiv skickar till containerbilder med sårbarheter.

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

    Skärmdump av Defender för molnet:s Cloud Security Explorer som visar en sökning för GitHub som skickar till containerbilder med sårbarheter.

  4. Kontrollera att riskfaktorerna är korrekt konfigurerade på Defender för molnet-sidan. Sök efter ditt containernamn på Defender för molnet-inventariesidan. Du bör se att det är 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 deras konfiguration under Inställningar>Resurskritikalitet.

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. För mer information, se Prioritering av Dependabot och kodskanningsvarningar.

Steg 3: Skapa en GitHub kampanj

För att skapa en skanningskampanj, 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.

    Runtime-riskkampanjen hjälper till att prioritera GitHub Advanced Security (GHAS)-fynd som tillhör kod som verkligen är distribuerad och igång.

  3. 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.

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

  5. Spåra kampanjframsteg.

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

Steg 4: Agera på rekommendationerna

Använd de pågående Containers VA-rekommendationerna, funktionaliteten för kod till körningstid och korrelationen mellan identifierade CVE:er och Dependabot-säkerhetsaviseringar för att förstå statusen för säkerhetsproblem. 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 en av rekommendationerna för uppdateringsprogramvaran . Rekommendationsnamnet börjar med Uppdatering.

  4. Välj 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. Vissa CVE-ID:n har länken ”Visa på GitHub” i kolumnen ”Relaterade GitHub-aviseringar”.

    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. För att se GHAS-varningsinnehållet i GitHub måste du ha åtkomstbehörighet till det relevanta GitHub-arkivet. Om du inte har åtkomstbehörighet kan du alltid kopiera länken för nästa användning eller kontakta din GitHub-administratör.

Om kolumnen Relaterade GitHub Alerts visar en matchad Dependabot-varning är sårbarheten redan känd för ingenjörerna. Om varningsstatusen är Aktiv har ingen fixat det än, och problemet måste prioriteras för en åtgärd.

Om ingen matchande GitHub-varning visas i kolumnen representerar CVE en körtidsrisk som är okänd för ingenjörerna och som måste prioriteras för en fix.

Skapa ett GitHub-problem

För att 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 Remediation Insights och se kod-till-körtid-diagrammet. 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 problemet skapades framgångsrikt ser du en popup-notis med en länk till problemet. 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 alternativet Generate GitHub-ärende inte är tillgängligt, kan det hända att du saknar GitHub- eller lagringsplatsbehörigheter. 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. Följ ägar- och statusuppdateringar. Ändringar i utfärdarstatus eller tilldelning som görs i GitHub återspeglas i Microsoft Defender för molnet. Detta gör att du kan följa ägar- och saneringsframsteg från Rekommendationer-vyn .

      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 kan du lösa problemet med hjälp av GitHub-kodningsagenten:

  1. Tilldela en 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.