Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Leitfaden führt Sie durch alle Setupschritte, die Ihnen helfen, die Cloud-native Anwendungssicherheit von Microsoft optimal zu machen, indem Sie GitHub Advanced Security (GHAS) und Microsoft Defender for Cloud (MDC) integrieren.
Wenn Sie diesem Leitfaden folgen, führen Sie folgende Schritte aus:
- Richten Sie Ihr GitHub-Repo für Microsoft Defender for Cloud (MDC) ein
- Erstellen eines Laufzeitrisikofaktors
- Testen realer Anwendungsfälle in MDC
- Verknüpfen von Code mit Cloudressourcen
- Starten sie eine Sicherheitskampagne auf GitHub, indem Sie den Laufzeitkontext nutzen, um die GHAS-Sicherheitswarnungen basierend auf dem Laufzeitkontext zu priorisieren.
- Erstellen eines GitHub Issues vom MDC aus, um die Korrektur zu starten
- Schließen der Schleife zwischen Engineering- und Sicherheitsteams
Voraussetzungen
| Aspekt | Einzelheiten |
|---|---|
| Umweltanforderungen | - GitHub-Konto mit einem Connector, der in Microsoft Defender für Cloud (MDC) erstellt wurde - GitHub Advanced Security (GHAS)-Lizenz – Defender CSPM im Abonnement aktiviert - GitHub Security Copilot (optional für automatisierte Korrekturen) |
| Rollen und Berechtigungen | – Berechtigungen für Sicherheitsadministratoren – Sicherheitsleser im Azure-Abonnement (zum Anzeigen von Ergebnissen in MDC) - GitHub-Organisationsbesitzer |
| Cloudumgebungen | - Nur in kommerziellen Clouds verfügbar (nicht in US Gov, China Gov 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 sicher, dass Sie einen Connector für die GitHub-Organisation definieren, die Sie im Microsoft Defender für Cloud-Portal verwenden möchten. Führen Sie für die Connectordefinition die Schritte unter Verbinden Ihrer GitHub-Organisationen aus.
Stellen Sie sicher, dass die agentlose Codeüberprüfung für Ihren GitHub-Connector konfiguriert ist. Falls nicht, folgen Sie den Schritten auf: Konfigurieren Sie die agentenlose Code-Überprüfung (Vorschau).
Hinweis
Stellen Sie sicher, dass das Für die Integration verwendete Repository privat ist.
Wenn Sie ein Beispiel-Repository verwenden möchten, klonen Sie das folgende Repository in Ihrer GitHub-Organisation. Dieses Repository hat GHAS aktiviert und ist in einen Azure-Mandanten mit aktiviertem DCSPM eingebunden:build25-woodgrove/mdc-customer-playbook. Dieses Repository ist für Kunden, um die Integration von Microsoft Defender for Cloud und GHAS zu testen.
Führen Sie im Repository die folgenden Schritte aus:
- Wechseln Sie zu Einstellungen.
- Wählen Sie im linken Bereich " Geheime Schlüssel" und "Variablenaktionen>" aus.
- Fügen Sie die folgenden geheimen Schlüssel auf Repository- oder Organisationsebene hinzu:
| Variable | Description |
|---|---|
| ACR_ENDPOINT | Der Anmeldeserver der Azure-Containerregistrierung |
| ACR_PASSWORD | Das Kennwort für die Azure-Containerregistrierung |
| ACR_USERNAME | Der Benutzername für die Azure-Containerregistrierung |
Hinweis
Die Namen können frei gewählt werden und müssen nicht einem bestimmten Muster folgen.
Sie finden diese Informationen im Azure-Portal, indem Sie die folgenden Schritte ausführen:
Wählen Sie die ACR, die Sie bereitstellen möchten.
Wählen Sie unter "Einstellungen" die Zugriffstasten aus.
Wählen Sie in Ihrem Repository "Aktionen" aus.
Wählen Sie den Workflow "Erstellen" und "An ACR übertragen" aus , und führen Sie den Workflow aus.
Überprüfen Sie, ob das Image in Ihrer Azure-Containerregistrierung bereitgestellt wurde.
Für das bereitgestellte Beispiel-Repository: Das Image sollte sich in einem Registry namens mdc-mock-0001 mit dem Tag mdc-ghas-integration befinden.
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 runBefehl zu verwenden. Hier ist ein Beispiel für AKS:Festlegen des Clusterabonnements:
az account set --subscription $subscriptionIDLegen Sie die Anmeldeinformationen für den Cluster fest:
az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existingStellen 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 verschiedene Ressourcen als unternehmenskritisch zu bezeichnen.
Wechseln Sie im Microsoft Defender für Cloud-Portal (Azure-Portal) zu " Umgebungseinstellungen", und wählen Sie "Ressourcenkritischität" aus.
Wählen Sie im rechten Bereich den Link aus, um Microsoft Defender zu öffnen.
Wählen Sie " Neue Klassifizierung erstellen" aus.
Geben Sie einen Namen und eine Beschreibung ein.
Wählen Sie die Cloudressource im Abfrage-Generator aus.
Schreiben Sie eine Abfrage, um den Ressourcennamen auf den Namen des Containers festzulegen, den Sie für die Überprüfung im Cluster bereitgestellt haben, und wählen Sie "Weiter" aus.
Wenn Microsoft Defender Ihre Ressource bereits erkannt hat, wird auf der Seite "Vorschauobjekte " der Name des Containers mit dem Objekttyp "K8s-container" oder "K8s-pod" angezeigt. Auch wenn sie noch nicht auf der Seite "Vorschauobjekte" sichtbar ist, fahren Sie mit dem nächsten Schritt fort. Microsoft Defender wendet die Kritischitätsbezeichnung auf den Container an, nachdem er erkannt wurde. Dieser Vorgang kann bis zu 24 Stunden dauern.
Wählen Sie eine Kritikalitätsstufe aus, überprüfen und übermitteln Sie Ihre Klassifizierungsregel.
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.
Testen Sie, ob das agentenlose Scannen von GitHub das Repository erfasst.
Wechseln Sie zum Cloud Security Explorer, und führen Sie die Abfrage aus.
Überprüfen Sie, ob der MDC (in ACR) das Containerimage gescannt und zum Erstellen eines Containers verwendet hat. Fügen Sie in Ihrer Abfrage die Bedingungen für Ihre spezifische Bereitstellung hinzu.
Überprüfen Sie, dass der Container ausgeführt wird und MDC den AKS-Cluster gescannt hat.
Überprüfen Sie, ob die Risikofaktoren auf MDC-Seite ordnungsgemäß konfiguriert sind. Suchen Sie auf der MDC-Bestandsseite nach Ihrem Containernamen, und Sie sollten ihn als kritisch gekennzeichnet sehen.
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 MDC die Daten an GitHub sendet. Hiererhalten Sie weitere Informationen.
Wechseln Sie in GitHub zur GitHub-Organisation, die Sie für die Setuptests verwendet haben.
Wählen Sie Sicherheit>Kampagnen>Erstellen Sie eine Kampagne aus Codescan-Filtern.
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.
Wählen Sie "Speichern" und dann " Als Kampagne veröffentlichen" aus.
Geben Sie die erforderlichen Informationen ein, und veröffentlichen Sie dann die Kampagne.
Schritt 5: Evaluierung von Code-to-Cloud-Empfehlungen
Nutzen Sie die SDLC-Erfahrung von C2C-Empfehlungen und die Anreicherung mit Sicherheitswarnungen, um den Status von Sicherheitsproblemen zu verstehen und die Empfehlung zur Lösung dem zuständigen Engineering-Team zuzuweisen. Dies geschieht mit Hilfe der Verbindung zwischen den Sicherheitswarnungen von Dependabot und den übereinstimmenden CVEs in der Registerkarte Runtime recommendation Associated CVE.
Anzeigen der C2C-Empfehlungen
- Wechseln Sie im MDC-Portal zur Registerkarte "Empfehlungen ".
- Suchen Sie nach dem Namen des von Ihnen erstellten Containers, und öffnen Sie eine der Empfehlungen, die besagt: **Update ***.
- Wenn Sie das Beispiel-Repo verwendet haben, suchen Sie nach: Empfehlung zur Aktualisierung der Brace-Erweiterung.
- Gehen Sie auf die Registerkarte Korrekturen Insights und sehen Sie sich das Code-to-Cloud-Diagramm an.
- Das Diagramm ordnet Ihren ausgeführten Container dem Image des Containers im Code-Repository und dem Code-Repository des Ursprungs in GitHub zu.
Bidirektionale Anreicherung
Wählen Sie die Registerkarte "Zugeordnete CVEs " aus. Beachten Sie, dass einige CVEs über einen Link in der Spalte "Verwandte GitHub-Warnungen" verfügen.
Wählen Sie den Link "Auf GitHub anzeigen" aus, um die relevante GHAS-Sicherheitswarnung zu öffnen.
Technische Mobilisierung
Um die Zusammenarbeit zwischen Sicherheits- und Entwicklungsteams zu verbessern, können Sie ein GitHub-Issue für eine containerisierte Anwendung erstellen, in dem die Sicherheitsprobleme priorisiert werden, auf die sich das Entwicklungsteam konzentrieren sollte. Diese Priorisierung kann das Übergeben von Ergebnissen umfassen, die GHAS nicht aufgenommen hat, aber MDC für CVEs erkannt hat, die nicht Teil von direkten Abhängigkeiten sind (z. B. Sicherheitsrisiken im Basisimage, Betriebssystem oder Drittanbietersoftware wie NGINX).
Das GitHub Issue wird automatisch mit allen CVEs erstellt, die im Bereich der Empfehlung gefunden wurden, und zwar sowohl mit als auch ohne Dependabot-Warnungen, einschließlich anderer Runtime-Kontexte im Repo des Ursprungs.
Wenn Sie das Problem zuweisen, wird der Problemstatus im MDC-Portal aktualisiert.
Agentische Korrekturen
Wenn Sie über eine GitHub Copilot-Lizenz verfügen, können Sie das Problem mit Hilfe von GitHub Coding Agent beheben:
- Weisen Sie den GitHub Coding Agent dem Issue zu.
- Überprüfen Sie die generierte Korrektur.
- Wenn dies sinnvoll erscheint, wenden Sie die Behebung an.
- Beobachten Sie die Aktualisierung des Issue-Status im MDC auf Closed.