Freigeben über


Bereitstellen der Integration von GitHub Advanced Security in Microsoft Defender für Cloud

Dieser Leitfaden führt Sie durch Setupschritte und andere Aktionen, mit denen Sie GitHub Advanced Security (GHAS) und Microsoft Defender for Cloud integrieren können. Diese Integration hilft Ihnen, die cloudeigene Anwendungssicherheit von Microsoft zu maximieren.

Wenn Sie diesem Leitfaden folgen, führen Sie folgende Schritte aus:

  • Richten Sie Ihr GitHub-Repository für Defender for Cloud-Unterstützung ein.
  • Erstellen Sie einen Laufzeitrisikofaktor.
  • Testen Sie echte Anwendungsfälle in Defender für Cloud.
  • Verknüpfen Sie Code mit Cloudressourcen.
  • Starten Sie eine Sicherheitskampagne auf GitHub. Diese Kampagne verwendet Laufzeitkontext, um GHAS-Sicherheitswarnungen basierend auf dem Laufzeitkontext zu priorisieren.
  • Erstellen Sie GitHub-Issues von Defender for Cloud, um die Behebung zu starten.
  • Schließen Sie die Schleife zwischen Engineering- und Sicherheitsteams.

Voraussetzungen

Aspekt Einzelheiten
Umweltanforderungen - GitHub-Konto mit einem Connector, der in Defender für Cloud erstellt wurde
- GHAS-Lizenz
– Defender Cloud Security Posture Management (CSPM) ist auf dem Abonnement aktiviert
- Microsoft Security Copilot (optional für automatisierte Korrekturen)
Rollen und Berechtigungen – Berechtigungen für Sicherheitsadministratoren
– Sicherheitsleser im Azure-Abonnement (um Ergebnisse in Defender für die Cloud anzuzeigen)
- GitHub-Organisationsbesitzer
Cloudumgebungen – Nur in kommerziellen Clouds verfügbar (nicht in Azure Government, Azure, betrieben von 21Vianet oder anderen souveränen Clouds)

Vorbereiten der Umgebung

Schritt 1: Einrichten des GitHub-Repositorys und Ausführen des Workflows

Verwenden Sie zum Testen der Integration Ihre eigenen Repositorys oder ein Beispiel-GitHub-Repository, das bereits über alle Inhalte verfügt, um ein anfälliges Containerimage zu erstellen. Stellen Sie vor dem Einrichten eines Repositorys folgendes sicher:

Wenn Sie ein Beispiel-Repository verwenden möchten, klonen Sie das folgende Repository für Ihre GitHub-Organisation: build25-woodgrove/mdc-customer-playbook. Dieses Repository richtet sich an Kunden, um die Integration von Defender for Cloud und GHAS zu testen. GHAS ist aktiviert, und es ist in einen Azure-Mandanten integriert, bei dem Defender CSPM aktiviert ist.

Führen Sie im Repository die folgenden Schritte aus:

  1. Wechseln Sie zu Einstellungen.

  2. Wählen Sie im linken Bereich " Geheime Schlüssel" und "Variablenaktionen>" aus. Wählen Sie dann "Neuer Repositoryschlüssel" aus.

    Screenshot der Auswahl zum Erstellen eines neuen Repositoryschlüssels in GitHub.

  3. Fügen Sie die folgenden geheimen Schlüssel auf Repository- oder Organisationsebene hinzu:

    Variable Description
    ACR_ENDPOINT Der Anmeldeserver der Containerregistrierung
    ACR_USERNAME Der Benutzername für die Containerregistrierung
    ACR_PASSWORD Das Kennwort für die Containerregistrierung

    Hinweis

    Die Namen können frei ausgewählt werden und müssen nicht einem bestimmten Muster folgen.

    Sie finden diese Informationen im Azure-Portal, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie die Containerregistrierung aus, für die Sie bereitstellen möchten.

    2. Wählen Sie unter "Einstellungen" die Zugriffstasten aus. Im Bereich "Zugriffstasten " werden die Schlüssel für den Anmeldeserver, den Benutzernamen und das Kennwort angezeigt.

      Screenshot des Bereichs, in dem Zugriffstasten für eine Containerregistrierung im Azure-Portal aufgelistet sind.

  4. Wählen Sie in Ihrem Repository "Aktionen" aus.

  5. Wählen Sie den Workflow "Erstellen und an ACR übertragen " und dann " Workflow ausführen" aus.

    Screenshot des Abschnitts

  6. Überprüfen Sie, ob das Image in Ihrer Container-Registry bereitgestellt wurde.

    Für das Beispielrepository sollte sich das Image in einer Registrierung mit dem Namen mdc-mock-0001 mit dem Tag mdc-ghas-integration befinden.

  7. Stellen Sie das gleiche Image als ausgeführten Container auf Ihrem Cluster bereit. Eine Möglichkeit, diesen Schritt abzuschließen, besteht darin, eine Verbindung mit dem Cluster herzustellen und den kubectl run Befehl zu verwenden. Hier ist ein Beispiel für Azure Kubernetes Service (AKS):

    1. Festlegen des Clusterabonnements:

      az account set --subscription $subscriptionID
      
    2. Legen Sie die Anmeldeinformationen für den Cluster fest:

      az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing
      
    3. Stellen Sie das Image bereit:

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

