Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Säkerhetsrekommendationer i Microsoft Defender för molnet hjälpa dig att förbättra och förstärka din säkerhetsstatus. Rekommendationerna baseras på utvärderingar mot säkerhetsstandarder som definierats för Azure prenumerationer, Amazon Web Services-konton (AWS) och Google Cloud Platform-projekt (GCP) som har Defender för molnet aktiverat.
I den här artikeln beskrivs hur du:
- Skapa anpassade rekommendationer för alla moln (Azure, AWS och GCP) med en KQL-fråga (Kusto Query Language).
- Tilldela anpassade rekommendationer till en anpassad säkerhetsstandard.
Förutsättningar
Innan du skapar skräddarsydda rekommendationer eller standarder, se till att du uppfyller följande krav:
- Du behöver ägarbehörigheter för prenumerationen för att skapa en ny säkerhetsstandard.
- Du behöver behörigheter som säkerhetsadministratör för att skapa anpassade rekommendationer.
- Om du vill skapa anpassade rekommendationer baserat på Kusto Query Language (KQL) måste du ha planen Defender CSPM (Cloud Security Posture Management) aktiverad. Alla kunder kan skapa anpassade rekommendationer baserat på Azure Policy.
- Granska stödet i Azure-moln för anpassade rekommendationer.
Vi rekommenderar att du tittar på det här avsnittet av Defender för molnet i fältet för att lära dig mer om anpassade rekommendationer och hur du skriver KQL-frågor.
Skapa en anpassad rekommendation
Skapa anpassade rekommendationer, inklusive steg för reparation, allvarlighetsgrad och de standarder som rekommendationen ska tilldelas till. Du lägger till rekommendationslogik med KQL. Du kan använda en enkel frågeredigerare med inbyggda frågemallar som du kan justera efter behov, eller så kan du skriva din KQL-fråga från grunden.
Så här skapar du en anpassad rekommendation:
Logga in på Azure-portalen.
Gå till Microsoft Defender för molnet>Miljöinställningar> för den aktuella prenumerationen.
Välj Säkerhetsprinciper>+ Skapa anpassad rekommendation.
Ange information: Obligatoriskt: Namn, omfattning, allvarlighetsgrad och säkerhetsproblem. Valfritt: Beskrivning, Reparation.
Klicka på Nästa.
Ange en KQL-fråga eller välj Öppna frågeredigeraren.
Klicka på Nästa.
Välj relevanta standarder för rekommendationen.
Klicka på Nästa.
Välj de anpassade standarder som ska tilldelas.
Välj Granska och skapa.
Granska rekommendationens detaljer.
Välj Skapa.
Använda frågeredigeraren
Vi rekommenderar att du använder frågeredigeraren för att skapa en rekommendationsfråga. Du kan också använda de angivna frågemallarna och exemplen för att visa exempelfrågor och lära dig hur du skapar egna.
- Med redigeraren kan du skapa och testa din fråga innan du börjar använda den.
- Välj Så här får du hjälp med att strukturera frågan och ytterligare instruktioner och länkar.
- Redigeraren innehåller inbyggda frågeexempel för rekommendationer som du kan använda för att skapa en egen fråga. Data visas i samma struktur som i API:et.
Välj Ny fråga.
Använd exempelfrågemallen med dess instruktioner eller välj ett exempel på en inbyggd rekommendationsfråga från den nedre delen av sidan för att komma igång.
Välj Kör fråga för att testa frågan du skapade.
När frågan är klar klipper du ut och klistrar in den från redigeraren i frågefönstret Rekommendation .
Välj Nästa, välj de relevanta standarderna för rekommendationen, välj de anpassade standarder som ska tilldelas och välj sedan Granska och skapa.
Gå igenom rekommendationsdetaljerna och välj Skapa.
Frågemallar och exempel
Frågeredigeraren innehåller inbyggda exempel, och mallarna i det här avsnittet visar hur du strukturerar vanliga säkerhetskontroller. Varje mall returnerar resurser i omfånget och markerar icke-kompatibla resurser som UNHEALTHY. I det här mallmönstret redigerar du bara condition uttrycket och håller HealthStatus raden oförändrad.
Anmärkning
Mallarna i det här avsnittet använder Azure resurstyper. För AWS- och GCP-resurser ändrar du Environment == 'Azure' till Environment == 'AWS' eller Environment == 'GCP' och uppdaterar Identifiers.Type för att matcha resurstypen i din miljö.
Krav för KQL-utdataschema
Innan du skriver frågan bör du förstå det obligatoriska utdataschemat. Så här tolkar Microsoft Defender för molnet dina resultat och mappar resultat till resurser.
Obligatoriska utdatakolumner:
| Column | Type | Syfte |
|---|---|---|
Id |
Sträng (krävs) | Resursidentifierare som används av Defender för molnet för att referera till resursen. |
Name |
Sträng (krävs) | Mänskligt läsbart resursnamn som visas i resultaten. |
Environment |
Sträng (krävs) | Molnmiljö: Azure, AWS eller GCP. |
Identifiers |
Dynamisk (krävs) | Resurstypen och identifierare som vidarebefordras från källposten. |
AdditionalData |
Dynamisk (krävs) | Kompletterande resursmetadata som vidarebefordras från källposten. |
Record |
Dynamisk (krävs) | Fullständig resurspost som innehåller alla egenskaper. |
HealthStatus |
Sträng (krävs) | Utvärderingsresultat: UNHEALTHY (inkompatibel) eller HEALTHY (kompatibel). |
Avsluta alltid frågan med: | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus
Bedömningsmappning:
Varje fråga måste ange ett HealthStatus värde för varje resurs. Använd följande mönster som kärnlogik för hälsoutvärdering i din anpassade rekommendationsfråga, och ersätt platshållarvillkoret med ditt eget test:
| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
I det här mönstret redigerar du endast condition uttrycket. Behåll följande HealthStatus uttryck oförändrat i din sökning så att Defender för molnet kan klassificera matchande resurser som kompatibla eller icke-kompatibla:
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Resurser där HealthStatus är UNHEALTHY visas som icke-kompatibla resultat i Defender för molnet. Resurser där HealthStatus är HEALTHY kompatibla och visas inte i resultat.
Important
Ställ alltid in HealthStatus på antingen 'UNHEALTHY' eller 'HEALTHY'. Returnera alla resurser som omfattas. Defender för molnet använder kolumnen HealthStatus för att fastställa efterlevnad. Att utelämna resurser från resultatuppsättningen behandlas som inga data, inte som felfria.
Vanliga fel och lösningar
-
Obligatoriska kolumner saknas: Om någon av de sju obligatoriska kolumnerna saknas misslyckas frågan. Avsluta alltid med
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus. -
Felaktiga
HealthStatusvärden: Endast'UNHEALTHY'och'HEALTHY'är giltiga värden (skiftlägeskänsligt). Andra värden eller null orsakar parsningsfel. -
Felaktiga egenskapssökvägar: Egenskaper nås via
Record.properties.*, inte direkt. Använd till exempelRecord.properties.httpsOnly, inteproperties.httpsOnly. -
Resurstypers skiftlägeskänslighet: Använd
=~(skiftlägesokänslig matchning) förIdentifiers.Type-jämförelser. Till exempelIdentifiers.Type =~ 'Microsoft.Storage/storageAccounts'. -
Null-egenskaper mellan prenumerationer: Testa din fråga mellan prenumerationer med olika konfigurationer. Använd
isnull()-kontroller där egenskaper kan saknas.
Använda anpassade rekommendationer i stor skala
Att skapa anpassade rekommendationer i Azure portalen är bäst för de flesta användare. Gränssnittet ger en praktisk KQL-redigerare och inbyggda valideringsverktyg. En programmatisk metod kan också vara användbar när du behöver distribuera rekommendationer i många miljöer eller prenumerationer.
Automatisera via API:et
Om du fördevaliderade KQL-frågor och vill automatisera skapandet av anpassade rekommendationer kan du använda Microsoft Defender för molnet-API:et. Med den här metoden kan du distribuera rekommendationer snabbt och se till att de är konsekventa och skalbara i dina molnmiljöer.
- Fördelar: Du kan automatisera och skala distributionen av anpassade rekommendationer.
- När du ska använda: Den här metoden är idealisk för storskaliga implementeringar där du måste tillämpa rekommendationer konsekvent i flera miljöer.
Mer information om att använda API:et för att hantera anpassade rekommendationer finns i Defender för molnet Composite API-referensen.
Skapa en anpassad standard
Anpassade rekommendationer kan tilldelas till en eller flera anpassade standarder.
Så här skapar du en anpassad standard:
Logga in på Azure-portalen.
Gå till Microsoft Defender för molnet>Miljöinställningar> för den aktuella prenumerationen.
Välj Säkerhetsprinciper>+ Skapa>standard.
Välj de rekommendationer som du vill lägga till i den anpassade standarden.
(Valfritt) För Azure prenumerationer läser du kolumnen Källa.
Välj Skapa.
Skapa och förbättra anpassade rekommendationer med Azure Policy (äldre)
För Azure-prenumerationer kan du skapa anpassade rekommendationer och standarder och förbättra dem med hjälp av Azure Policy. Det här är en äldre funktion och vi rekommenderar att du använder den nya funktionen för anpassade rekommendationer.
Skapa en anpassad rekommendation och standard (äldre)
Du kan skapa anpassade rekommendationer och standarder i Defender för molnet genom att skapa principdefinitioner och initiativ i Azure Policy och registrera dem i Defender för molnet.
Så här skapar du en anpassad rekommendation eller standard med Azure Policy (äldre):
- Skapa en eller flera policydefinitioner i Azure Policy-portalen, eller skapa policydefinitioner programmatiskt.
- Skapa ett principinitiativ som innehåller anpassade principdefinitioner.
Lägg till initiativet som en anpassad standard (äldre)
Principtilldelningar används av Azure Policy för att tilldela Azure-resurser till en princip eller ett initiativ.
Om du vill publicera ett initiativ till en anpassad säkerhetsstandard i Defender för molnet måste du inkludera "ASC":"true" i begärandetexten som visas här. Fältet ASC ansluter initiativet till Microsoft Defender för molnet.
Så här registrerar du ett anpassat initiativ:
Exempel på att lägga till ett anpassat initiativ
Använd följande REST-förfrågan för att skapa eller uppdatera Azure Policy-initiativet som stöder din anpassade Defender för molnet-standard:
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01
Begärandetext (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"
}
}
}
]
}
}
Exempel för att ta bort en tilldelning
För att ta bort en äldre anpassad standard från en prenumeration, använd följande REST-begäran för att ta bort policytilldelningen:
DELETE https://management.azure.com/{subscription}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01
Förbättra anpassade rekommendationer (tidigare version)
De inbyggda rekommendationerna som medföljer Microsoft Defender för molnet innehåller information som allvarlighetsnivåer och reparationsinstruktioner. Om du vill lägga till den här typen av information i anpassade rekommendationer för Azure använder du REST-API:et.
De två typerna av information som du kan lägga till är:
- RemediationDescription – sträng
- Allvarlighetsgrad – enum [Låg, Medel, Hög]
Metadata ska läggas till i principdefinitionen för en princip som ingår i det anpassade initiativet. Metadatan ska finnas i egenskapen 'securityCenter', som visas:
{
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
}
}
}
Följande exempel visar en komplett anpassad policydefinition som inkluderar securityCenter metadata-egenskapen med detaljer om åtgärd och allvarlighetsgrad:
{
"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')]"
}
}
}
}
}
}
Ett annat securityCenter-egenskapsexempel finns i REST API-exempel för utvärderingsmetadata.
Nästa steg
Du kan använda följande länkar för att lära dig mer om Kusto-frågor: