Back to Checks
All virtual machines in the subscription have a vulnerability assessment solution installed
defender_auto_provisioning_vulnerabilty_assessments_machines_on
Service: defenderSeverity: medium
OfficialBuilt-inVerified
Categories:vulnerabilities
Resource Type:microsoft.security/assessmentssample
Microsoft Defender for Cloud evaluates whether Azure VMs and Arc-enabled machines have a vulnerability assessment solution deployed and reporting healthy coverage across the subscription.
Risk
Without continuous vulnerability assessment, unpatched flaws persist, enabling:
- Remote code execution and privilege escalation
- Ransomware disrupting availability
- Data exfiltration via lateral movement
Confidentiality, integrity, and availability are reduced across affected machines.
Run this check with Prowler
Run in Prowler CloudRun
prowler azure --checks defender_auto_provisioning_vulnerabilty_assessments_machines_onRecommendation
Enable subscription-wide auto-provisioning of a vulnerability assessment for all Azure and Arc machines and enforce it with policy for existing and new hosts.
Apply least privilege to deployment identities, integrate with patch management, and monitor findings for timely remediation.
Remediation
CLI
az rest --method put --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Security/serverVulnerabilityAssessmentsSettings/AzureServersSetting?api-version=2022-01-01-preview --body '{"properties":{"selectedProvider":"MdeTvm"},"kind":"AzureServersSetting"}'Terraform
# Enable vulnerability assessment for all machines using Microsoft Defender Vulnerability Management
resource "azapi_resource" "<example_resource_name>" {
type = "Microsoft.Security/serverVulnerabilityAssessmentsSettings@2022-01-01-preview"
name = "AzureServersSetting"
parent_id = "/subscriptions/<example_subscription_id>"
body = jsonencode({
properties = {
selectedProvider = "MdeTvm" # Critical: sets VA provider so all VMs get vulnerability assessment
}
kind = "AzureServersSetting"
})
}NativeIaC
// Enable vulnerability assessment for all machines using Microsoft Defender Vulnerability Management
// Critical: sets the VA provider so the recommendation becomes Healthy
@description('Deploy at subscription scope')
targetScope = 'subscription'
resource <example_resource_name> 'Microsoft.Security/serverVulnerabilityAssessmentsSettings@2022-01-01-preview' = {
name: 'AzureServersSetting'
kind: 'AzureServersSetting'
properties: {
selectedProvider: 'MdeTvm' // Critical: enables Defender VA provider for machines
}
}Other
1In the Azure portal, go to Microsoft Defender for Cloud
2Open Environment settings and select your <subscription>
3Go to Settings & monitoring (Auto-provisioning)
4Find Vulnerability assessment for machines, set to On, and select Microsoft Defender Vulnerability Management
5Click Save
Check Code
from prowler.lib.check.models import Check, Check_Report_Azure
from prowler.providers.azure.services.defender.defender_client import defender_client
class defender_auto_provisioning_vulnerabilty_assessments_machines_on(Check):
def execute(self) -> Check_Report_Azure:
findings = []
for (
subscription_id,
assessments,
) in defender_client.assessments.items():
subscription_name = defender_client.subscriptions.get(
subscription_id, subscription_id
)
if (
"Machines should have a vulnerability assessment solution"
in assessments
):
report = Check_Report_Azure(
metadata=self.metadata(),
resource=assessments[
"Machines should have a vulnerability assessment solution"
],
)
report.subscription = subscription_id
report.status = "PASS"
report.status_extended = f"Vulnerability assessment is set up in all VMs in subscription {subscription_name} ({subscription_id})."
if (
assessments[
"Machines should have a vulnerability assessment solution"
].status
== "Unhealthy"
):
report.status = "FAIL"
report.status_extended = f"Vulnerability assessment is not set up in all VMs in subscription {subscription_name} ({subscription_id})."
findings.append(report)
return findingsReferences
- https://www.trendmicro.com/cloudoneconformity/knowledge-base/azure/SecurityCenter/automatic-provisioning-vulnerability-assessment-machines.html
- https://learn.microsoft.com/en-us/azure/defender-for-cloud/deploy-vulnerability-assessment-defender-vulnerability-management
- https://learn.microsoft.com/en-us/azure/defender-for-cloud/monitoring-components?tabs=autoprovision-va