Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zalecenia dotyczące zabezpieczeń w Microsoft Defender dla Chmury pomagają poprawić poziom zabezpieczeń i zwiększyć poziom zabezpieczeń. Zalecenia opierają się na ocenach względem standardów zabezpieczeń zdefiniowanych dla subskrypcji Azure, kont Amazon Web Services (AWS) oraz projektów Google Cloud Platform (GCP), w których włączono usługę Defender dla Chmury.
W tym artykule opisano, jak:
- Tworzenie niestandardowych zaleceń dla wszystkich chmur (Azure, AWS i GCP) przy użyciu zapytania języka Kusto Query Language (KQL).
- Przypisywanie niestandardowych zaleceń do niestandardowego standardu zabezpieczeń.
Wymagania wstępne
Zanim stworzysz niestandardowe rekomendacje lub standardy, upewnij się, że spełniasz następujące wymagania:
- Aby utworzyć nowy standard zabezpieczeń, musisz mieć uprawnienia właściciela subskrypcji.
- Aby utworzyć zalecenia niestandardowe, musisz mieć uprawnienia administratora zabezpieczeń.
- Aby utworzyć niestandardowe zalecenia oparte na języku Kusto Query Language (KQL), musisz mieć włączony plan Defender Cloud Security Posture Management (CSPM). Wszyscy klienci mogą tworzyć niestandardowe rekomendacje na podstawie Azure Policy.
- Zapoznaj się z obsługą w chmurach Azure dotyczącą niestandardowych zaleceń.
Zalecamy obejrzenie tego odcinka Defender dla Chmury in the field, aby dowiedzieć się więcej o zaleceniach niestandardowych i o tym, jak pisać zapytania KQL.
Tworzenie rekomendacji niestandardowej
Utwórz niestandardowe zalecenia, w tym kroki naprawcze, poziom istotności oraz standardy, do których należy przypisać zalecenia. Dodasz logikę rekomendacji za pomocą języka KQL. Możesz użyć prostego edytora zapytań z wbudowanymi szablonami zapytań, które można dostosować zgodnie z potrzebami, lub napisać zapytanie KQL od podstaw.
Aby utworzyć zalecenie niestandardowe:
Zaloguj się do portalu Azure.
Przejdź do Microsoft Defender dla Chmury>Ustawienia środowiska> odpowiedniej subskrypcji.
Wybierz Zasady zabezpieczeń>+ Utwórz rekomendację niestandardową.
Wprowadź szczegóły: Wymagane: Nazwa, Zakres, Poziom ważności i problem dotyczący zabezpieczeń. Opcjonalnie: Opis, Korygowanie.
Wybierz Dalej.
Wprowadź zapytanie KQL lub wybierz pozycję Otwórz edytor zapytań.
Wybierz Dalej.
Wybierz odpowiednie standardy dla zalecenia.
Wybierz Dalej.
Wybierz niestandardowe standardy do przypisania.
Wybierz opcję Przejrzyj i utwórz.
Przejrzyj szczegóły rekomendacji.
Wybierz Utwórz.
Korzystanie z edytora zapytań
Zalecamy użycie edytora zapytań do utworzenia zapytania rekomendacyjnego. Możesz również użyć podanych szablonów zapytań i przykładów , aby wyświetlić przykładowe zapytania i dowiedzieć się, jak tworzyć własne.
- Użycie edytora ułatwia kompilowanie i testowanie zapytania przed rozpoczęciem korzystania z niego.
- Wybierz How to, aby uzyskać pomoc dotyczącą tworzenia struktury zapytania oraz dodatkowe instrukcje i linki.
- Edytor zawiera wbudowane przykłady zapytań rekomendacji, których można użyć, aby ułatwić tworzenie własnego zapytania. Dane są wyświetlane w tej samej strukturze co w interfejsie API.
Wybierz pozycję Nowe zapytanie.
Użyj przykładowego szablonu zapytania z instrukcjami lub wybierz przykładowe wbudowane zapytanie rekomendacji z dolnej części strony, aby rozpocząć pracę.
Wybierz pozycję Uruchom zapytanie , aby przetestować utworzone zapytanie.
Gdy zapytanie będzie gotowe, wytnij je z edytora i wklej do panelu Zapytanie rekomendacji.
Wybierz Następne, wybierz odpowiednie standardy dla rekomendacji, wybierz niestandardowe standardy do przypisania, a następnie wybierz Przeglądaj i tworzyć.
Zapoznaj się z szczegółami rekomendacji i wybierz Create.
Szablony zapytań i przykłady
Edytor zapytań zawiera wbudowane przykłady, a szablony w tej sekcji pokazują, jak organizować typowe kontrole zabezpieczeń. Każdy szablon zwraca zasoby objęte zakresem i oznacza zasoby niezgodne jako UNHEALTHY. W tym szablonie edytuj tylko wyrażenie condition i pozostaw wiersz HealthStatus bez zmian.
Note
Szablony w tej sekcji używają typów zasobów platformy Azure. W przypadku zasobów platform AWS i GCP zmień Environment == 'Azure' na Environment == 'AWS' lub Environment == 'GCP' i zaktualizuj Identifiers.Type, aby był zgodny z typem zasobu w danym środowisku.
Wymagania dotyczące schematu wyjściowego języka KQL
Przed napisaniem zapytania zapoznaj się z wymaganym schematem danych wyjściowych. W ten sposób Microsoft Defender dla Chmury interpretuje wyniki i mapuje ustalenia do zasobów.
Wymagane kolumny wyjściowe:
| Column | Typ | Purpose |
|---|---|---|
Id |
Ciąg (wymagany) | Identyfikator zasobu używany przez Defender dla Chmury do odwołowania się do zasobu. |
Name |
Ciąg (wymagany) | Nazwa zasobu czytelna dla człowieka wyświetlana w wynikach. |
Environment |
Ciąg (wymagany) | Środowisko chmury: Azure, AWS lub GCP. |
Identifiers |
Dynamiczny (wymagany) | Typ zasobu i identyfikatory przekazywane z rekordu źródłowego. |
AdditionalData |
Dynamiczny (wymagany) | Dodatkowe metadane zasobów przekazywane z rekordu źródłowego. |
Record |
Dynamiczny (wymagany) | Pełny rekord zasobu zawierający wszystkie właściwości. |
HealthStatus |
Ciąg (wymagany) | Wynik oceny: UNHEALTHY (niezgodny) lub HEALTHY (zgodny). |
Zawsze kończ zapytanie przy użyciu: | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus
Mapowanie oceny:
Każde zapytanie musi ustawić HealthStatus wartość dla każdego zasobu. Użyj poniższego wzorca jako podstawowej logiki oceny stanu zdrowia w swoim niestandardowym zapytaniu rekomendacyjnym, zastępując warunek tymczasowy własnym testem:
| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
W tym wzorcu edytuj tylko wyrażenie condition. Zachowaj HealthStatus następujące wyrażenie bez zmian w swoim zapytaniu, aby Defender dla Chmury mógł klasyfikować dopasowane zasoby jako zgodne lub niezgodne:
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Zasoby, w których HealthStatus jest UNHEALTHY są wyświetlane jako niezgodne wyniki w Defender dla Chmury. Zasoby, w przypadku których wartość HealthStatus to HEALTHY, są zgodne i nie pojawiają się w wynikach.
Ważna
Zawsze ustaw HealthStatus na 'UNHEALTHY' lub 'HEALTHY'. Zwróć wszystkie zasoby objęte zakresem. Defender dla Chmury używa kolumny HealthStatus w celu określenia zgodności. Pominięcie zasobów w zbiorze wyników jest traktowane jako brak danych, a nie jako stan prawidłowy.
Typowe błędy i poprawki:
-
Brak wymaganych kolumn: Jeśli brakuje dowolnej z siedmiu wymaganych kolumn, zapytanie zakończy się niepowodzeniem. Zawsze kończ na
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus. -
Nieprawidłowe
HealthStatuswartości: Tylko'UNHEALTHY'i'HEALTHY'są poprawnymi wartościami (z uwzględnieniem wielkości liter). Inne wartości lub wartości null powodują błędy analizowania. -
Nieprawidłowe ścieżki właściwości: Dostęp do właściwości jest uzyskiwany za pośrednictwem metody
Record.properties.*, a nie bezpośrednio. Na przykład użyjRecord.properties.httpsOnly, a nieproperties.httpsOnly. -
Rozróżnianie wielkości liter w typie zasobu: Użyj
=~(dopasowanie bez uwzględniania wielkości liter) w porównaniachIdentifiers.Type. Na przykładIdentifiers.Type =~ 'Microsoft.Storage/storageAccounts'. -
Właściwości o wartości null w różnych subskrypcjach: Przetestuj zapytanie w subskrypcjach o różnych konfiguracjach. Użyj sprawdzeń
isnull()w miejscach, w których właściwości mogą nie występować.
Stosuj niestandardowe zalecenia na skalę masową
Tworzenie niestandardowych zaleceń w portalu Azure jest najlepsze dla większości użytkowników. Interfejs udostępnia wygodny edytor KQL i wbudowane narzędzia do walidacji. Podejście programowe może być również przydatne, gdy trzeba wdrożyć zalecenia w wielu środowiskach lub subskrypcjach.
Automatyzowanie za pośrednictwem interfejsu API
Jeśli masz już wstępnie zweryfikowane zapytania KQL i chcesz zautomatyzować tworzenie niestandardowych zaleceń, możesz użyć interfejsu API usługi Microsoft Defender dla Chmury. Ta metoda umożliwia szybkie wdrażanie zaleceń, zapewniając ich spójność i skalowalność w środowiskach chmury.
- Zalety: możesz zautomatyzować i skalować wdrożenie niestandardowych zaleceń.
- Kiedy należy używać: Ta metoda jest idealna w przypadku implementacji na dużą skalę, w których należy konsekwentnie stosować rekomendacje w wielu środowiskach.
Aby uzyskać więcej informacji o korzystaniu z interfejsu API do zarządzania rekomendacjami niestandardowymi, zobacz dokumentację interfejsu API złożonego Defender dla Chmury.
Tworzenie dostosowanych standardów
Zalecenia niestandardowe można przypisać do jednego lub większej liczby standardów niestandardowych.
Aby utworzyć niestandardowy standard:
Zaloguj się do portalu Azure.
Przejdź do Microsoft Defender dla Chmury>Ustawienia środowiska> odpowiedniej subskrypcji.
Wybierz pozycję Zasady zabezpieczeń>+ Utwórz>Standardowe.
Wybierz zalecenia, które chcesz dodać do standardu niestandardowego.
(Opcjonalnie) W przypadku subskrypcji Azure przejrzyj kolumnę Źródło.
Wybierz Utwórz.
Tworzenie i ulepszanie niestandardowych zaleceń za pomocą usługi Azure Policy (starsza wersja)
W przypadku subskrypcji platformy Azure można tworzyć niestandardowe rekomendacje i standardy oraz ulepszać je przy użyciu usługi Azure Policy. Jest to starsza funkcja i zalecamy użycie nowej funkcji rekomendacji niestandardowych.
Tworzenie niestandardowego zalecenia i standardu (starsza wersja)
W Defender dla Chmury można tworzyć niestandardowe rekomendacje i standardy, tworząc definicje zasad i inicjatywy w Azure Policy oraz dołączając je w Defender dla Chmury.
Aby utworzyć rekomendację niestandardową lub standard z Azure Policy (starsza wersja):
- Stwórz jedną lub więcej definicji polityk w portalu Azure Policy lub stwórz definicje polityk programowo.
- Utwórz inicjatywę zasad, która zawiera niestandardowe definicje zasad.
Dołączanie inicjatywy jako niestandardowego standardu (starsza wersja)
Przypisania zasad służą w Azure Policy do przypisywania zasobów platformy Azure do zasad lub inicjatyw.
Aby dołączyć inicjatywę do niestandardowego standardu zabezpieczeń w Defender dla Chmury, należy uwzględnić "ASC":"true" w treści żądania, jak pokazano tutaj. Pole ASC wdraża inicjatywę w Microsoft Defender dla Chmury.
Aby dołączyć inicjatywę niestandardową:
Przykład wdrożenia inicjatywy niestandardowej
Użyj poniższego żądania REST, aby utworzyć lub zaktualizować inicjatywę Azure Policy, która wspiera Twój niestandardowy standard Defender dla Chmury:
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01
Treść żądania (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"
}
}
}
]
}
}
Przykład usunięcia przypisania
Aby usunąć starszy niestandardowy standard z subskrypcji, użyj następującego żądania REST, aby usunąć przypisanie polityki:
DELETE https://management.azure.com/{subscription}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01
Ulepszanie niestandardowych zaleceń (starsza wersja)
Wbudowane zalecenia dostarczane z Microsoft Defender dla Chmury zawierają szczegółowe informacje, takie jak poziomy ważności i instrukcje korygowania. Jeśli chcesz dodać informacje tego typu do niestandardowych zaleceń dotyczących platformy Azure, użyj interfejsu API REST.
Dwa typy informacji, które można dodać, to:
- RemediationDescription — ciąg
- Ważność – Enum [Niskie, Średnie, Wysokie]
Metadane należy dodać do definicji zasad dla zasad wchodzących w skład inicjatywy niestandardowej. Metadane powinny znajdować się we własności 'securityCenter', jak pokazano:
{
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
}
}
}
Poniższy przykład przedstawia kompletną, niestandardową definicję polityki, która zawiera właściwość securityCenter metadanych wraz ze szczegółami dotyczącymi naprawy i powagi:
{
"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')]"
}
}
}
}
}
}
Aby zapoznać się z innym przykładem właściwości securityCenter, zobacz Przykłady interfejsu API REST dotyczące metadanych ocen.
Następne kroki
Skorzystaj z poniższych linków, aby dowiedzieć się więcej na temat zapytań Kusto: