Dela via


Övergång till Upravljanje ranjivostima za Microsoft Defender

Microsoft Defender för molnet förenar alla lösningar för sårbarhetsbedömning för att använda Upravljanje ranjivostima za Microsoft Defender sårbarhetsskanner.

Upravljanje ranjivostima za Microsoft Defender integreras i många molnbaserade användningsfall, till exempel containrars leverans- och körningsscenarier.

Sårbarhetsbedömningen för Defender för molncontainrar som drivs av Qualys har nu dragits tillbaka. Om du ännu inte har övergått tillsårbarhetsbedömningar för Azure med Upravljanje ranjivostima za Microsoft Defender följer du stegen på sidan för att göra övergången.

Steg 1: Kontrollera att genomsökning är aktiverat

Genomsökning av sårbarhetsbedömning för containrar som drivs av Upravljanje ranjivostima za Microsoft Defender är aktiverat som standard för Defender för containrar, Defender för containerregister (inaktuell) och Defender Cloud Security Posture Management. Organisationer som inaktiverade den måste återaktivera sårbarhetsbedömningen för agentlösa containrar i något av planerna. Den återspeglar automatiskt för någon av de nämnda planerna som är aktiverad.

Skärmbild av aktivering av

Mer information om hur du aktiverar Upravljanje ranjivostima za Microsoft Defender genomsökning finns i Aktivera sårbarhetsbedömning som drivs av Upravljanje ranjivostima za Microsoft Defender.

Steg 2: (Valfritt) Uppdatera REST API- och Azure Resource Graph-frågor

Om du kom åt resultatet av utvärdering av sårbarhetsbedömningar för containrar via Qualys programmatiskt, antingen via Rest-API:et för Azure Resource Graph (ARG) eller REST API för underbedömning eller ARG-frågor, måste du uppdatera dina befintliga frågor så att de matchar det nya schemat och/eller REST-API:et som tillhandahålls av den nya sårbarhetsbedömningen för containrar som drivs av Upravljanje ranjivostima za Microsoft Defender.

Nästa avsnitt innehåller några exempel som kan hjälpa dig att förstå hur befintliga frågor för Qualys-baserade erbjudanden ska översättas till motsvarande frågor med det Upravljanje ranjivostima za Microsoft Defender drivna erbjudandet.

ARG-frågeexempel

Alla Azure Resource Graph-frågor som används för rapportering bör uppdateras för att återspegla de Upravljanje ranjivostima za Microsoft Defender assessmentKeys som angavs tidigare. Följande är exempel som hjälper dig att övergå till Upravljanje ranjivostima za Microsoft Defender frågor.

Visa containeravbildningar som inte är felfria

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' 
Upravljanje ranjivostima za 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' 

Visa felfria containeravbildningar

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'
Upravljanje ranjivostima za 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' 

Räkna sårbara bilder efter allvarlighetsgrad

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)
Upravljanje ranjivostima za 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)

Visa podd, container och namnrymd för en sårbar avbildning som körs i AKS-klustret

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

Upravljanje ranjivostima za 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

Steg 3: (Valfritt) Rapportering av containersäkerhet

Microsoft Defender för molnet tillhandahåller rapportering direkt via Azure-arbetsböcker, inklusive en containersäkerhetsarbetsbok.

Skärmbild av containersäkerhetsarbetsboken.

Den här arbetsboken innehåller resultat av sårbarhetsgenomsökning av containrar från både register och körning.

Skärmbild av arbetsboken, inklusive resultat av sårbarhetsgenomsökning av containrar.

Arbetsboken ger resultat från Upravljanje ranjivostima za Microsoft Defender genomsökning och ger en omfattande översikt över sårbarheter som identifierats i dina Azure Registry-containeravbildningar. Arbetsboken Containers Security ger följande fördelar med sårbarhetsbedömning av containrar:

  • Översikt över alla sårbarheter: Visa alla sårbarheter som identifierats i dina Azure Container Registries och som körs i AKS-klustret.

  • Instrumentpanel för sårbarheter som kan utnyttjas: Ett dedikerat avsnitt som belyser sårbarheter med kända sårbarheter, vilket gör det möjligt för säkerhetsteam att fokusera på sårbarheter som utgör en hög risk för utnyttjande. Detta är endast tillgängligt med genomsökning av sårbarhetsbedömning för containrar som drivs av Upravljanje ranjivostima za Microsoft Defender.

    Skärmbild av instrumentpanelen för sårbarheter som kan utnyttjas.

  • Ytterligare ARG-frågor: Du kan använda den här arbetsboken för att visa fler exempel på hur du frågar ARG-data mellan Qualys och Upravljanje ranjivostima za Microsoft Defender. Mer information om hur du redigerar arbetsböcker finns i Galleriet Arbetsböcker i Microsoft Defender för molnet.

Nästa steg