VM Monitoring Agent Installed

💼 Management Samenvatting

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

  1. Defender voor Servers
  2. 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

  1. CIS 2.1.13
  2. BIO 12.04
  3. ISO 27001:2022 A.8.15

Remediatie

Gebruik PowerShell-script vm-monitoring-agent-installed.ps1 (functie Invoke-Remediation) – Herstellen.

Compliance & Frameworks

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 } } function Test-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-Compliance Write-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-Compliance Write-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 = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-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-Compliance Write-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.