Codeüberprüfung ohne Agent in Microsoft Defender for Cloud
Die Codeüberprüfung ohne Agent in Microsoft Defender for Cloud bietet schnelle und skalierbare Sicherheitsabdeckung für alle Repositorys in Azure DevOps. Sie findet schnell Sicherheitsrisiken in Code- und Infrastruktur-as-Code-Setups (IaC), ohne dass Agents oder Continuous Integration and Continuous Deployment (CI/CD)-Pipelineänderungen erforderlich sind. Dieser Ansatz vereinfacht die Einrichtung und Wartung mit einem einzigen Azure DevOps-Connector und bietet eine umfassende Abdeckung, kontinuierliche Einblicke sowie umsetzbare Sicherheitsergebnisse. Damit können sich Sicherheits- und Entwicklungsteams auf die reibungslose Behebung von Risiken konzentrieren, ohne Entwicklungsworkflows zu unterbrechen.
Voraussetzungen
Versionsstatus: Öffentliche Vorschau
Unterstützte Anwendungsfälle:
Clouds: Kommerzielle Azure-Clouds
Unterstützte Regionen: Australien, Osten; Kanada, Mitte; USA, Mitte; Asien, Osten; USA, Osten; Europa, Norden; Schweden, Mitte; Vereinigtes Königreich, Süden; Europa, Westen
Unterstützte Umgebungen: Azure DevOps-Connector
Rollen und Berechtigungen:
Zum Einrichten und Konfigurieren des Connectors
- Projektsammlungsadministrator: Erforderlich in Azure DevOps, um die Ersteinrichtung auszuführen.
- Abonnementmitwirkender: Erforderlich für das Azure-Abonnement, um den Connector zu erstellen und zu konfigurieren.
Zum Anzeigen der Sicherheitsergebnisse:
- Sicherheitsadministrator: Kann Sicherheitseinstellungen, Richtlinien und Warnungen verwalten, aber den Connector nicht ändern.
- Sicherheitsleser: Kann Empfehlungen, Warnungen und Richtlinien anzeigen, aber keine Änderungen vornehmen.
Hauptvorteile
- Proaktives Risikomanagement: Risiken frühzeitig im Entwicklungsprozess erkennen. Dies unterstützt sichere Codierungsmethoden und reduziert Sicherheitsrisiken, bevor sie die Produktion erreichen.
- Müheloses Onboarding: Schnelles Einrichten mit minimaler Konfiguration und ohne Pipelineänderungen.
- Unternehmensweite, zentralisierte Verwaltung: Scannen Sie Code automatisch über mehrere Repositorys mit einem einzigen Connector. Dies bietet umfassende Abdeckung für große Umgebungen.
- Schnelle Einblicke zur schnellen Behebung: Erhalten Sie direkt nach dem Onboarding umsetzbare Einblicke in Sicherheitsrisiken. Dies ermöglicht schnelle Korrekturen und reduziert die Gefährdungszeit.
- Entwicklerfreundlich und nahtlos: Arbeiten Sie unabhängig von CI/CD-Pipelines (Continuous Integration/Continuous Deployment), ohne dass Änderungen oder direkte Entwicklerbeteiligung erforderlich sind. Dies ermöglicht eine kontinuierliche Sicherheitsüberwachung ohne Unterbrechung der Entwicklerproduktivität oder Workflows.
Risikoerkennungsfunktionen
Agentlose Codeüberprüfung verbessert die Sicherheit, indem gezielte Sicherheitsempfehlungen sowohl für Code- als auch für IaC-Vorlagen (Infrastructure-as-Code) angeboten werden. Und dies zusätzlich zu den Sicherheitsempfehlungen von Foundational Cloud Security Posture Management (CSPM), die über den Connector bereitgestellt werden. Zu den wichtigsten Erkennungsfähigkeiten gehören:
- Code-Sicherheitsrisiken: Finden Sie häufige Programmierfehler, unsichere Programmiermethoden und bekannte Sicherheitsrisiken in mehreren Programmiersprachen.
- Fehlkonfigurationen von Infrastruktur-as-Code: Erkennen Sie Sicherheitsfehlkonfigurationen in IaC-Vorlagen, die zu unsicheren Bereitstellungen führen könnten.
Durch die Erstellung des Connectors wird die Sicherheit durch eine Reihe von Sicherheitsempfehlungen für Repositorys, Pipelines und Dienstverbindungen verbessert.
Tools für die Überprüfung
Agentlose Codeüberprüfung verwendet verschiedene Open-Source-Tools, um Sicherheitsrisiken und Fehlkonfigurationen in Code und Infrastructure-as-Code-Vorlagen (IaC) zu finden:
Tool | Unterstützte IaC/Sprachen | Lizenz |
---|---|---|
Bandit | Python | Apache 2.0 |
Checkov | Terraform IaC-Vorlagen, Terraform-Plandateien, AWS CloudFormation-Vorlagen, Kubernetes-Manifestdateien, Helm-Diagrammdateien, Dockerfiles, Azure Azure Resource Manager (ARM) IaC-Vorlagen, Azure Bicep IaC-Vorlagen, AWS SAM-Vorlagen (Serverless Application Model), Kustomize-Dateien, Serverless Framework-Vorlagen, OpenAPI-Spezifikationsdateien | Apache 2.0 |
ESLint | JavaScript, TypeScript, JSX, TSX | MIT |
Template Analyzer | ARM IaC-Vorlagen, Bicep IaC-Vorlagen | MIT |
Terrascan | Terraform IaC-Vorlagen (HCL2), Kubernetes-Manifestdateien (YAML/JSON), Dockerfiles, AWS CloudFormation-Vorlagen (YAML/JSON), Azure ARM IaC-Vorlagen, Helm-Diagrammdateien (v3), Kustomize-Dateien | Apache 2.0 |
Diese Tools unterstützen eine Vielzahl von Sprachen und IaC-Frameworks, um eine gründliche Sicherheitsanalyse in Ihrer Codebasis sicherzustellen.
Unterstützte Plattformen und Dateitypen
Versionskontrollsysteme
- Azure DevOps: Vollständige Unterstützung für Repositorys, die über den Azure DevOps-Connector verbunden sind.
Programmiersprachen
- Python
- JavaScript/TypeScript
Infrastructure-as-Code (IaC)-Plattformen und -Konfigurationen
IaC-Plattform | Unterstützte Dateitypen | Hinweise |
---|---|---|
Terraform | .tf , .tfvars |
Unterstützt Terraform IaC-Vorlagen in der HCL2-Sprache, einschließlich variabler Dateien in .tfvars . |
Terraform-Plan | JSON-Dateien | Enthält JSON-Dateien, die geplante Konfigurationen darstellen, die zur Analyse und Überprüfung verwendet werden. |
AWS CloudFormation | JSON-, YAML-Dateien | Unterstützt AWS CloudFormation-Vorlagen zum Definieren von AWS-Ressourcen. |
Kubernetes | YAML-, JSON-Dateien | Unterstützt Kubernetes-Manifestdateien zum Definieren von Konfigurationen in Clustern. |
Helm | Helm-Diagrammverzeichnisstruktur, YAML-Dateien | Folgt der Helm-Standarddiagrammstruktur; unterstützt Helm v3-Diagrammdateien. |
Docker | Dateien mit dem Namen Dockerfile | Unterstützt Dockerfiles für Containerkonfigurationen. |
Azure ARM-Vorlagen | JSON-Dateien | Unterstützt Azure Resource Manager (ARM) IaC-Vorlagen im JSON-Format. |
Azure Bicep | Bicep-Dateien | Unterstützt Bicep IaC-Vorlagen, eine domänenspezifische Sprache (DSL) für ARM. |
AWS SAM | YAML-Dateien | Unterstützt SAM-Vorlagen (AWS Serverless Application Model) für serverlose Ressourcen. |
Kustomize | YAML-Dateien | Unterstützt Konfigurationsdateien für die Kubernetes-Anpassung (Kustomize). |
Serverless Framework | YAML-Dateien | Unterstützt Vorlagen für das Serverless Framework beim Definieren von serverlosen Architekturen. |
OpenAPI | YAML-, JSON-Dateien | Unterstützt OpenAPI-Spezifikationsdateien zum Definieren von RESTful-APIs. |
Aktivieren der agentlosen Codeüberprüfung in Ihren Azure DevOps-Organisationen
Informationen zum Verbinden Ihrer Azure DevOps-Organisationen mit Defender for Cloud und zum Aktivieren der agentlosen Codeüberprüfung finden Sie in den Anweisungen in Verbinden Ihrer Azure DevOps-Organisationen. Die folgende Abbildung zeigt den schnellen, einfachen Einrichtungsprozess, der Sie für ein nahtloses Onboarding durch jeden Schritt führt.
Funktionsweise der agentlosen Codeüberprüfung
Agentlose Codeüberprüfung funktioniert unabhängig von CI/CD-Pipelines. Sie verwendet den Azure DevOps-Connector, um Code und Infrastruktur-as-Code-Konfigurationen (IaC) automatisch zu überprüfen. Sie müssen keine Pipelines ändern oder Erweiterungen hinzufügen. Diese Einrichtung ermöglicht eine umfassende und kontinuierliche Sicherheitsanalyse über mehrere Repositorys hinweg. Ergebnisse werden direkt in Microsoft Defender for Cloud verarbeitet und angezeigt.
Überprüfungsprozess
Nachdem Sie das Feature für agentlose Codeüberprüfung in einem Connector aktiviert haben, führt der Scanvorgang die folgenden Schritte aus:
- Repositoryermittlung: Das System identifiziert direkt nach der Erstellung des Connectors automatisch alle Repositorys, die über den Azure DevOps-Connector verknüpft sind, und dann alle 8 Stunden.
- Codeabruf: Ruft sicher den neuesten Code aus der Standardverzweigung (Hauptverzweigung) jedes Repositorys für die Analyse ab, zuerst nach dem Einrichten des Connectors und dann alle 3 bis 4 Tage.
- Analyse: Das System verwendet eine Reihe integrierter Überprüfungstools, die in Microsoft Defender for Cloud verwaltet und aktualisiert werden, um Sicherheitsrisiken und Fehlkonfigurationen in Code und IaC-Vorlagen zu finden.
- Ergebnisverarbeitung: Verarbeitet Überprüfungsergebnisse über das Back-End von Defender for Cloud, um umsetzbare Sicherheitsempfehlungen zu erstellen.
- Ergebnisbereitstellung: Das System zeigt Ergebnisse als Sicherheitsempfehlungen in Defender for Cloud an, sodass Sicherheitsteams Probleme überprüfen und beheben können.
Überprüfungshäufigkeit und -dauer
- Überprüfungshäufigkeit:
- Der Sicherheitsstatus von Repositorys, Pipelines und Dienstverbindungen wird bewertet, wenn Sie den Connector erstellen und dann alle 8 Stunden.
- Das System überprüft Code und Infrastruktur-as-Code-Vorlagen (IaC) auf Sicherheitsrisiken, nachdem Sie den Connector erstellt haben, und dann alle 3 bis 4 Tage.
- Überprüfungsdauer: Überprüfungen enden in der Regel nach 15 bis 60 Minuten, je nach Größe und Komplexität des Repositorys.
Anzeigen und Verwalten von Überprüfungsergebnissen
Nach Abschluss der Scans können Sie in Microsoft Defender for Cloud auf Sicherheitsergebnisse zugreifen.
Zugriffsergebnisse
Navigieren Sie zur Registerkarte Sicherheitsempfehlungen in Microsoft Defender for Cloud.
Überprüfen Sie die Liste der Empfehlungen, die unter anderem folgende Ergebnisse enthalten:
Für Azure DevOps-Repositorys müssen Ergebnisse des Codescannens aufgelöst werden: Zeigt Sicherheitsrisiken an, die in Coderepositorys gefunden wurden.
Azure DevOps-Repositorys sollten über „Infrastruktur als Code“-Scans verfügen, deren Ergebnisse behandelt wurden: Verweist auf Sicherheitsfehler, die in IaC-Vorlagendateien in Repositorys erkannt wurden.
Weitere Sicherheitsempfehlungen, die vom Azure DevOps-Connector generiert werden, können folgendes umfassen:
- In Azure DevOps-Repositorys sollte GitHub Advanced Security für Azure DevOps (GHAzDO) aktiviert sein.
- In Azure Pipelines sollten keine Geheimnisse für Builds von Forks verfügbar sein
- Azure DevOps-Dienstverbindungen sollten nicht allen Pipelines Zugriff gewähren.
- Azure DevOps-Variablengruppen mit geheimen Variablen sollten nicht allen Pipelines Zugriff gewähren.
- Azure DevOps: Klassische Azure-Dienstverbindungen sollten nicht für den Zugriff auf ein Abonnement verwendet werden.
- (Vorschau) Azure DevOps-Repositorys sollten mindestens zwei Prüfergenehmigungen für Code-Pushs erfordern
- (Vorschau) Azure DevOps-Repositorys sollten nicht zulassen, dass Anforderer ihre eigenen Pull-Anforderungen genehmigen
- (Vorschau) Bei Azure DevOps-Projekten sollte die Erstellung klassischer Pipelines deaktiviert sein
- Sichere Azure DevOps-Dateien sollten nicht allen Pipelines Zugriff gewähren.
Wählen Sie eine Empfehlung für detaillierte Informationen aus, einschließlich betroffener Dateien, Schweregraden und Anleitungen zur Behebung.
Unterschied zwischen agentloser Codeüberprüfung und In-Pipeline-Überprüfung
Agentlose Codeüberprüfung und In-Pipeline-Überprüfung mithilfe der Microsoft Security DevOps-Erweiterung bieten beide Sicherheitsüberprüfungen in Azure DevOps. Sie erfüllen unterschiedliche Anforderungen, arbeiten aber gut zusammen. In der folgenden Tabelle werden die wichtigsten Unterschiede hervorgehoben. So können Sie die Option auswählen, die Ihren Sicherheits- und Entwicklungsanforderungen entspricht.
Aspekt | Agentlose Codeüberprüfung | In-Pipeline-Überprüfung |
---|---|---|
Passender Anwendungsfall | Bietet umfassende Abdeckung mit minimalen Unterbrechungen für Entwickler | Bietet detaillierte Überprüfungen, die in die Pipeline integriert werden können, mit anpassbaren Steuerelementen |
Überprüfungsbereich und Abdeckung | Konzentriert sich auf Infrastructure-as-Code- (IaC) und Code-Sicherheitsrisikoüberprüfungen, die alle 3 bis 4 Tage geplant sind | Bietet umfassende Abdeckung, einschließlich Binärdateien und Containerimages, die bei jeder Pipelineausführung ausgelöst werden |
Setup und Konfiguration | Erfordert nach dem Erstellen des Connectors keine weitere Einrichtung | Erfordert manuelle Installation und Konfiguration in jeder CI/CD-Pipeline |
Pipelineintegration | Wird unabhängig von (CI/CD)-Pipelines ausgeführt, ohne Workflows zu ändern | Lässt sich in die CI/CD-Pipeline integrieren und erfordert eine Konfiguration in jeder Pipeline |
Scanneranpassung | Scanner können nicht angepasst oder selektiv ausgeführt werden | Ermöglicht Aanpassungen mit bestimmten Scannern, Kategorien, Sprachen, Vertraulichkeitsstufen und Nicht-Microsoft-Tools |
Ergebnisse und Feedback | Bietet Zugriff auf Erkenntnisse in Defender for Cloud | Bietet nahezu Echtzeitfeedback innerhalb der CI/CD-Pipeline mit Ergebnissen, die auch in Defender for Cloud sichtbar sind. |
Break-and-Fail-Kriterien | Builds können nicht abgebrochen werden | Kann so konfiguriert werden, dass Builds basierend auf dem Schweregrad der Sicherheitsergebnisse abgebrochen werden. |
Skalierbarkeit und Auswirkung auf die Leistung
Agentlose Codeüberprüfung vermeidet das Erstellen von Ressourcen im Abonnement und erfordert keine Überprüfung während des Pipelineprozesses. Sie verwendet die Azure DevOps-REST-API, um Metadaten und Code abzurufen. Dies bedeutet, dass API-Aufrufe auf Azure DevOps-Ratengrenzwerte angerechnet werden, aber keine direkten Kosten für die Datenübertragung entstehen. Der Dienst verwaltet Überprüfungen um sicherzustellen, dass sie innerhalb der Azure DevOps-Ratengrenzwerte bleiben, ohne die Entwicklungsumgebung zu unterbrechen. Diese Methode bietet eine effiziente, leistungsstarke Überprüfung über Repositorys hinweg, die sich nicht auf DevOps-Workflows auswirkt. Weitere Informationen finden Sie unter Übersicht über Ratenbegrenzungen und Nutzungseinschränkungen für Azure DevOps.
Datensicherheit, Compliance und Zugriffssteuerung für agentlose Codeüberprüfung
Der agentenlose Codeüberprüfungsdienst von Microsoft Defender for Cloud gewährleistet eine sichere und konforme Handhabung Ihres Codes durch die Umsetzung strenger Maßnahmen zur Datensicherheit und zum Datenschutz:
- Datenverschlüsselung und Zugriffssteuerung: Das System verschlüsselt alle Daten während der Übertragung mithilfe von Protokollen, die in der Branche Standard sind. Nur autorisierte Defender for Cloud-Dienste können auf Ihren Code zugreifen.
- Datenresidenz und -aufbewahrung: Überprüfungen erfolgen in der geografischen Region Ihres Azure DevOps-Connectors (USA oder EU), um die Datenschutzgesetze einzuhalten. Das System verarbeitet Code nur während der Überprüfung und löscht ihn anschließend sicher, ohne ihn langfristig zu speichern.
- Zugriff auf Repositorys: Der Dienst generiert ein sicheres Zugriffstoken für Azure DevOps, um Überprüfungen durchzuführen. Dieses Token ermöglicht das Abrufen von erforderlichen Metadaten und Code, ohne Ressourcen in Ihrem Abonnement zu erstellen. Nur Defender for Cloud-Komponenten haben Zugriff, sodass die Datenintegrität gewährleistet ist.
- Compliance-Unterstützung: Der Service entspricht den behördlichen und sicherheitstechnischen Standards für den Umgang mit Daten und den Datenschutz und gewährleistet eine sichere Verarbeitung und das Überprüfen von Kundencodes gemäß den regionalen Datenschutzanforderungen.
Diese Maßnahmen sorgen für eine sichere, konforme und effiziente Codeüberprüfung, die die Privatsphäre und Integrität Ihrer Daten gewährleistet.
Einschränkungen (öffentliche Vorschau)
Während der öffentlichen Vorschau gelten die folgenden Einschränkungen.
Keine binäre Überprüfung: Das System überprüft nur Code- und Infrastruktur-as-Code-Dateien (IaC).
Überprüfungshäufigkeit: Repositorys werden alle 3 bis 4 Tage überprüft.
Repositorygröße: Die Überprüfung ist auf Repositorys unter 1 GB beschränkt.
Branchabdeckung: Überprüfungen decken nur die Standardverzweigung (Hauptverzweigung) ab.
Toolanpassung: Überprüfungstools können nicht angepasst werden.