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
CIS 7.4
BIO 13.01
ISO 27001:2022 A.8.20
Remediatie
Gebruik PowerShell-script vm-jit-access-enabled.ps1 (functie Invoke-Remediation) β Herstellen.
Compliance & Frameworks
CIS M365: Control 7.4 (L2) - JIT Access
BIO: 13.01 - Network Toegangscontrole en authenticatie
ISO 27001:2022: A.8.20 - Networks security
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 } }
functionTest-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-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 JIT Access: $($r.WithJIT)" -ForegroundColor $(if ($r.WithJIT -gt 0) { 'Green' } else { 'Yellow' })
}
else {
$r = Test-ComplianceWrite-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 = $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 JIT Access: $($r.WithJIT)" -ForegroundColor $(if ($r.WithJIT -gt 0) { 'Green' } else { 'Yellow' })
}
else {
$r = Test-ComplianceWrite-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.