Einrichten der nativen Integration von GitHub Advanced Security mit Microsoft Defender for Cloud

Dieses Handbuch enthält Setupschritte und andere Aktionen, mit denen Sie GitHub Advanced Security (GHAS) und Microsoft Defender for Cloud mit einem Anwendungsfall integrieren können, der Ihnen hilft, das Ende der Integration zu überprüfen. Diese Integration trägt dazu bei, die Cloud-native Anwendungssicherheit Microsoft zu maximieren, indem Laufzeitrisiken und Kontext mit dem ursprünglichen Code korreliert werden, um eine schnellere KI-basierte Behebung zu ermöglichen.

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 Laufzeitressourcen.
  • Starten Sie eine Sicherheitskampagne auf GitHub. Diese Kampagne verwendet Laufzeitkontext, um GHAS-Sicherheitswarnungen 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
- GitHub Advanced Security(GHAS)-Lizenz für verbundene Repositorys
- Defender Cloud Security Posture Management (DCSPM)-Plan für das Abonnement aktiviert
- Microsoft Security Copilot (optional für KI-gestützte automatisierte Wartung)
Rollen und Berechtigungen – Berechtigungen für Sicherheitsadministratoren
– Sicherheitsadministrator für das Azure-Abonnement (zum Anzeigen von Ergebnissen in Defender for Cloud)
- GitHub Organisationsbesitzer (zum Verbinden von Repositorys und Konfigurieren von Sicherheitskampagnen)
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 example Sandbox-Projekt mit einem Test-GitHub Repository mit allen Inhalten, um ein anfälliges Containerimage zu erstellen.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wechseln Sie zu Microsoft Defender for Cloud>DevOps Security.

  3. Geben Sie Ihren Code-Repositorynamen in die Suchleiste ein (Beispiel: zava-webshop).

  4. Überprüfen Sie, ob sie wirklich zu Organisation gehört, die Sie überwachen (Beispiel: zava-corporation org).

  5. Überprüfen Sie, ob es Ergebnisse für das Repository gibt.

  6. Stellen Sie sicher, dass der Erweiterte SicherheitsstatusAktiv anzeigt, dass GitHub Advanced Security für das überwachte Repository aktiviert ist – > Ihr eingebundenes Repository.

  7. Wenn Ihr Repository nicht gefunden wurde, lesen Sie die Microsoft Defender for Cloud-Dokumentation zur Fehlerbehebung und zum GitHub Connector-Onboarding.

  8. Stellen Sie sicher, dass die agentlose Überprüfung für Ihren GitHub Connector aktiviert ist.

    Screenshot der Plankonfiguration in Defender CSPM mit aktivierter agentenloser Code-Überprüfung und allen aktivierten Scanner-Optionen.

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

Die Überprüfung bestätigt, dass Ihre Umgebung ordnungsgemäß konfiguriert ist, um Code für Laufzeitempfehlungen anzuzeigen und umsetzbare Ergebnisse zu generieren. Während dieses Schritts überprüft Defender folgendes:

Vollständiger Code zur Laufzeitsicht

  • Microsoft Defender for Cloud überwacht kontinuierlich Quellcoderepositorys auf Sicherheitsrisiken.
  • Build-Artefakte, wie z. B. Container-Images, werden vor der Bereitstellung in Container-Registries gescannt.
  • Laufzeitarbeitslasten, die in Kubernetes-Clustern bereitgestellt werden, werden auf Sicherheitsrisiken überwacht.
  • Defender for Cloud korreliert und verfolgt jedes Artefakt vom Code über Build und Bereitstellung bis hin zur Laufzeit und zurück.

Hinweis

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

Testen Sie, dass GitHub agentloses Scannen das Repository erfasst.

Wechseln Sie zu Microsoft Defender for Cloud>Cloud Security Explorer und führen Sie die Abfrage aus. Die Überprüfungsabfragen testen, ob Defender Artefakte identifizieren können, die von Ihren Pipelines und Workloads erstellt wurden. Wenn die Abfragen Ergebnisse zurückgeben, gibt sie an, dass Scan und Korrelation erwartungsgemäß funktionieren.