Schritt 2: Erstellen des ersten Risikofaktors (geschäftskritische Regel)

Einer der Risikofaktoren, die Defender für Cloud für diese Integration erkennt, ist business criticality. Organisationen können Regeln erstellen, um Ressourcen als unternehmenskritisch zu bezeichnen.

  1. Wechseln Sie im Defender for Cloud-Portal zu " Umgebungseinstellungen>Ressourcenkritischität".

  2. Wählen Sie im rechten Bereich den Link aus, um Microsoft Defender zu öffnen.

    Screenshot der Defender für Cloud-Schnittstelle, die Auswahlen zum Öffnen des Microsoft Defender-Portals zeigt.

  3. Wählen Sie " Neue Klassifizierung erstellen" aus.

    Screenshot der Schaltfläche zum Erstellen einer neuen Klassifizierung.

  4. Geben Sie einen Namen und eine Beschreibung ein.

  5. Wählen Sie im Abfrage-Generator die Cloudressource aus.

  6. Schreiben Sie eine Abfrage, um den Ressourcennamen auf den Namen des Containers festzulegen, den Sie für die Überprüfung im Cluster bereitgestellt haben. Wählen Sie dann Weiter aus.

    Screenshot des Microsoft Defender-Abfrage-Generators mit einem Ressourcennamenfilter, der für eine Cloudressource angewendet wurde.

  7. Wenn Microsoft Defender Ihre Ressource bereits erkannt hat, wird auf der Seite "Vorschauobjekte " der Name des Containers mit einem Objekttyp von K8s-Container oder K8s-Pod angezeigt.

    Auch wenn der Name noch nicht sichtbar ist, fahren Sie mit dem nächsten Schritt fort. Microsoft Defender wendet die Kritischitätsbezeichnung auf den Container an, nachdem der Container erkannt wurde. Dieser Vorgang kann bis zu 24 Stunden dauern.

  8. Wählen Sie eine Kritischitätsstufe aus, und überprüfen Sie dann Ihre Klassifizierungsregel, und übermitteln Sie sie.

Schritt 3: Überprüfen, ob Ihre Umgebung bereit ist

Hinweis

Es kann bis zu 24 Stunden dauern, nachdem die vorherigen Schritte angewendet wurden, bis die folgenden Ergebnisse angezeigt werden.

  1. Testen Sie, dass GitHub agentloses Scannen das Repository erfasst.

  2. Wechseln Sie zum Cloud Security Explorer, und führen Sie die Abfrage aus.

    Screenshot der Suchergebnisse im Abfrage-Generator für Cloud Security Explorer mit Filtern, die auf GitHub-Repositorys und Containerimages festgelegt sind.

  3. Überprüfen Sie, ob Defender für Cloud (in Azure Container Registry) das Containerimage gescannt und zum Erstellen eines Containers verwendet hat. Fügen Sie in Ihrer Abfrage die Bedingungen für Ihre spezifische Bereitstellung hinzu.

    Screenshot des Cloud Security Explorer mit Scanergebnissen für eine Abfrage mit Filtern für GitHub-Repositorys und Containerimages.

  4. Überprüfen Sie, ob der Container ausgeführt wird und dass Defender für Cloud den AKS-Cluster gescannt hat.

    Screenshot der Ergebnisse der Cloud Security Explorer-Abfrage mit Filtern für GitHub-Repositorys und Containerimages.

  5. Überprüfen Sie, ob die Risikofaktoren auf der Defender für Cloud-Seite ordnungsgemäß konfiguriert sind. Suchen Sie in der Defender for Cloud-Bestandsübersicht nach Ihrem Containernamen, und er sollte als kritisch markiert sein.

Schritt 4: Erstellen einer GitHub-Kampagne

Da der Workflow ein Image bereitstellt, das einen ausgeführten Container mit einem der Risikofaktoren (geschäftskritisch) erstellt, können Entwickler Risikofaktoren in GitHub sehen.

Hinweis

