Przejście do Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender
Microsoft Defender dla Chmury ujednolicanie wszystkich rozwiązań do oceny luk w zabezpieczeniach w celu korzystania ze skanera luk w zabezpieczeniach Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.
Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender integruje się z wieloma natywnymi przypadkami użycia chmury, takimi jak scenariusze wysyłki kontenerów i środowiska uruchomieniowego.
Ocena luk w zabezpieczeniach kontenerów Defender dla Chmury obsługiwana przez firmę Qualys została wycofana. Jeśli jeszcze nie przeniesiono doocen luk w zabezpieczeniach dla platformy Azure z Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender, wykonaj kroki na stronie, aby przejść.
Krok 1. Sprawdź, czy skanowanie jest włączone
Skanowanie oceny luk w zabezpieczeniach kontenerów obsługiwane przez Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender jest domyślnie włączone dla usługi Defender for Containers, defender for Container Registries (przestarzałe) i Defender Cloud Security Posture Management. Organizacje, które wyłączyły tę funkcję, muszą ponownie włączyć przełącznik oceny luk w zabezpieczeniach bez agenta w jednym z planów. Odzwierciedla on automatycznie wszystkie wymienione plany włączone.
Aby uzyskać więcej informacji na temat włączania skanowania Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender, zobacz Włączanie oceny luk w zabezpieczeniach obsługiwanej przez program Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.
Krok 2. (Opcjonalnie) Aktualizowanie interfejsu API REST i zapytań usługi Azure Resource Graph
Jeśli uzyskiwano dostęp do wyników oceny luk w zabezpieczeniach kontenera przez firmę Qualys programowo, za pośrednictwem interfejsu API REST usługi Azure Resource Graph (ARG) lub podseksji interfejsu API REST lub zapytań ARG, musisz zaktualizować istniejące zapytania, aby dopasować je do nowego schematu i/lub interfejsu API REST dostarczonego przez nową ocenę luk w zabezpieczeniach kontenera obsługiwaną przez Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.
W następnej sekcji przedstawiono kilka przykładów, które mogą pomóc w zrozumieniu, w jaki sposób istniejące zapytania dotyczące oferty obsługiwanej przez firmę Qualys powinny zostać przetłumaczone na równoważne zapytania z ofertą obsługiwaną przez platformę Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.
Przykłady zapytań usługi ARG
Wszystkie zapytania usługi Azure Resource Graph używane do raportowania powinny zostać zaktualizowane w celu odzwierciedlenia Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender assessmentKeys wymienionych wcześniej. Poniżej przedstawiono przykłady ułatwiające przejście do Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender zapytań.
Pokaż obrazy kontenerów w złej kondycji
Qualys
securityresources
| where type == "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(".*assessments/(.+?)/.*",1, id)
| where assessmentKey == "dbd0cb49-b563-45e7-9724-889e799fa648"
| project
Resource = tolower(extract(@'(?i)(.*?)/providers/Microsoft.Security/([^/]+)', 1, id)),
ResourceType = tolower(split(id,"/").[6]),
subscriptionId,
severity = properties.status.severity,
status = properties.status.code,
VulnId = properties.id,
description = properties.displayName,
patchable = properties.additionalData.patchable,
cve = properties.additionalData.cve,
Repo = properties.additionalData.repositoryName,
imageDigest = properties.additionalData.imageDigest
| where status == 'Unhealthy'
Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender
securityresources
| where type == "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(".*assessments/(.+?)/.*",1, id)
| where assessmentKey == "c0b7cfc6-3172-465a-b378-53c7ff2cc0d5"
| project
Resource = tolower(extract(@'(?i)(.*?)/providers/Microsoft.Security/([^/]+)', 1, id)),
ResourceType = tolower(split(id,"/").[6]),
subscriptionId,
severity = properties.additionalData.vulnerabilityDetails.severity,
status = properties.status.code,
VulnId = properties.id,
description = properties.description,
fixStatus = properties.additionalData.softwareDetails.fixStatus,
Repo = properties.additionalData.artifactDetails.repositoryName,
imageUri = properties.resourceDetails.id
| where status == 'Unhealthy'
Pokaż obrazy kontenerów w dobrej kondycji
Qualys
securityresources
| where type == "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(".*assessments/(.+?)/.*",1, id)
| where assessmentKey == "dbd0cb49-b563-45e7-9724-889e799fa648"
| project
Resource = tolower(extract(@'(?i)(.*?)/providers/Microsoft.Security/([^/]+)', 1, id)),
ResourceType = tolower(split(id,"/").[6]),
subscriptionId,
status = properties.status.code,
Repo = properties.additionalData.repositoryName,
imageDigest = properties.additionalData.imageDigest
| where status == 'Healthy'
Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender
securityresources
| where type == "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(".*assessments/(.+?)/.*",1, id)
| where assessmentKey == "c0b7cfc6-3172-465a-b378-53c7ff2cc0d5"
| project
Resource = tolower(extract(@'(?i)(.*?)/providers/Microsoft.Security/([^/]+)', 1, id)),
ResourceType = tolower(split(id,"/").[6]),
subscriptionId,
status = properties.status.code,
Repo = properties.additionalData.artifactDetails.repositoryName,
imageUri = properties.resourceDetails.id
| where status == 'Healthy'
Zlicz obrazy podatne na zagrożenia według ważności
Qualys
securityresources
| where type == "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(".*assessments/(.+?)/.*",1, id)
| extend status = tostring(parse_json(properties).status.code)
| extend severity = tostring(parse_json(properties).status.severity)
| extend vulId=tostring((properties).id)
| extend Resource = tolower(extract(@'(?i)(.*?)/providers/Microsoft.Security/([^/]+)', 1, id))
| where assessmentKey == "dbd0cb49-b563-45e7-9724-889e799fa648"
| where status == 'Unhealthy'
| distinct
vulId,
severity
| summarize count=count() by tostring(severity)
Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender
securityresources
| where type == "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(".*assessments/(.+?)/.*",1, id)
| extend severity = tostring(properties.additionalData.vulnerabilityDetails.severity)
| extend status = tostring(parse_json(properties).status.code)
| extend vulId=tostring((properties).id)
| extend Resource = tolower(extract(@'(?i)(.*?)/providers/Microsoft.Security/([^/]+)', 1, id))
| where assessmentKey == "c0b7cfc6-3172-465a-b378-53c7ff2cc0d5"
| where status == 'Unhealthy'
| distinct
vulId,
severity
| summarize count=count() by tostring(severity)
Wyświetlanie zasobnika, kontenera i przestrzeni nazw dla działającego obrazu podatnego na zagrożenia w klastrze usługi AKS
Qualys
securityresources
| where type =~ "microsoft.security/assessments/subassessments"
| extend assessmentKey = extract(@"(?i)providers/Microsoft.Security/assessments/([^/]*)", 1, id),
subAssessmentId = tostring(properties.id),
parentResourceId = extract("(.+)/providers/Microsoft.Security", 1, id)
| extend resourceId = extract(@'(?i)(.*?)@([^/]+)', 1,tostring(properties.resourceDetails.id))
| extend severity = tostring(parse_json(properties).status.severity)
| extend VulnId = tostring(parse_json(properties).id)
| extend status = tostring(parse_json(properties).status.code)
| where assessmentKey == "41503391-efa5-47ee-9282-4eff6131462c"
| extend resourceId = tostring(properties.resourceDetails.id),
parsedJson = parse_json(tostring(properties.additionalData))
| extend containerData = parse_json(tostring(parsedJson.data.Containers))
| mv-expand containerDetails = containerData to typeof(dynamic)
| extend ContainerName = tostring(containerDetails.Name),
ContainerPod = tostring(containerDetails.Pod.Name),
Namespace = tostring(containerDetails.Pod.Namespace),
ControllerType = tostring(containerDetails.Pod.ControllerType),
ControllerName = tostring(containerDetails.Pod.ControllerName)
| where status == 'Unhealthy'
|project Image=resourceId, VulnId,severity, Namespace, ContainerName, ContainerPod,ControllerName,ControllerType
Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender
securityresources
| where type =~ "microsoft.security/assessments/subassessments"
| extend assessmentKey=extract(@"(?i)providers/Microsoft.Security/assessments/([^/]*)", 1, id)
| where assessmentKey == "c0b7cfc6-3172-465a-b378-53c7ff2cc0d5"
| extend azureClusterId = tostring(properties.additionalData.clusterDetails.clusterResourceId)
| extend cve =tostring(properties.id)
| extend status = properties.status.code
| extend severity=tostring(parse_json(properties).additionalData.vulnerabilityDetails.severity)
| where status == "Unhealthy"
| extend azureImageId = tostring(properties.resourceDetails.id)
| extend severity = tolower(properties.additionalData.vulnerabilityDetails.severity)
| extend kubernetesContext = properties.additionalData.kubernetesContext
| mv-expand workload = kubernetesContext.workloads
| mv-expand OwnedResource = workload.ownedResources
| mv-expand OwnedContainer = OwnedResource.containers
| mv-expand Container = workload.containers
| extend isController = isnotempty(workload.ownedResources)
| extend namespace = tostring(workload.namespace)
| extend podName = iff(isController, tostring(OwnedResource.name), workload.name)
| extend containerName = iff(isController, tostring(OwnedContainer.name), Container.name)
| extend controllerName = iff(isController, tostring(workload.name),"")
| extend controllerType = iff(isController, tostring(workload.kind),"")
| extend imageName = extract("(.+)@sha256:", 1, azureImageId)
| project imageName, cve, severity, clusterId = azureClusterId, containerName, podName, controllerName, controllerType, namespace
Krok 3. (Opcjonalnie) Raportowanie zabezpieczeń kontenera
Microsoft Defender dla Chmury zapewnia gotowe raportowanie za pośrednictwem skoroszytów platformy Azure, w tym skoroszytu zabezpieczeń kontenerów.
Ten skoroszyt zawiera wyniki skanowania luk w zabezpieczeniach kontenera zarówno z rejestru, jak i środowiska uruchomieniowego.
Skoroszyt zawiera wyniki skanowania Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender, oferując kompleksowy przegląd luk w zabezpieczeniach wykrytych w obrazach kontenerów usługi Azure Registry. Skoroszyt zabezpieczeń kontenerów zapewnia następujące korzyści z oceny luk w zabezpieczeniach kontenerów:
Omówienie wszystkich luk w zabezpieczeniach: wyświetl wszystkie luki w zabezpieczeniach wykryte w rejestrach kontenerów platformy Azure i uruchomione w klastrze usługi AKS.
Pulpit nawigacyjny luk w zabezpieczeniach z możliwością wykorzystania: dedykowana sekcja wyróżniająca luki w zabezpieczeniach ze znanymi programami wykorzystującymi luki w zabezpieczeniach, umożliwiając zespołom ds. zabezpieczeń skupienie się na lukach w zabezpieczeniach, które stanowią wysokie ryzyko wykorzystania. Jest to dostępne tylko w przypadku skanowania oceny luk w zabezpieczeniach kontenerów obsługiwanego przez Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.
Dodatkowe zapytania ARG: możesz użyć tego skoroszytu, aby wyświetlić więcej przykładów wykonywania zapytań dotyczących danych usługi ARG między platformą Qualys i Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender. Aby uzyskać więcej informacji na temat edytowania skoroszytów, zobacz Galeria skoroszytów w Microsoft Defender dla Chmury.
Następne kroki
- Dowiedz się więcej o ocenach luk w zabezpieczeniach dla platformy Azure za pomocą Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.
- Zapoznaj się z typowymi pytaniami dotyczącymi rozwiązania Zarządzanie lukami w zabezpieczeniach w usłudze Microsoft Defender.