Skip to main content
compliance · azure

Linux VMs absent from the endpoint-protection lookup set

resource types
1
rule IDs covered
1
severity
high

What does ZopNight detect here?

ZopNight marks a Linux Azure VM unprotected only when the discoverer fetched the IaaSAntimalware/Defender lookup set and the VM was provably absent from it. That is an authoritative false, never a missing-signal default. Windows VMs are skipped entirely, because Windows Server 2016 and later ship Microsoft Defender Antivirus built in.

Signal and threshold

How ZopNight evaluates Linux VMs absent from the endpoint-protection lookup set.
Field Value
Rule IDsRC-1304
Categorycompliance
Severityhigh
Metricnone — pure configuration read
Sourcevm_antimalware.go

A lookup-set absence that counts as evidence

The Azure discoverer queries which VMs carry the IaaSAntimalware extension or a Microsoft Defender for Endpoint onboarding, then stamps antimalware_enabled true or false per VM. The crucial property: "false" is written only when that lookup set was successfully fetched and the VM was not in it. So a false here is a positive statement rather than an inference from missing data: the fleet was enumerated and this machine has no endpoint protection. When the enricher has not run or the lookup failed, the key is absent and the rule abstains.

Why no Windows VM ever appears in these findings

Windows Server 2016 and later ship Microsoft Defender Antivirus in the base image. Flagging a Windows VM for lacking the IaaSAntimalware extension would accuse a protected machine of being unprotected, so the rule checks the discoverer’s os_family key (falling back to os_type) and skips anything Windows. The guard deliberately fails open in the other direction: an absent OS attribute does not assume Windows, because that assumption would silently suppress genuine Linux findings.

What an unprotected Linux host means in practice

Linux has no built-in equivalent of Defender AV. A flagged VM is running with no real-time malware detection, no ransomware behavioural blocking, and nothing feeding endpoint telemetry into Defender for Cloud. An auditor working through CIS or PCI-DSS endpoint-protection controls will treat it as a straightforward gap, and an attacker who lands on the box operates unobserved. Severity is high for that reason, though the finding itself carries no dollar figure.

Enumerate a VM’s security extensions

Terminal window
az vm extension list -g <rg> --vm-name <vm> \
--query "[].{name:name, publisher:publisher, state:provisioningState}" -o table

Look for MDE.Linux or a third-party endpoint agent in the list; an empty result on a Linux VM corroborates the finding.

Closing the gap

Onboard Microsoft Defender for Endpoint for Linux (the MDE.Linux extension) through Defender for Cloud, or deploy the endpoint agent your organisation has standardised on, then enable real-time protection and scheduled scans. Detection is reproducible with Reader alone; ZopNight installs nothing on the machine.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·