Screenshot des Cloudsicherheits-Explorer von Defender for Cloud mit einer Abfrage für GitHub Repository-Pushes an Containerimages.

Hinweis

Wenn keine Ergebnisse zurückgegeben werden, kann es darauf hindeuten, dass Artefakte noch nicht erstellt wurden, das Scannen nicht konfiguriert ist oder Berechtigungen fehlen. Weitere Informationen finden Sie unter Benutzerrollen und Berechtigungen .

  1. Überprüfen Sie, ob Defender für Cloud (in Azure Container Registry) das Containerimage gescannt und zum Erstellen eines Containers verwendet hat.

  2. Fügen Sie in Ihrer Abfrage die Bedingungen für Ihre spezifische Bereitstellung hinzu.

    Screenshot des Cloud Security Explorers von Defender for Cloud zeigt eine Abfrage für GitHub Repository-Pushes an Containerimages mit Sicherheitsrisiken.

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

    Screenshot des Cloud Security Explorers von Defender for Cloud zeigt eine Abfrage für GitHub Pushes an Containerimages mit Sicherheitsrisiken.

  4. Ü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.

Hinweis

Dieser Schritt ist nur erforderlich, wenn Risikofaktoren nicht bereits in Ihrer Umgebung konfiguriert sind. Wenn Sie bereits Risikofaktoren verwenden, können Sie deren Konfiguration unter "Ressourcenkritische > Einstellungen" überprüfen.

Durch eine erfolgreiche Validierung wird sichergestellt, dass nachfolgende Schritte wie Empfehlungen, Kampagnen und GitHub Problemgenerierung aussagekräftige Ergebnisse liefern.

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. Weitere Informationen.

Schritt 3: Erstellen einer GitHub Kampagne

Um eine Scankampagne zu erstellen, müssen Sie auf GitHub Organisationsebene arbeiten. Diese Erfahrung steht nicht auf der ebene der einzelnen Repositorys zur Verfügung.

  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.

  3. Diese Kampagne hilft bei der Priorisierung von GHAS-Ergebnissen, die zu Code gehören, der wirklich bereitgestellt und ausgeführt wird.

  4. Wählen Sie "Laufzeitrisiken"- Filter für die Kampagne aus.

    Screenshot der Erstellung der GitHub Codescanner-Kampagne mit einer Filterleiste, einer Filterschaltfläche und einer QuickInfo zum Filtern nach Artefakt-Metadaten.

    Screenshot des Dialogfelds

  5. Wählen Sie Speichern>Als Kampagne veröffentlichen aus. Geben Sie die erforderlichen Informationen ein, und veröffentlichen Sie dann die Kampagne.

  6. Verfolgen Sie den Fortschritt der Kampagne. Screenshot der GitHub-Kampagnenseite mit überfälligem Status, Kampagnenfortschrittsbalken, Liste kritischer Alarmmeldungen und Filteroptionen.

Schritt 4: Empfehlungen mobilisierung

Verwenden Sie die Empfehlungen für laufende Container-VA, die Code-zu-Laufzeit-Funktionalität sowie die Korrelation der identifizierten CVEs mit Dependabot-Sicherheitswarnungen, um den Status von Sicherheitsproblemen zu verstehen. Anschließend können Sie dem relevanten Entwicklungsteam basierend auf der Code-zu-Laufzeit-Zuordnung die Empfehlung für die Lösung zuweisen.

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

  2. Suchen Sie nach dem Namen des Containers, den Sie aus Dem Code-Repository erstellt haben.

  3. Öffnen Sie eine der Updatesoftwareempfehlungen ; der Empfehlungsname beginnt mit "Update".

  4. Wählen Sie die Registerkarte Zugeordnete CVEs. Sicherheitswarnungen erscheinen als Teil des Bewertungslaufs für Empfehlungen. Diese Warnungen enthalten Hinweise auf GitHub Advanced-Security-Ergebnisse, die den Ingenieuren bereits bekannt sind. Beachten Sie, dass einige CVE-IDs über eine 'View on GitHub'-Verknüpfung in der Spalte "Verwandte GitHub-Warnungen" verfügen.

    Screenshot der Registerkarte „Defender for Cloud-Befunde”, die CVE-2024-21409-Warnungen, Fix-Status, CVSS-Bewertungen und das GitHub-Alarmdetails-Popup zeigt.

