Deze security control waarborgt de correcte configuratie en beschermt tegen beveiligingsrisico's.
Aanbeveling
IMPLEMENTEER - ZIE endpoint-protection-on
Risico zonder
Critical
Risk Score
10/10
Implementatie
1.5u (tech: 1u)
Van toepassing op:
✓ Azure VMs
Deze instelling is essentieel voor het handhaven van een veilige omgeving en voorkomt bekende aanvalsvectoren door het afdwingen van security best practices.
PowerShell Modules Vereist
Primary API: Azure API Connection:Connect-AzAccount Required Modules: Az.Accounts, Az.Compute
Implementatie
Dit control past de benodigde beveiligingsinstellingen toe via Microsoft Intune of Azure Policy om systemen te beschermen volgens actuele security frameworks zoals CIS Benchmarks, BIO en ISO 27001.
Vereisten
Defender voor Servers
monitoring
Gebruik PowerShell-script vm-endpoint-protection-installed.ps1 (functie Invoke-Monitoring) – Controleren.
See endpoint-bescherming-on control.
Compliance en Auditing
CIS 2.1.16
BIO 12.02
ISO 27001:2022 A.8.7
Remediatie
Gebruik PowerShell-script vm-endpoint-protection-installed.ps1 (functie Invoke-Remediation) – Herstellen.
Compliance & Frameworks
CIS M365: Control 2.1.16 (L1) - Endpoint bescherming
BIO: 12.02 - Bescherming tegen malware
ISO 27001:2022: A.8.7 - bescherming against malware
Automation
Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).
PowerShell
<#
================================================================================
AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud
================================================================================
.SYNOPSIS
VM Endpoint Protection Installed
.DESCRIPTION
CIS Azure Foundations Benchmark - Control 7.5
Controleert of endpoint protection is geïnstalleerd op VMs.
.NOTES
Filename: vm-endpoint-protection-installed.ps1
Author: Nederlandse Baseline voor Veilige Cloud
Version: 1.0
CIS Control: 7.5#>#Requires -Version 5.1#Requires -Modules Az.Accounts, Az.Compute
[CmdletBinding()]
param([Parameter()][switch]$Monitoring)
$ErrorActionPreference = 'Stop'
$PolicyName = "VM Endpoint Protection Installed"
function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } }
functionTest-Compliance {
$vms = Get-AzVM -ErrorAction SilentlyContinue
$result = @{ TotalVMs = $vms.Count; WithEndpointProtection = 0 }
foreach ($vm in $vms) {
$extensions = Get-AzVMExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -ErrorAction SilentlyContinue
$hasEP = $extensions | Where-Object {
$_.Publisher -like "*Endpoint*" -or
$_.Publisher -like "*Antimalware*" -or
$_.ExtensionType -like "*Antimalware*" -or
$_.Publisher -eq "Microsoft.Azure.Security.Monitoring" -or
$_.Publisher -eq "Microsoft.EnterpriseCloud.Monitoring"
}
if ($hasEP) { $result.WithEndpointProtection++ }
}
return$result
}
try {
Connect-RequiredServices
if ($Monitoring) {
$r = Test-ComplianceWrite-Host "`n========================================" -ForegroundColor Cyan
Write-Host "$PolicyName" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Total VMs: $($r.TotalVMs)" -ForegroundColor White
Write-Host "With Endpoint Protection: $($r.WithEndpointProtection)" -ForegroundColor $(if ($r.WithEndpointProtection -eq $r.TotalVMs) { 'Green' } else { 'Yellow' })
}
else {
$r = Test-ComplianceWrite-Host "`nEndpoint Protection: $($r.WithEndpointProtection)/$($r.TotalVMs) VMs"
}
}
catch { Write-Error$_; exit 1 }
# ================================================================================
# Standaard Invoke-* Functions (Auto-generated)
# ================================================================================
function Invoke-Implementation {
<#
.SYNOPSIS
Implementeert de configuratie
#>
[CmdletBinding()]
param()
Invoke-Remediation
}
function Invoke-Monitoring {
<#
.SYNOPSIS
Controleert de huidige configuratie status
#>
[CmdletBinding()]
param()
$Monitoring = $truetry {
Connect-RequiredServices
if ($Monitoring) {
$r = Test-ComplianceWrite-Host "`n========================================" -ForegroundColor Cyan
Write-Host "$PolicyName" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Total VMs: $($r.TotalVMs)" -ForegroundColor White
Write-Host "With Endpoint Protection: $($r.WithEndpointProtection)" -ForegroundColor $(if ($r.WithEndpointProtection -eq $r.TotalVMs) { 'Green' } else { 'Yellow' })
}
else {
$r = Test-ComplianceWrite-Host "`nEndpoint Protection: $($r.WithEndpointProtection)/$($r.TotalVMs) VMs"
}
}
catch { Write-Error$_; exit 1 }
}
function Invoke-Remediation {
<#
.SYNOPSIS
Herstelt de configuratie naar de gewenste staat
.DESCRIPTION
Dit is een monitoring-only control, remediation delegeert naar monitoring
#>
[CmdletBinding()]
param()
Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow
Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan
Invoke-Monitoring
}
Risico zonder implementatie
Risico zonder implementatie
Critical: VMs zonder antimalware = ransomware infections, malware spread. Compliance: CIS 2.1.16, BIO 14.02. Het risico is KRITIEK.
Management Samenvatting
Alternatieve verificatie voor VM Endpoint Protection. Zie microsoft-defender/endpoint-protection-on voor volledige implementatie (Microsoft Defender for Endpoint). Verplicht CIS 2.1.16.