Back to Checks
Defender auto-provisioning of Log Analytics agent for Azure VMs is enabled
defender_auto_provisioning_log_analytics_agent_vms_on
Service: defenderSeverity: high
OfficialBuilt-inVerified
Categories:logging
Resource Type:microsoft.resources/subscriptions
Microsoft Defender for Cloud auto-provisioning of the Log Analytics agent to Azure VMs is configured to On at the subscription level
Risk
Without automatic agent deployment, some VMs lack security telemetry, creating blind spots for vulnerabilities, missing patches, and threats.
Attackers can persist or move laterally unnoticed, undermining confidentiality and integrity, while delayed detection hampers effective response.
Run this check with Prowler
Run in Prowler CloudRun
prowler azure --checks defender_auto_provisioning_log_analytics_agent_vms_onRecommendation
Set Defender for Cloud auto-provisioning to On so all VMs receive the monitoring agent consistently.
Apply defense in depth by enforcing coverage for new and existing machines, standardizing workspaces, and auditing enrollment. Use least privilege for data access and integrate with endpoint protection and vulnerability assessment.
Remediation
CLI
az security auto-provisioning-setting update --name default --auto-provision OnTerraform
# Enable Defender auto-provisioning of Log Analytics agent
resource "azurerm_security_center_auto_provisioning" "<example_resource_name>" {
auto_provision = "On" # Critical: turns auto-provisioning ON
}NativeIaC
// Enable Defender auto-provisioning of Log Analytics agent at subscription scope
targetScope = 'subscription'
resource autoProv 'Microsoft.Security/autoProvisioningSettings@2017-08-01-preview' = {
name: 'default'
properties: {
autoProvision: 'On' // Critical: turns auto-provisioning ON for the subscription
}
}Other
1In the Azure portal, open Microsoft Defender for Cloud
2Select Environment settings, then choose your subscription
3Open Auto provisioning
4Set Auto-provisioning of Log Analytics agent to On
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_log_analytics_agent_vms_on(Check):
def execute(self) -> Check_Report_Azure:
findings = []
for (
subscription_id,
auto_provisioning_settings,
) in defender_client.auto_provisioning_settings.items():
subscription_name = defender_client.subscriptions.get(
subscription_id, subscription_id
)
for auto_provisioning_setting in auto_provisioning_settings.values():
report = Check_Report_Azure(
metadata=self.metadata(),
resource=auto_provisioning_setting,
)
report.subscription = subscription_id
report.status = "PASS"
report.status_extended = f"Defender Auto Provisioning Log Analytics Agents from subscription {subscription_name} ({subscription_id}) is set to ON."
if auto_provisioning_setting.auto_provision != "On":
report.status = "FAIL"
report.status_extended = f"Defender Auto Provisioning Log Analytics Agents from subscription {subscription_name} ({subscription_id}) is set to OFF."
findings.append(report)
return findings