Delen via


GitHub Advanced Security native integratie instellen met Microsoft Defender voor Cloud

Deze handleiding bevat installatiestappen en andere acties waarmee u GitHub Advanced Security (GHAS) en Microsoft Defender voor Cloud kunt integreren met een use-case waarmee u de integratie end-to-end kunt valideren. Deze integratie helpt de cloud-native beveiliging van Microsoft-toepassingen te maximaliseren door runtimerisico's en context te correleren met de oorspronkelijke code voor snellere AI-gestuurde herstelacties.

Door deze handleiding te volgen, gaat u als volgt te werk:

  • Stel uw GitHub-opslagplaats in voor Defender for Cloud-dekking.
  • Maak een runtime-risicofactor.
  • Test echte gebruiksscenario's in Defender for Cloud.
  • Koppel code aan runtime-resources.
  • Start een beveiligingscampagne op GitHub. Deze campagne maakt gebruik van runtimecontext om prioriteit te geven aan beveiligingswaarschuwingen van GHAS.
  • Maak GitHub-issues vanuit de Defender voor Cloud om met de remediëring te beginnen.
  • Sluit de lus tussen technische en beveiligingsteams.

Vereiste voorwaarden

Kenmerk Bijzonderheden
Milieuvereisten - GitHub account met een connector die is gemaakt in Defender for Cloud
- GHAS-licentie
- Defender Cloud Security Posture Management (DCSPM) ingeschakeld voor het abonnement
- Microsoft Security Copilot (optioneel voor geautomatiseerd herstel)
Rollen en machtigingen - Machtigingen voor beveiligingsbeheerders
- Beveiligingsbeheerder voor het Azure-abonnement (om bevindingen weer te geven in Defender voor Cloud)
- eigenaar van GitHub organisatie
Cloudomgevingen - Alleen beschikbaar in commerciële clouds (niet in Azure Government, Azure beheerd door 21Vianet of andere onafhankelijke clouds)

Uw omgeving voorbereiden

Stap 1: de GitHub opslagplaats instellen en de werkstroom uitvoeren

Als u de integratie wilt testen, gebruik uw eigen repositories of een voorbeeldrepository op GitHub die alle vereiste bestanden bevat om een kwetsbare containerimage te bouwen. Voordat u een opslagplaats instelt, moet u ervoor zorgen dat:

  • U definieert een connector voor de GitHub organisatie die u wilt gebruiken in de Defender for Cloud-portal. Volg de stappen in Connect your GitHub environment to Microsoft Defender voor Cloud.

  • U configureert codescans zonder agent voor uw GitHub-connector. Volg de stappen in Configureer agentloos code scannen (preview).

  • De opslagplaats die u voor de integratie gebruikt, is privé.

Als u een voorbeeldopslagplaats wilt gebruiken, kloont u de volgende opslagplaats naar uw GitHub organisatie: build25-woodgrove/mdc-customer-playbook. Deze opslagplaats is bedoeld voor klanten om de integratie van Defender for Cloud en GHAS te testen. Er is GHAS ingeschakeld en het is opgenomen in een Azure-tenant die Defender CSPM heeft ingeschakeld.

Voer in de opslagplaats de volgende stappen uit:

  1. Ga naar Instellingen.

  2. Selecteer Geheimen en variabelenActies in het linkerdeelvenster. Selecteer vervolgens Nieuw opslagplaatsgeheim.

    Scherm van selecties voor het maken van een nieuw opslagplaatsgeheim in GitHub.

  3. Voeg de volgende geheimen toe op het niveau van de opslagplaats of organisatie:

    Variable Description
    ACR_ENDPOINT De aanmeldingsserver van het containerregister
    ACR_USERNAME De gebruikersnaam voor het containerregister
    ACR_PASSWORD Het wachtwoord voor het containerregister

    Opmerking

    De namen kunnen vrij worden gekozen en hoeven geen specifiek patroon te volgen.

    U vindt deze informatie in de Azure-portal door de volgende stappen uit te voeren:

    1. Selecteer het containerregister waarnaar u wilt implementeren.

    2. Selecteer onder Instellingende optie Toegangssleutels. In het deelvenster Toegangssleutels worden de sleutels voor de aanmeldingsserver, gebruikersnaam en wachtwoord weergegeven.

      Schermopname van het deelvenster met toegangssleutels voor een containerregister in de Azure portal.

  4. Selecteer Acties in uw opslagplaats.

  5. Selecteer de werkstroom Bouwen en pushen naar ACR en selecteer vervolgens Werkstroom uitvoeren.

    Schermafbeelding van de sectie Acties van een GitHub-opslagplaats met de werkstroomgeschiedenis en de knop voor het uitvoeren van een werkstroom.

  6. Controleer of het image is gedeponeerd in uw containerregister.

    Voor de voorbeeldopslagplaats moet de containerafbeelding in een register genaamd mdc-mock-0001 staan, met de tag mdc-ghas-integration.

  7. Implementeer dezelfde image als een draaiende container op uw cluster. Een manier om deze stap te voltooien, is door verbinding te maken met het cluster en de opdracht te gebruiken. Hier volgt een voorbeeld voor Azure Kubernetes Service (AKS):

    1. Stel het clusterabonnement in:

      az account set --subscription $subscriptionID
      
    2. Stel de referenties voor het cluster in:

      az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing
      
    3. De installatiekopieën implementeren:

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

Stap 2: De voorbeeldrisicofactor maken (bedrijfskritieke regel)

Een van de risicofactoren die Defender voor Cloud detecteert voor deze integratie is bedrijfskritiek. Organisaties kunnen regels maken om middelen als bedrijfskritisch te labelen.

  1. Ga in de Defender for Cloud-portal naar Omgevingsinstellingenresourcekritiek.

  2. Selecteer in het rechterdeelvenster de koppeling om Microsoft Defender te openen.

    Schermopname van de Defender voor Cloud-interface waarin selecties worden weergegeven voor het openen van de Microsoft Defender portal.

  3. Selecteer Een nieuwe classificatie maken.

    Schermopname van de knop voor het maken van een nieuwe classificatie.

  4. Voer een naam en een beschrijving in.

  5. Selecteer cloudresource in de opbouwfunctie voor query's.

  6. Schrijf een query om resourcenaam in te stellen die gelijk is aan de naam van de container die u voor validatie in uw cluster hebt geïmplementeerd. Klik daarna op Volgende.

     Schermopname van de Microsoft Defender-querybouwer met een resourcefilter toegepast voor een cloudresource.

  7. Op de pagina Preview Assets, als Microsoft Defender uw resource al heeft gedetecteerd, wordt de naam van de container weergegeven met een assettype van K8s-container of K8s-pod.

    Zelfs als de naam nog niet zichtbaar is, gaat u verder met de volgende stap. Microsoft Defender past het label kritiek toe op de container nadat de container is gedetecteerd. Dit proces kan maximaal 24 uur duren.

  8. Kies een kritiek niveau en controleer en dien vervolgens uw classificatieregel in.

Stap 3: Controleren of uw omgeving gereed is

Validatie bevestigt dat uw omgeving correct is geconfigureerd om code aan runtime-aanbevelingen te presenteren en om bruikbare resultaten te genereren.

Tijdens deze stap controleert Defender of:

  • Volledige code voor runtime-zichtbaarheid
  • Broncodeopslagplaatsen worden continu bewaakt door Microsoft Defender voor Cloud voor beveiligingsproblemen.
  • Build-artifacten (zoals containerafbeeldingen) worden in containerregisters gescand vóór de implementatie.
  • Runtime-workloads die geïmplementeerd zijn in Kubernetes-clusters worden gecontroleerd op beveiligingsrisico's.
  • Defender for Cloud correleert en traceert elk artefact vanuit code, via build en implementatie, naar runtime en terug.

Opmerking