Wählen Sie den Link aus, um die relevante GHAS-Sicherheitswarnung zu öffnen. (Um den GHAS-Warnungsinhalt in GitHub anzuzeigen, müssen Sie über Zugriffsberechtigungen für das relevante GitHub Repository verfügen. Wenn Sie nicht über Zugriffsberechtigungen verfügen, können Sie den Link jederzeit zur nachfolgenden Verwendung kopieren oder sich an Ihren GitHub-Administrator wenden.)

Wenn eine Warnmeldung erweitert wurde, gibt es eine entsprechende Dependabot-Warnmeldung, die dem Entwicklungsteam bereits bekannt ist. Wenn der Status "Aktiv" lautet, wurde er noch nicht behoben, und das Problem muss für einen Fix priorisiert werden.

Wenn keine Anreicherung festgestellt wird, deutet dies auf ein den Entwicklern unbekanntes Laufzeitrisiko hin, dessen Fix Priorität haben muss.

Wie geht es weiter? Wie würde ich wissen, wer das relevante Team für die Lösung ist? Wie würde ich wissen, welcher Kontext dem Engineering bei der Lösung helfen kann?

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-Issue wird automatisch für das Ursprungscode-Repository generiert, wobei alle im Rahmen der Empfehlung gefundenen CVE-IDs enthalten sind, einschließlich anderer Laufzeit- und Container-SDLC-Kontexte, die die Behebung von Problemen und Tests erleichtern können.

Aus der Empfehlungsansicht können Sie explizit ein GitHub Problem generieren, um Korrekturarbeiten nachzuverfolgen.

  1. Wechseln Sie zur Registerkarte "Korrektureinblicke ", und zeigen Sie das Code-zu-Laufzeit-Diagramm an. Das Diagramm ordnet Ihren laufenden Container dem Containerimage im Code-Repository und dem ursprünglichen Code-Repository in GitHub zu.

    Screenshot von Remediation Insights mit Code-zu-Laufzeit-Diagramm mit Risikostufen und Menü

    1. Überprüfen Sie auf der Registerkarte Wartungserkenntnisse das betroffene Laufzeitfeld.

    2. Validate, ob bereits ein GitHub Problem vorhanden ist. Wenn bereits ein GitHub Problem vorhanden ist, wird im Feld ein GitHub-Symbol angezeigt. Zeigen Sie mit der Maus auf das Symbol, um Problemdetails anzuzeigen.

    3. Wenn kein Problem vorhanden ist und Sie über die erforderlichen Berechtigungen verfügen, können Sie ein neues GitHub Problem generieren. Wählen Sie "Aktion ausführen" aus.

    4. Wählen Sie im Popup die Option Generate GitHub Problem aus.

    5. Wenn das Problem erfolgreich erstellt wurde, wird eine Popupbenachrichtigung mit einem Link zum Problem angezeigt. Das Problem wird im ursprünglichen Code-Repository erstellt.

      Screenshot der GitHub Issues-Liste, die offene Probleme für Abhängigkeiten mit Bezeichnungen wie Defender for Cloud und Sicherheit zeigt.

    Hinweis

    Wenn die Problemoption Generieren GitHub nicht verfügbar ist, fehlen möglicherweise erforderliche GitHub- oder Repositoryberechtigungen. Wenden Sie sich an Ihren GitHub oder Repositoryadministrator, um den Zugriff anzufordern.

    Screenshot der GitHub Issues-Liste mit offenen Problemen für Abhängigkeiten mit Bezeichnungen wie Defender for Cloud und Sicherheit.

    1. Nachverfolgung von Besitz- und Statusaktualisierungen – Änderungen des Problemstatus oder der Zuweisung, die in GitHub vorgenommen wurden, werden in Microsoft Defender for Cloud übernommen, sodass Sie den Besitz- und Behebungsfortschritt in der Ansicht Empfehlungen nachverfolgen können.

      Screenshot der Microsoft Defender for Cloud Empfehlungen-Seite mit Problemen mit hohem Risiko und GitHub-Problemdetails-Pop-up.

Nehmen Sie Agent-Korrekturen vor

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.