Scannen von IaC-Vorlagen mithilfe von Microsoft Defender for DevOps
Infrastruktur als Codevorlagen definieren Sicherheitskonfigurationen, bevor Ressourcen vorhanden sind. Das Scannen in der Pipeline erfasst Fehlkonfigurationen, wenn sie am günstigsten zu beheben sind – während der Codeüberprüfung und nicht nach der Bereitstellung. In dieser Einheit erfahren Sie, wie Sie Microsoft Security DevOps (MSDO) konfigurieren, um Bicep-, ARM- und Terraform-Vorlagen direkt in GitHub Actions und Azure Pipelines zu scannen und wie Defender for DevOps Ergebnisse in Defender for Cloud anzeigt.
| Scanmethode | Wenn ausgeführt | Anwendungsfall |
|---|---|---|
| Pipeline-Überprüfung (MSDO) | Bei jedem Commit oder PR | Konformität vor dem Zusammenführen erzwingen |
| Überprüfung ohne Agent | Alle 24 Stunden | Legacy-Repositorys oder vom Anbieter verwaltete Pipelines |
Verbinden von GitHub und Azure DevOps mit Defender for Cloud
DevOps-Sicherheit in Defender for Cloud bietet Einblicke in den Sicherheitsstatus in coderepositorys. Bevor Sie IaC-Vorlagen in der Pipeline scannen, verbinden Sie Ihre Quellcodeverwaltungsumgebung mit Defender for Cloud, damit Ergebnisse im zentralen Sicherheitsdashboard angezeigt werden können.
Um die Verbindung zu aktivieren, wechseln Sie zu Defender for Cloud → Environment-Einstellungen → + Umgebung hinzufügen → wählen Sie GitHub oder Azure DevOps aus. Für GitHub erfordert der Prozess eine GitHub App-Installation in der Organisation oder ausgewählten Repositorys. Die Installation erstellt eine Connectorressource in Azure, die Defender for Cloud mit Ihrer GitHub Umgebung verknüpft. Für Azure DevOps autorisieren Sie den Zugriff mithilfe einer OAuth-Autorisierung oder Azure DevOps persönlichen Zugriffstokens, das eine ähnliche Connectorressource erstellt.
Nach der Verbindung nimmt Defender for Cloud die Repository-Metadaten auf und beginnt mit der Generierung von DevOps-Sicherheitsempfehlungen. Empfehlungen umfassen die Offenlegung von Geheimnissen im Code, Schwachstellen in Open-Source-Komponenten und Fehlkonfigurationen von IaC. Alle Ergebnisse werden unter dem Bildschirm Recommendations in Defender for Cloud angezeigt, gefiltert nach der Kategorie DevOps.
Microsoft Security DevOps(MSDO)-Erweiterung – IaC-Scan in der Pipeline
Microsoft Security DevOps (MSDO) ist eine Erweiterung, die Sicherheitsanalysetools direkt in der CI/CD-Pipeline ausführt. Es ist als GitHub Aktion und als Azure DevOps Aufgabe verfügbar, sodass sie mit beiden wichtigen Quellcodeverwaltungsplattformen kompatibel ist.
Für GitHub Workflows ist der Aktionsname microsoft/security-devops-action. Sie verwenden sie als Schritt in der Workflow-YAML-Datei. Für Azure Pipelines ist der Aufgabenname MicrosoftSecurityDevOps@1, und Sie verwenden ihn als Schritt in der YaML-Pipelinedatei.
MSDO führt standardmäßig mehrere Toolkategorien aus: Secrets-Scanning, Code-Analyse, Container-Scanning und IaC-Scanning. Bei Infrastrukturrepositorys, bei denen Sie sich nur um die Vorlagenkonformität kümmern, legen Sie die categories: 'IaC' Eingabe so fest, dass die Überprüfung nur auf IaC-Vorlagen festgelegt wird. Die bereichsbezogene Konfiguration sorgt für eine schnelle Pipelineausführung, indem nicht relevante Analyzer übersprungen werden.
GitHub Actions beispiel:
- name: Run Microsoft Security DevOps
uses: microsoft/security-devops-action@v1
with:
categories: 'IaC'
Hinweis
Binden Sie die Aktion an einen bestimmten Tag der Version (wie z. B. v1) anstelle von @latest. Das Binden verhindert, dass unerwartete fehlerhafte Änderungen aus neuen Versionen Ihre Pipeline unbemerkt beeinträchtigen. Überprüfen Sie die MSDO-Release-Seite auf die aktuelle stabile Version.
Azure DevOps Pipelinebeispiel:
- task: MicrosoftSecurityDevOps@1
inputs:
categories: 'IaC'
Ergebnisse von MSDO erscheinen als GitHub Code-Scanning-Benachrichtigungen in GitHub-Repositories oder als Pipeline-Anmerkungen in Azure DevOps-Builds. Alle Ergebnisse werden innerhalb von 24 Stunden in Defender for Cloud auf der Seite Empfehlungen eingebunden, sodass Sicherheitsteams einen zentralen Überblick über die IaC-Compliance in allen Repositories erhalten.
Vorlagenanalyse und Checkov – die Scanmodule
MSDO koordiniert intern mehrere Scantools. Zwei sind für die IaC-Vorlagenanalyse am relevantesten: Template Analyzer und Checkov.
Template Analyzer analysiert ARM-Vorlagen und Bicep Dateien für Azure-spezifische Sicherheitsfehler. Es überprüft auf häufige Probleme wie Speicherkonten, bei denen sichere Übertragung nicht erforderlich ist, die TLS-Mindestversion nicht auf 1.2 festgelegt ist, Diagnoseprotokolle nicht aktiviert sind, öffentlicher Zugriff auf Speicherkonten besteht und Netzwerkregeln, die den gesamten Datenverkehr zulassen.
PSRule für Azure ist auch als diskretes Tool in MSDO verfügbar. Sie können sie unabhängig ausführen, indem Sie sie im tools Parameter neben oder anstelle von Template Analyzer angeben. Sie wendet Azure Well-Architected Framework- und CAF-Regeln auf Bicep- und ARM-Vorlagen an und stellt einen ergänzenden Regelsatz für die sicherheitsrelevanten Prüfungen von Template Analyzer bereit.
Checkov ist ein Open Source-Analysetool, das Bicep, ARM-Vorlage, Terraform, Kubernetes-Manifeste, Dockerfiles und Helm-Diagramme unterstützt. Es ist nützlich in Umgebungen mit gemischten IaC-Umgebungen, in denen Teams mehrere Vorlagensprachen für verschiedene Cloudanbieter verwenden.
Hinweis
Die Vorlagenanalyse konzentriert sich auf Azure Resource Manager und Bicep-Dateien mit Azure-spezifischen Prüfungen. Checkov bietet eine umfassendere Abdeckung für IaC-Sprachen und Cloudanbieter. MSDO führt beides automatisch aus, wenn die Kategorie auf "IaC" festgelegt ist.
PR-Annotationen und Blockierung nicht-konformer Merges
Nachdem MSDO ausgeführt wurde, werden die Ergebnisse je nach Plattform an unterschiedlichen Standorten angezeigt:
- GitHub: Ergebnisse werden als Code-Überprüfungsbenachrichtigungen unter der Registerkarte Sicherheit des Repositorys und als Prüfergebnis in der Pull-Anfrage angezeigt. Wählen Sie die Prüfung aus, um jeden Befund mit seinem Schweregrad und einer Anleitung zur Korrektur anzuzeigen.
- Azure DevOps: Ergebnisse werden als pipelineanmerkungen in den Buildergebnissen angezeigt, wobei jede Verletzung mit einem Link zum Problembehebungsdetail aufgelistet wird.
Alle Ergebnisse werden unabhängig von der Plattform auch innerhalb von 24 Stunden in Defender for Cloud Empfehlungen aufgenommen. Sicherheitsingenieure sehen genau, welche Eigenschaft auf welcher Ressource nicht konform ist, mit einem Link zur Behebungsanleitung.
Sie konfigurieren die schweregradbasierte Blockierung in den GitHub Branch-Schutzregeln oder Azure DevOps Branch Policy. Wenn Sie voraussetzen, dass die MSDO-Prüfung vor dem Zusammenführen bestanden wird, erzwingen Sie das Shift-Left-Modell: Der PR-Autor muss die Befunde beheben, bevor der Code den Main Branch erreicht. Sie können bestimmte Schweregradstufen zulassen, indem Sie andere blockieren. Sie können zum Beispiel hohe und kritische Ergebnisse blockieren, während Ergebnisse mit niedrigem Schweregrad ohne Blockierung weitergegeben und die Überprüfung auf einen separaten Prozess verschoben werden.
Schweregradbasiertes Blockieren verhindert, dass nicht kompatible Infrastruktur die Produktion erreicht. Die Vorlage wird während der Codeüberprüfung korrigiert, wenn der Kontext neu ist und der Fix einfach ist.
Agentloses Scannen – Alternative für vorhandene Repositorys
Für Teams, die keine Pipelines ändern können – aufgrund veralteter Pipelinekonfigurationen, anbieterverwalteter Repositories oder organisatorischer Einschränkungen – bietet Defender for Cloud agentless IaC-Scanning.
Agentloses Scannen funktioniert anders als die Pipelineüberprüfung. Anstatt als Pipeline-Aufgabe ausgeführt zu werden, überprüft Defender for Cloud GitHub- und Azure DevOps-Repositorys direkt, ohne Pipeline-Erweiterungen oder Codeänderungen. Der Scan wird alle 24 Stunden automatisch ausgeführt, anstatt wie beim Pipeline-Scanning bei jedem Commit ausgelöst zu werden.
Sie steuern den Bereich, indem Sie auswählen, welche Organisationen, Projekte und Repositorys einbezogen werden sollen. Agentloses Scannen ist für große Unternehmen mit Hunderten von Repositorys nützlich, bei denen Sie eine zentralisierte Überprüfung ohne einzelne Pipelineupdates wünschen. Die Ergebnisse werden auf demselben Defender for Cloud-Empfehlungsbildschirm wie MSDO-Ergebnisse angezeigt, wodurch eine einheitliche Complianceansicht erstellt wird.
Agentloses Scannen und MSDO-Scan sind komplementär, nicht redundant. Verwenden Sie beides, wenn möglich: MSDO-Scanning liefert schnelles Feedback im PR-Workflow, während agentenloses Scanning zentralisierte Compliance-Sichtbarkeit über alle Repos ohne Abhängigkeiten von der Pipeline bietet.
So aktivieren Sie die agentlose IaC-Überprüfung auf einem vorhandenen Connector:
- Wechseln Sie zu Defender for Cloud>Environment-Einstellungen> wählen Sie den GitHub oder Azure DevOps Connector aus.
- Wählen Sie "Einstellungen" für den Connector aus.
- Schalten Sie unter DevOps-Bedrohungslandschaftdie IaC-Überprüfung auf "Ein" um.
- Wählen Sie aus, welche Organisationen, Projekte oder Repositorys einbezogen werden sollen, und speichern Sie dann die Konfiguration.
Defender for Cloud beginnt innerhalb von 24 Stunden mit dem Scannen der ausgewählten Repositorys. Ergebnisse werden auf dem Bildschirm "Empfehlungen " unter der Kategorie "DevOps " zusammen mit allen MSDO-Pipelineergebnissen angezeigt.