Het kan tot 24 uur duren voordat de vorige stappen zijn toegepast om de volgende resultaten te zien.

  1. Test of GitHub agentloze scanning de opslagplaats detecteert.

  2. Ga naar Cloud Security Explorer en voer de query uit. De validatiequery's testen of Defender artefacten kan identificeren die door uw pijplijnen en workloads zijn geproduceerd. Als de query's resultaten retourneren, geeft dit aan dat scannen en correlatie werken zoals verwacht.

    Screenshot van zoekresultaten in de querybouwer van Cloud Security Explorer, met filters ingesteld op GitHub repositories en containerafbeeldingen.

    Opmerking

    Als er geen resultaten worden geretourneerd, kan dit erop wijzen dat artefacten nog niet zijn gegenereerd, dat scannen niet is geconfigureerd of dat er machtigingen ontbreken. Zie Gebruikersrollen en -machtigingen voor meer informatie.

  3. Controleer of Defender for Cloud (in Azure Container Registry) de containerafbeelding heeft gescand en deze gebruikt heeft om een container te creëren. Voeg in uw query de voorwaarden voor uw specifieke implementatie toe.

    Schermopname van Cloud Security Explorer met scanresultaten voor een query met filters voor GitHub opslagplaatsen en containerinstallatiekopieën.

  4. Controleer of de container wordt uitgevoerd en of Defender for Cloud het AKS-cluster heeft gescand.

    Scherm van queryresultaten van Cloud Security Explorer met filters voor GitHub opslagplaatsen en containerinstallatiekopieën.

  5. Controleer of de risicofactoren correct zijn geconfigureerd aan de zijde van Defender voor Cloud. Zoek de containernaam op de Defender for Cloud-inventarispagina en u zou deze gemarkeerd als kritieke status moeten zien.

    Opmerking

    Deze stap is alleen vereist als risicofactoren nog niet zijn geconfigureerd in uw omgeving.

  6. Als u al risicofactoren gebruikt, kunt u de configuratie controleren onder Instellingen in Resource kritiek.

Geslaagde validatie zorgt ervoor dat de volgende stappen, zoals aanbevelingen, campagnes en GitHub genereren van problemen zinvolle resultaten opleveren.

Stap 4: Een GitHub campagne maken

Omdat de workflow een image implementeert die een draaiende container met de risicofactor 'bedrijfskritiek' creëert, kunnen ontwikkelaars de risicofactoren in GitHub zien.

Opmerking

Nadat u uw resource als kritiek hebt geclassificeerd, kan het tot 12 uur duren voordat Defender for Cloud de gegevens naar GitHub verzendt. Meer informatie.

Als u een scancampagne wilt maken, moet u op GitHub organisatieniveau werken. Deze ervaring is niet beschikbaar op het niveau van de afzonderlijke opslagplaats.

  1. Ga in GitHub naar de GitHub organisatie die u hebt gebruikt voor het testen van de installatie.

  2. Selecteer BeveiligingCampagnesCampagne makenVan codescanfilters. Deze campagne definieert welke artefacten die zijn ontdekt door de cloudomgeving (zoals containerimages of workloads) worden geëvalueerd en gemonitord binnen uw omgeving.

    Scherm van opties in GitHub om een campagne te maken op basis van code- of geheime scanfilters.

  3. Maak de volgende campagne. Deze campagne toont openstaande waarschuwingen met een gemiddelde ernst waarbij de image die vanuit de repository is geïmplementeerd, is gekoppeld aan een kritieke bron. Uw testopslagplaats moet worden gedetecteerd met deze campagne.

    Schermopname van een GitHub campagne met filters voor openstaande waarschuwingen, ernst en runtimerisico.

  4. Selecteer Publiceren opslaanals campagne.

  5. Voer de vereiste gegevens in en publiceer de campagne.

Stap 5: Aanbevelingen evalueren

Gebruik aanbevelingen voor code naar runtime en beveiligingswaarschuwingen om de status van beveiligingsproblemen te begrijpen. Vervolgens kunt u de aanbeveling voor oplossing toewijzen aan het relevante technische team met behulp van de verbinding tussen Dependabot-beveiligingswaarschuwingen en overeenkomende veelvoorkomende beveiligingsproblemen en blootstellingen (CVE)-id's in Defender for Cloud.

Aanbevelingen voor code-naar-runtime

Aanbevelingen voor de overgang van code naar runtime weergeven:

  1. Ga in de Defender for Cloud-portal naar het tabblad Aanbevelingen .

  2. Zoek de naam van de container die u hebt gemaakt. Open vervolgens een van de aanbevelingen voor updatesoftware . De naam van de aanbeveling begint met Update.

    Als u de voorbeeldopslagplaats hebt gebruikt, zoekt u naar de aanbeveling voor het bijwerken van accolade-uitbreiding.

  3. Ga naar het tabblad Herstelinzichten en bekijk de code voor runtime-diagram. Het diagram koppelt uw draaiende container aan de containerafbeelding in de codeopslagplaats en naar de oorsprongscodeopslagplaats op GitHub.

    Wanneer de campagne wordt uitgevoerd, geeft Defender code-naar-runtime-aanbevelingen weer die cloudresultaten correleren met code en build artefacten.

De volgende weergave biedt context over de betrokken activa en risicosignalen. Deze weergave helpt u te begrijpen waarom er een aanbeveling is gegenereerd voordat u actie onderneemt.

Schermopname van het tabblad Herstelinzichten met een diagram van gekoppelde ontwikkelingsfasen.

Beveiligingswaarschuwingen

Beveiligingswaarschuwingen worden weergegeven als onderdeel van de evaluatiestroom voor aanbevelingen. Deze waarschuwingen bieden extra context over actieve risico's en helpen prioriteit te geven aan herstel, maar ze maken niet automatisch GitHub problemen.

  1. Selecteer het tabblad Associated CVE's. Sommige CVE-id's hebben een Weergave op GitHub koppeling in de kolom Gerelateerde GitHub-waarschuwingen.

  2. Selecteer de koppeling om de relevante beveiligingswaarschuwing van GHAS te openen. (Als u de GHAS-waarschuwingsinhoud in GitHub wilt bekijken, moet u toegangsmachtigingen hebben voor de relevante GitHub opslagplaats. Neem contact op met uw GitHub beheerder als u dat niet doet.)

Schermafbeelding van het tabblad Gekoppelde CV's met een koppeling naar een gerelateerde GitHub alert.

Een probleem met GitHub maken

Als u de lus tussen beveiligings- en technische teams wilt sluiten, kunt u een GitHub probleem maken dat prioriteit geeft aan de beveiligingsproblemen waarop het technische team zich moet richten. Deze prioriteitsaanduiding kan bestaan uit het doorgeven van bevindingen die GHAS niet heeft opgehaald, maar die Defender for Cloud heeft gedetecteerd voor CVE-id's die geen deel uitmaken van directe afhankelijkheden. Deze bevindingen kunnen beveiligingsproblemen bevatten in de basisinstallatiekopieën, het besturingssysteem of software zoals NGINX.

Het GitHub issue wordt automatisch gegenereerd met alle CVE-ID's in het bereik van de aanbeveling. De aanbeveling geldt zowel met als zonder Dependabot-waarschuwingen, inclusief andere runtimecontexten op de oorspronkelijke opslagplaats.

In de aanbevelingsweergave kunt u expliciet een GitHub probleem genereren om herstelwerkzaamheden bij te houden.

  1. Open de relevante aanbeveling voor updatesoftware .

  2. Selecteer het tabblad Herstelinzichten .

  3. Controleer het betreffende runtime-vak .

  4. Validate of er al een GitHub probleem bestaat - Als er al een GitHub probleem bestaat, wordt in het vak een GitHub-pictogram weergegeven. Beweeg de muisaanwijzer over het pictogram om details van het probleem weer te geven.
    Als er geen probleem bestaat en u over de vereiste machtigingen beschikt, kunt u een nieuw GitHub probleem genereren.

  5. Selecteer Actie ondernemen.

  6. Selecteer Generate GitHub issue in het pop-upvenster.

  7. Als het probleem succesvol is aangemaakt, ziet u een pop-upmelding met een koppeling naar het probleem.

  8. Het probleem wordt gemaakt in de codeopslagplaats van oorsprong.

    Opmerking

    Als de optie Generate GitHub issue niet beschikbaar is, ontbreken de vereiste GitHub- of repositoryrechten.
    Neem contact op met de beheerder van uw GitHub of opslagplaats om toegang te vragen.

    Schermafbeelding van een lijst met problemen met GitHub met drie vermeldingen gemarkeerd met tags voor beveiliging en beveiligingsproblemen.

  9. Wanneer het probleem is toegewezen aan een GitHub gebruiker of als de status ervan wordt gewijzigd, wordt de update doorgevoerd in de Defender for Cloud-portal.

Eigendom en statusupdates volgen - Wijzigingen in de status van het probleem of de toewijzing die in GitHub zijn aangebracht, worden gereflecteerd in Microsoft Defender voor Cloud, waardoor u eigendom en voortgang van herstel kunt volgen.

Schermopname van een GitHub probleem met tags voor beveiliging en beveiligingsproblemen, waaronder details zoals CVE-id's, runtime-risicofactoren en implementatiegegevens.

Agentgerelateerde oplossingen toepassen

Als u een GitHub Copilot licentie hebt, kunt u het probleem oplossen met behulp van de GitHub coderingsagent aan de GitHub kant:

  1. Wijs een GitHub coderingsagent toe aan het probleem.
  2. Bekijk de gegenereerde oplossing.
  3. Als de oplossing redelijk lijkt, past u deze toe.
  4. Bekijk wanneer Defender for Cloud de status van het probleem bijwerken naar Gesloten.