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.

Screenshot of enabling “Agentless container vulnerability assessment” in settings.

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.

Screenshot of Container Security workbook.

Ten skoroszyt zawiera wyniki skanowania luk w zabezpieczeniach kontenera zarówno z rejestru, jak i środowiska uruchomieniowego.

Screenshot of workbook including container vulnerability scanning results.

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.

    Screenshot of exploitable vulnerabilities dashboard.

  • 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