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.
Security-Empfehlungen in Microsoft Defender for Cloud helfen Ihnen, Ihren Sicherheitsstatus zu verbessern und zu erhärten. Empfehlungen basieren auf Bewertungen anhand von Sicherheitsstandards, die für Azure-Abonnements, Amazon Web Services (AWS)-Konten und Google Cloud Platform (GCP)-Projekte definiert sind, für die Defender for Cloud aktiviert ist.
In diesem Artikel wird beschrieben, wie Sie Folgendes ausführen:
- Erstellen Sie benutzerdefinierte Empfehlungen für alle Clouds (Azure, AWS und GCP) mit einer Kusto Query Language (KQL)-Abfrage.
- Weisen Sie benutzerdefinierte Empfehlungen einem benutzerdefinierten Sicherheitsstandard zu.
Bevor du anfängst
- Sie benötigen Berechtigungen als Besitzer für das Abonnement, um einen neuen Sicherheitsstandard zu erstellen.
- Sie benötigen Berechtigungen als Sicherheitsadministrator, um benutzerdefinierte Empfehlungen zu erstellen.
- Um benutzerdefinierte Empfehlungen basierend auf der Kusto Query Language (KQL) zu erstellen, müssen Sie den Defender Cloud Security Posture Management (CSPM)-Plan aktiviert haben. Alle Kunden können benutzerdefinierte Empfehlungen basierend auf Azure Policy erstellen.
- Überprüfen Sie den Support in Azure-Clouds auf benutzerdefinierte Empfehlungen.
Wir empfehlen, diese Episode von Defender for Cloud im Feld zu sehen, um mehr über benutzerdefinierte Empfehlungen und das Schreiben von KQL-Abfragen zu erfahren.
Erstellen einer benutzerdefinierten Empfehlung
Erstellen Sie benutzerdefinierte Empfehlungen, einschließlich der Schritte zur Wartung, zum Schweregrad und zu den Standards, denen die Empfehlung zugewiesen werden soll. Sie fügen Empfehlungslogik mit KQL hinzu. Sie können einen einfachen Abfrage-Editor mit integrierten Abfragevorlagen verwenden, die Sie nach Bedarf optimieren können, oder Sie können Ihre KQL-Abfrage von Grund auf neu schreiben.
So erstellen Sie eine benutzerdefinierte Empfehlung:
Melden Sie sich im Azure-Portal an.
Wechseln Sie zu Microsoft Defender for Cloud>Umgebungseinstellungen> zum entsprechenden Abonnement.
Wählen Sie Sicherheitsrichtlinien>+ Benutzerdefinierte Empfehlung erstellen.
Geben Sie die Details ein: Name, Bereich, Schweregrad und Sicherheitsproblem. Optional: Beschreibung, Korrektur.
Wählen Sie Weiteraus.
Geben Sie eine KQL-Abfrage ein, oder wählen Sie "Abfrage-Editor öffnen" aus.
Wählen Sie Weiteraus.
Wählen Sie die relevanten Standards für die Empfehlung aus.
Wählen Sie Weiteraus.
Wählen Sie die zuzuweisenden benutzerdefinierten Standards aus.
Klicken Sie auf Überprüfen und erstellen.
Überprüfen Sie die Empfehlungsdetails.
Wählen Sie "Erstellen" aus.
Verwenden des Abfrage-Editors
Wir empfehlen die Verwendung des Abfrageeditors zum Erstellen einer Empfehlungsabfrage. Sie können auch die bereitgestellten Abfragevorlagen und Beispiele verwenden, um Beispielabfragen anzuzeigen und zu erfahren, wie Sie Eigene erstellen.
- Mithilfe des Editors können Sie Ihre Abfrage erstellen und testen, bevor Sie diese verwenden.
- Wählen Sie So geht‘s aus, um Hilfe zur Strukturierung der Abfrage und zusätzliche Anweisungen und Links zu erhalten.
- Der Editor enthält integrierte Empfehlungsabfragebeispiele, mit denen Sie Ihre eigene Abfrage erstellen können. Die Daten werden mit derselben Struktur wie in der API angezeigt.
Wählen Sie "Neue Abfrage" aus.
Verwenden Sie die Beispielabfragevorlage mit ihren Anweisungen, oder wählen Sie eine integrierte Beispielempfehlungsabfrage aus dem unteren Teil der Seite aus, um zu beginnen.
Wählen Sie Abfrage ausführen aus, um die von Ihnen erstellte Abfrage zu testen.
Wenn die Abfrage fertig ist, schneiden Sie sie aus, und fügen Sie sie aus dem Editor in den Abfragebereich "Empfehlung" ein.
Fahren Sie mit Schritt 7 im Abschnitt "Erstellen einer benutzerdefinierten Empfehlung" fort.
Abfragevorlagen und Beispiele
Der Abfrage-Editor enthält integrierte Beispiele, und die Vorlagen in diesem Abschnitt zeigen, wie allgemeine Sicherheitsprüfungen strukturiert werden. Jede Vorlage liefert Ressourcen im Geltungsbereich und kennzeichnet nicht konforme Ressourcen als UNHEALTHY. Bearbeiten Sie in diesem Vorlagenmuster nur den condition Ausdruck, und behalten Sie die HealthStatus Zeile unverändert.
Note
Die Vorlagen in diesem Abschnitt verwenden Azure Ressourcentypen. Ändern Sie für AWS- und GCP-Ressourcen Environment == 'Azure' in Environment == 'AWS' oder Environment == 'GCP', und aktualisieren Sie Identifiers.Type entsprechend dem Ressourcentyp in Ihrer Umgebung.
Anforderungen an das KQL-Ausgabeschema
Bevor Sie Ihre Abfrage schreiben, verstehen Sie das erforderliche Ausgabeschema. So interpretiert Microsoft Defender for Cloud Ihre Ergebnisse und ordnet Ergebnisse Ressourcen zu.
Erforderliche Ausgabespalten:
| Column | Type | Purpose |
|---|---|---|
Id |
Zeichenfolge (erforderlich) | Ressourcenbezeichner, der von Defender for Cloud verwendet wird, um auf die Ressource zu verweisen. |
Name |
Zeichenfolge (erforderlich) | In Ergebnissen angezeigter menschenlesbarer Ressourcenname. |
Environment |
Zeichenfolge (erforderlich) | Cloudumgebung: Azure, AWS oder GCP. |
Identifiers |
Dynamisch (erforderlich) | Ressourcentyp und Kennungen, die aus dem Quelldatensatz übernommen werden. |
AdditionalData |
Dynamisch (erforderlich) | Ergänzende Ressourcenmetadaten, die aus dem Quelldatensatz übergeben werden. |
Record |
Dynamisch (erforderlich) | Vollständiger Ressourcendatensatz, der alle Eigenschaften enthält. |
HealthStatus |
Zeichenfolge (erforderlich) | Bewertungsergebnis: UNHEALTHY (nicht konform) oder HEALTHY (konform). |
Beenden Sie Ihre Abfrage immer mit: | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus
Bewertungszuordnung:
Jede Abfrage muss einen HealthStatus Wert für jede Ressource festlegen. Verwenden Sie die iff() Funktion, um Ihre Bedingung auszuwerten und den Status zuzuweisen:
| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Bearbeiten Sie in diesem Muster nur den condition Ausdruck. Behalten Sie die HealthStatus Zeile unverändert bei:
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Ressourcen, bei denen HealthStatusUNHEALTHY ist, werden in Defender for Cloud als nicht konforme Erkenntnisse angezeigt. Ressourcen, bei denen HealthStatusHEALTHY ist, sind konform und erscheinen nicht in den Ergebnissen.
Von Bedeutung
Legen Sie HealthStatus immer auf 'UNHEALTHY' oder 'HEALTHY' fest. Alle Ressourcen im Geltungsbereich zurückgeben. Defender for Cloud verwendet die Spalte HealthStatus, um die Compliance zu ermitteln. Das Auslassen von Ressourcen aus der Ergebnismenge wird als fehlende Daten interpretiert, nicht als in Ordnung.
Allgemeine Fehler und Korrekturmaßnahmen:
-
Fehlende erforderliche Spalten: Wenn eine der sieben erforderlichen Spalten fehlt, schlägt die Abfrage fehl. Enden Sie immer mit
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus. -
Ungültige
HealthStatusWerte: Nur'UNHEALTHY'und'HEALTHY'sind gültige Werte (Groß-/Kleinschreibung beachten). Andere Werte oder NULL verursachen Analysefehler. -
Falsche Eigenschaftspfade: Auf Eigenschaften wird über
Record.properties.*zugegriffen, nicht direkt. Verwenden Sie beispielsweiseRecord.properties.httpsOnly, nichtproperties.httpsOnly. -
Groß-/Kleinschreibung des Ressourcentyps: Verwenden Sie
=~(Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung) fürIdentifiers.Type-Vergleiche. Beispiel:Identifiers.Type =~ 'Microsoft.Storage/storageAccounts' -
Null-Eigenschaften für Abonnements: Testen Sie Ihre Abfrage für Abonnements mit unterschiedlichen Konfigurationen. Verwenden Sie
isnull()Prüfungen, wenn Eigenschaften fehlen können.
Verwenden von benutzerdefinierten Empfehlungen im großen Stil
Das Erstellen benutzerdefinierter Empfehlungen im Azure Portal eignet sich am besten für die meisten Benutzer. Die Schnittstelle bietet einen praktischen KQL-Editor und integrierte Validierungstools. Ein programmgesteuerter Ansatz kann auch hilfreich sein, wenn Sie Empfehlungen in vielen Umgebungen oder Abonnements bereitstellen müssen.
Automatisieren über die API
Wenn Sie KQL-Abfragen vorabvalidiert haben und das Erstellen benutzerdefinierter Empfehlungen automatisieren möchten, können Sie die Microsoft Defender for Cloud-API verwenden. Mit dieser Methode können Sie Empfehlungen schnell bereitstellen und gleichzeitig sicherstellen, dass sie in Ihren Cloudumgebungen konsistent und skalierbar sind.
- Vorteile: Sie können die Bereitstellung von benutzerdefinierten Empfehlungen automatisieren und skalieren.
- Anwendungsfälle: Diese Methode eignet sich ideal für Implementierungen im großen Stil, bei denen Sie Empfehlungen konsistent in mehreren Umgebungen anwenden müssen.
Weitere Informationen zur Verwendung der API zum Verwalten benutzerdefinierter Empfehlungen finden Sie in der Defender for Cloud Composite API-Referenz.
Einen benutzerdefinierten Standard erstellen
Benutzerdefinierte Empfehlungen können einem oder mehreren benutzerdefinierten Standards zugewiesen werden.
So erstellen Sie einen benutzerdefinierten Standard:
Melden Sie sich im Azure-Portal an.
Wechseln Sie zu Microsoft Defender for Cloud>Umgebungseinstellungen> zum entsprechenden Abonnement.
Wählen Sie Sicherheitsrichtlinien>+ Erstellen>Standard aus.
Wählen Sie die Empfehlungen aus, die Sie dem benutzerdefinierten Standard hinzufügen möchten.
(Optional) Überprüfen Sie für Azure Abonnements die Spalte "Quelle".
Wählen Sie "Erstellen" aus.
Erstellen und Verbessern von benutzerdefinierten Empfehlungen mit Azure Policy (Legacy)
Für Azure-Abonnements können Sie benutzerdefinierte Empfehlungen und Standards erstellen und diese mithilfe von Azure Policy verbessern. Dies ist ein Legacyfeature, und wir empfehlen die Verwendung des neuen Features für benutzerdefinierte Empfehlungen.
Erstellen einer benutzerdefinierten Empfehlung und eines Standards (Legacy)
Sie können benutzerdefinierte Empfehlungen und Standards in Defender for Cloud erstellen, indem Sie Richtliniendefinitionen und Initiativen in Azure Policy erstellen und in Defender for Cloud integrieren.
So erstellen Sie eine benutzerdefinierte Empfehlung oder einen Standard mit Azure Policy (Legacy):
- Erstellen Sie im Azure Policy-Portal oder programmgesteuert mindestens eine Richtliniendefinition.
- Erstellen Sie eine Richtlinieninitiative, die die benutzerdefinierten Richtliniendefinitionen enthält.
Initiative als benutzerdefinierten Standard (Altversion) einbinden
Richtlinienzuweisungen werden von Azure Policy verwendet, um Azure-Ressourcen einer Richtlinie oder Initiative zuzuweisen.
Um eine Initiative in einen benutzerdefinierten Sicherheitsstandard in Defender for Cloud zu integrieren, müssen Sie "ASC":"true" in den Anforderungstext einschließen, wie hier gezeigt. Mit dem Feld ASC wird das Onboarding der Initiative bei Microsoft Defender für Cloud durchgeführt.
So integrieren Sie eine benutzerdefinierte Initiative:
Beispiel für das Onboarding einer benutzerdefinierten Initiative
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01
Anforderungstext (JSON):
{
"properties": {
"displayName": "Cost Management",
"description": "Policies to enforce low cost storage SKUs",
"metadata": {
"category": "Cost Management",
"ASC":"true"
},
"parameters": {
"namePrefix": {
"type": "String",
"defaultValue": "myPrefix",
"metadata": {
"displayName": "Prefix to enforce on resource names"
}
}
},
"policyDefinitions": [
{
"policyDefinitionId": "/subscriptions/<Subscription ID>/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1",
"policyDefinitionReferenceId": "Limit_Skus",
"parameters": {
"listOfAllowedSKUs": {
"value": [
"Standard_GRS",
"Standard_LRS"
]
}
}
},
{
"policyDefinitionId": "/subscriptions/<Subscription ID>/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
"policyDefinitionReferenceId": "Resource_Naming",
"parameters": {
"prefix": {
"value": "[parameters('namePrefix')]"
},
"suffix": {
"value": "-LC"
}
}
}
]
}
}
Beispiel für das Entfernen einer Zuweisung
Dieses Beispiel zeigt Ihnen, wie Sie eine Zuweisung entfernen:
DELETE https://management.azure.com/{subscription}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01
Benutzerdefinierte Empfehlungen verbessern (veraltet)
Die integrierten Empfehlungen, die mit Microsoft Defender für Cloud bereitgestellt werden, enthalten Details wie Schweregrade und Korrekturanweisungen. Wenn Sie benutzerdefinierten Empfehlungen für Azure diesen Informationstyp hinzufügen möchten, verwenden Sie die REST-API.
Folgende zwei Arten von Informationen können Sie hinzufügen:
- RemediationDescription: Zeichenfolge
- Severity – Enum [Niedrig, Mittel, Hoch]
Die Metadaten sollten der Richtliniendefinition für eine Richtlinie hinzugefügt werden, die Teil der benutzerdefinierten Initiative ist. Es sollte sich in der Eigenschaft „securityCenter“ befinden, wie gezeigt:
{
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
}
}
}
Hier finden Sie ein weiteres Beispiel für eine benutzerdefinierte Richtlinie mit der Eigenschaft „metadata/securityCenter“:
{
"properties": {
"displayName": "Security - ERvNet - AuditRGLock",
"policyType": "Custom",
"mode": "All",
"description": "Audit required resource groups lock",
"metadata": {
"securityCenter": {
"RemediationDescription": "Resource Group locks can be set via Azure Portal -> Resource Group -> Locks",
"Severity": "High"
}
},
"parameters": {
"expressRouteLockLevel": {
"type": "String",
"metadata": {
"displayName": "Lock level",
"description": "Required lock level for ExpressRoute resource groups."
},
"allowedValues": [
"CanNotDelete",
"ReadOnly"
]
}
},
"policyRule": {
"if": {
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Authorization/locks",
"existenceCondition": {
"field": "Microsoft.Authorization/locks/level",
"equals": "[parameters('expressRouteLockLevel')]"
}
}
}
}
}
}
Ein weiteres SecurityCenter-Eigenschaftsbeispiel finden Sie unter REST-API-Beispiele für Bewertungsmetadaten.
Nächste Schritte
Unter den folgenden Links erfahren Sie mehr über Kusto-Abfragen: