Přechod na Microsoft Defender Správa zranitelností
Microsoft Defender for Cloud sjednocuje všechna řešení posouzení ohrožení zabezpečení, aby používala kontrolu ohrožení zabezpečení Microsoft Defender Správa zranitelností.
Microsoft Defender Správa zranitelností se integruje do mnoha případů použití nativních pro cloud, jako jsou scénáře expedice kontejnerů a modulu runtime.
Posouzení ohrožení zabezpečení v Defenderu pro cloudové kontejnery využívající Qualys je teď vyřazené. Pokud jste ještě nepřevedli posouzeníohrožení zabezpečení pro Azure pomocí Microsoft Defender Správa zranitelností, proveďte přechod podle kroků na stránce.
Krok 1: Ověření povolení kontroly
Kontrola posouzení ohrožení zabezpečení kontejnerů založená na Microsoft Defender Správa zranitelností je ve výchozím nastavení povolená pro Defender for Containers, Defender for Container Registryies (zastaralé) a Správa stavu zabezpečení cloudu v defenderu. Organizace, které ho zakázaly, musí v jednom z plánů znovu povolit přepínač posouzení ohrožení zabezpečení bez agentů. Odráží se automaticky do kteréhokoli z uvedených plánů, které jsou povolené.
Další informace o povolení kontroly Microsoft Defender Správa zranitelností najdete v tématu Povolení posouzení ohrožení zabezpečení na základě Microsoft Defender Správa zranitelností.
Krok 2: (Volitelné) Aktualizace rozhraní REST API a dotazů Azure Resource Graphu
Pokud jste programově přistupovali k výsledkům posouzení ohrožení zabezpečení kontejneru qualys, a to buď prostřednictvím rozhraní REST API služby Azure Resource Graph (ARG), nebo dotazů REST API nebo ARG podsestavy, musíte stávající dotazy aktualizovat tak, aby odpovídaly novému schématu nebo rozhraní REST API poskytovanému posouzením ohrožení zabezpečení nového kontejneru s využitím Microsoft Defender Správa zranitelností.
Další část obsahuje několik příkladů, které vám pomůžou pochopit, jak by se existující dotazy na nabídku Qualys měly přeložit na ekvivalentní dotazy s nabídkou využívající Microsoft Defender Správa zranitelností.
Příklady dotazů ARG
Všechny dotazy Azure Resource Graphu použité pro vytváření sestav by se měly aktualizovat tak, aby odrážely dříve uvedené Microsoft Defender Správa zranitelností assessmentKeys. Tady jsou příklady, které vám pomůžou přejít na dotazy Microsoft Defender Správa zranitelností.
Zobrazení imagí kontejneru, které nejsou v pořádku
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 Správa zranitelností
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'
Zobrazení imagí kontejnerů, které jsou v pořádku
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 Správa zranitelností
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'
Počet ohrožených obrázků podle závažnosti
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 Správa zranitelností
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)
Zobrazení podu, kontejneru a oboru názvů pro spuštěnou ohroženou image v clusteru 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
Microsoft Defender Správa zranitelností
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: (Volitelné) Vytváření sestav zabezpečení kontejneru
Microsoft Defender for Cloud poskytuje předsazovací sestavy prostřednictvím Azure Workbooks, včetně sešitu zabezpečení kontejneru.
Tento sešit obsahuje výsledky kontroly ohrožení zabezpečení kontejneru z registru i modulu runtime.
Sešit poskytuje výsledky kontroly Microsoft Defender Správa zranitelností a nabízí komplexní přehled o ohroženích zabezpečení zjištěných v imagích kontejneru Azure Registry. Sešit Zabezpečení kontejnerů poskytuje následující výhody pro posouzení ohrožení zabezpečení kontejneru:
Přehled všech ohrožení zabezpečení: Zobrazte všechna zjištěná ohrožení zabezpečení napříč vašimi registry kontejnerů Azure a spuštěnými v clusteru AKS.
Řídicí panel zneužitelných ohrožení zabezpečení: Vyhrazený oddíl zvýrazňuje ohrožení zabezpečení se známými zneužitími a umožňuje týmům zabezpečení zaměřit se na ohrožení zabezpečení, která představují vysoké riziko zneužití. Tato možnost je dostupná pouze u kontroly posouzení ohrožení zabezpečení kontejneru s využitím Microsoft Defender Správa zranitelností.
Další dotazy ARG: Pomocí tohoto sešitu můžete zobrazit další příklady dotazů na data ARG mezi Qualys a Microsoft Defender Správa zranitelností. Další informace o úpravách sešitů najdete v galerii Sešity v programu Microsoft Defender for Cloud.
Další kroky
- Přečtěte si další informace o posouzeních ohrožení zabezpečení pro Azure pomocí Microsoft Defender Správa zranitelností.
- Projděte si běžné dotazy k řešení Microsoft Defender Správa zranitelností.