Övergång till Microsoft Defender – hantering av säkerhetsrisker
Microsoft Defender för molnet förenar alla lösningar för sårbarhetsbedömning för att använda Microsoft Defender – hantering av säkerhetsrisker sårbarhetsskanner.
Microsoft Defender – hantering av säkerhetsrisker integreras i många molnbaserade användningsfall, till exempel containrars leverans- och körningsscenarier.
Sårbarhetsbedömningen för Defender för molnet containrar som drivs av Qualys har nu dragits tillbaka. Om du ännu inte har övergått tillsårbarhetsbedömningar för Azure med Microsoft Defender – hantering av säkerhetsrisker 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 Microsoft Defender – hantering av säkerhetsrisker ä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.
Mer information om hur du aktiverar Microsoft Defender – hantering av säkerhetsrisker genomsökning finns i Aktivera sårbarhetsbedömning som drivs av Microsoft Defender – hantering av säkerhetsrisker.
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 Microsoft Defender – hantering av säkerhetsrisker.
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 Microsoft Defender – hantering av säkerhetsrisker 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 Microsoft Defender – hantering av säkerhetsrisker assessmentKeys som angavs tidigare. Följande är exempel som hjälper dig att övergå till Microsoft Defender – hantering av säkerhetsrisker 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'
Microsoft Defender – hantering av säkerhetsrisker
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'
Microsoft Defender – hantering av säkerhetsrisker
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)
Microsoft Defender – hantering av säkerhetsrisker
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
Microsoft Defender – hantering av säkerhetsrisker
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.
Den här arbetsboken innehåller resultat av sårbarhetsgenomsökning av containrar från både register och körning.
Arbetsboken ger resultat från Microsoft Defender – hantering av säkerhetsrisker 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 Microsoft Defender – hantering av säkerhetsrisker.
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 Microsoft Defender – hantering av säkerhetsrisker. Mer information om hur du redigerar arbetsböcker finns i galleriet Arbetsböcker i Microsoft Defender för molnet.