Deze security regelen waarborgt de correcte configuratie en beschermt tegen beveiligingsrisico's.
Aanbeveling
IMPLEMENTEER - ZIE auto-provisioning-agents
Risico zonder
High
Risk Score
8/10
Implementatie
2u (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
See auto-provisioning-agents-ingeschakeld in defender-cloud.
Vereisten
Defender voor Servers
Auto-provisioning ingeschakeld
Monitoring
Gebruik PowerShell-script vm-monitoring-agent-installed.ps1 (functie Invoke-Monitoring) – Controleren.
See auto-provisioning-agents-ingeschakeld control.
Compliance en Auditing
CIS 2.1.13
BIO 12.04
ISO 27001:2022 A.8.15
Remediatie
Gebruik PowerShell-script vm-monitoring-agent-installed.ps1 (functie Invoke-Remediation) – Herstellen.
Compliance & Frameworks
CIS M365: Control 2.1.13 (L1) - Monitoring agents
BIO: 12.04 - Logging
ISO 27001:2022: A.8.15 - Logging
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 Monitoring Agent Installed
.DESCRIPTION
CIS Azure Foundations Benchmark - Control 7.9
Controleert of monitoring agents zijn geïnstalleerd op VMs.
.NOTES
Filename: vm-monitoring-agent-installed.ps1
Author: Nederlandse Baseline voor Veilige Cloud
Version: 1.0
CIS Control: 7.9#>#Requires -Version 5.1#Requires -Modules Az.Accounts, Az.Compute
[CmdletBinding()]
param([Parameter()][switch]$Monitoring)
$ErrorActionPreference = 'Stop'
$PolicyName = "VM Monitoring Agent Installed"
function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } }
functionTest-Compliance {
$vms = Get-AzVM -ErrorAction SilentlyContinue
$result = @{ TotalVMs = $vms.Count; WithMonitoringAgent = 0 }
foreach ($vm in $vms) {
$extensions = Get-AzVMExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -ErrorAction SilentlyContinue
$hasAgent = $extensions | Where-Object {
$_.ExtensionType -eq "MicrosoftMonitoringAgent" -or
$_.ExtensionType -eq "OmsAgentForLinux" -or
$_.ExtensionType -eq "AzureMonitorWindowsAgent" -or
$_.ExtensionType -eq "AzureMonitorLinuxAgent"
}
if ($hasAgent) { $result.WithMonitoringAgent++ }
}
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 Monitoring Agent: $($r.WithMonitoringAgent)" -ForegroundColor $(if ($r.WithMonitoringAgent -eq $r.TotalVMs) { 'Green' } else { 'Yellow' })
}
else {
$r = Test-ComplianceWrite-Host "`nMonitoring Agent: $($r.WithMonitoringAgent)/$($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 Monitoring Agent: $($r.WithMonitoringAgent)" -ForegroundColor $(if ($r.WithMonitoringAgent -eq $r.TotalVMs) { 'Green' } else { 'Yellow' })
}
else {
$r = Test-ComplianceWrite-Host "`nMonitoring Agent: $($r.WithMonitoringAgent)/$($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
High: VMs zonder monitoring = blind voor security events, performance issues. No log collection. Compliance: CIS 2.1.13, BIO 12.04. Het risico is HOOG.
Management Samenvatting
Alternatieve verificatie voor VM Monitoring Agents. Zie microsoft-defender/auto-provisioning-agents-enabled voor volledige implementatie (Azure Monitor Agent auto-provisioning). Verplicht CIS 2.1.13.