VM JIT Access

πŸ’Ό Management Samenvatting

Deze security regelen waarborgt de correcte configuratie en beschermt tegen beveiligingsrisico's.

Aanbeveling
IMPLEMENTEER - ZIE jit-vm-access-enabled
Risico zonder
High
Risk Score
8/10
Implementatie
3u (tech: 2u)
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.Security

Implementatie

Dit regelen 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-jit-access-enabled.ps1 (functie Invoke-Monitoring) – Controleren.

See jit-vm-access-ingeschakeld control.

Compliance en Auditing

  1. CIS 7.4
  2. BIO 13.01
  3. ISO 27001:2022 A.8.20

Remediatie

Gebruik PowerShell-script vm-jit-access-enabled.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 JIT Access Enabled .DESCRIPTION CIS Azure Foundations Benchmark - Control 7.6 Controleert of Just-In-Time VM Access is ingeschakeld. .NOTES Filename: vm-jit-access-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 7.6 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security, Az.Compute [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "VM JIT Access Enabled" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $vms = Get-AzVM -ErrorAction SilentlyContinue $jitPolicies = Get-AzJitNetworkAccessPolicy -ErrorAction SilentlyContinue $result = @{ TotalVMs = $vms.Count; WithJIT = 0 } foreach ($vm in $vms) { foreach ($policy in $jitPolicies) { if ($policy.VirtualMachines.Id -contains $vm.Id) { $result.WithJIT++ break } } } 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 JIT Access: $($r.WithJIT)" -ForegroundColor $(if ($r.WithJIT -gt 0) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nJIT Access: $($r.WithJIT)/$($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 JIT Access: $($r.WithJIT)" -ForegroundColor $(if ($r.WithJIT -gt 0) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nJIT Access: $($r.WithJIT)/$($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: Open RDP/SSH = brute force attacks, compromise binnen uren. Compliance: CIS 7.4, BIO 13.01. Het risico is KRITIEK.

Management Samenvatting

Alternatieve verificatie voor VM JIT Access. Zie microsoft-defender/jit-vm-access-enabled voor volledige implementatie (Just-in-Time VM Access, Defender for Servers P2). Verplicht CIS 7.4.