Nachdem Sie Ihre Ressource als kritisch klassifiziert haben, kann es bis zu 12 Stunden dauern, bis Defender for Cloud die Daten an GitHub sendet. Erfahren Sie mehr.

  1. Wechseln Sie in GitHub zur GitHub-Organisation, die Sie für die Setuptests verwendet haben.

  2. Wählen Sie Sicherheit>Kampagnen>Erstelle Kampagne>aus Code-Scan-Filtern.

    Screenshot der Optionen in GitHub zum Erstellen einer Kampagne aus Code- oder Secret-Scanning-Filtern.

  3. Erstellen Sie die folgende Kampagne. Diese Kampagne zeigt offene Warnungen mit mittlerem Schweregrad an, bei denen das aus dem Repository bereitgestellte Image an eine kritische Ressource gebunden ist. Ihr Test-Repository sollte mit dieser Kampagne erkannt werden.

    Screenshot einer GitHub-Kampagne mit Filtern für offene Warnungen, Schweregrad und Laufzeitrisiko.

  4. Wählen Sie Speichern>Als Kampagne veröffentlichen aus.

  5. Geben Sie die erforderlichen Informationen ein, und veröffentlichen Sie dann die Kampagne.

Schritt 5: Bewerten von Code-zu-Cloud-Empfehlungen

Verwenden Sie Code-zu-Cloud-Empfehlungen und Sicherheitswarnungen, um den Status von Sicherheitsproblemen zu verstehen. Anschließend können Sie dem relevanten Entwicklungsteam die Empfehlung zur Behebung zuweisen, indem Sie die Verbindung zwischen Dependabot-Sicherheitswarnungen und übereinstimmenden Schwachstellen (CVE)-IDs in Defender for Cloud herstellen.

So zeigen Sie die Code-zu-Cloud-Empfehlungen an:

  1. Wechseln Sie im Defender für Cloud-Portal zur Registerkarte "Empfehlungen ".

  2. Suchen Sie nach dem Namen des von Ihnen erstellten Containers. Öffnen Sie dann eine der Empfehlungen, die das Wort "Aktualisieren" enthalten.

    Wenn Sie das Beispiel-Repository verwendet haben, suchen Sie nach Empfehlung für die Aktualisierung der Klammererweiterung.

  3. Wechseln Sie zur Registerkarte "Korrektureinblicke ", und zeigen Sie das Code-zu-Cloud-Diagramm an. Das Diagramm ordnet Ihren laufenden Container dem Containerimage im Code-Repository und dem Ursprungscode-Repository auf GitHub zu.

    Screenshot der Registerkarte

Anzeigen von Sicherheitswarnungen

  1. Wählen Sie die Registerkarte "Zugeordnete CVEs " aus. Beachten Sie, dass einige CVE-IDs über einen Link " Auf GitHub anzeigen" in der Spalte " Verwandte GitHub-Warnungen " verfügen.

  2. Wählen Sie den Link aus, um die relevante GHAS-Sicherheitswarnung zu öffnen.

Screenshot der Registerkarte

Erstellen eines GitHub-Problems

Um die Schleife zwischen Sicherheits- und Entwicklungsteams zu schließen, können Sie ein GitHub-Problem erstellen, das die Sicherheitsprobleme priorisiert, auf die sich das Entwicklungsteam konzentrieren sollte. Diese Priorisierung kann die Einbeziehung von Ergebnissen umfassen, die GHAS nicht erkannt hat, die jedoch von Defender für Cloud für CVE-IDs identifiziert wurden, welche nicht Teil direkter Abhängigkeiten sind. Zu diesen Ergebnissen können Sicherheitsrisiken im Basisimage, Betriebssystem oder Software wie NGINX gehören.

Das GitHub-Problem wird automatisch mit allen CVE-IDs generiert, die im Bereich der Empfehlung zu finden sind. Die Empfehlung umfasst sowohl Übereinstimmungen mit als auch ohne Dependabot-Warnungen sowie andere Laufzeitkontexte im Ursprungsrepository.

Screenshot einer GitHub-Problemliste mit drei Einträgen, die mit Sicherheits- und Sicherheitsrisikotags gekennzeichnet sind.

Wenn Sie das Problem zuweisen, wird der Problemstatus im Defender für Cloud-Portal aktualisiert.

Screenshot eines GitHub-Problems mit Sicherheits- und Sicherheitsrisikentags, einschließlich Details wie CVE-IDs, Laufzeitrisikofaktoren und Bereitstellungsinformationen.

Agentische Korrekturen erstellen

Auf der GitHub-Seite können Sie das Problem mit Hilfe des GitHub-Codierungs-Agents beheben, wenn Sie über eine GitHub Copilot-Lizenz verfügen:

  1. Weisen Sie dem Problem einen GitHub-Codierungs-Agent zu.
  2. Überprüfen Sie die generierte Korrektur.
  3. Wenn die Lösung angemessen erscheint, wenden Sie sie an.
  4. Beachten Sie, dass Defender für Cloud den Problemstatus auf "Geschlossen" aktualisiert.