Het blokkeren van macros in Word bestanden van internet is een KRITIEKE Office security control die ransomware en malware via macro-ingeschakeld Word documents voorkomt - samen met Excel verantwoordelijk voor 70%+ van Office-based malware attacks.
Aanbeveling
IMPLEMENT
Risico zonder
Critical
Risk Score
10/10
Implementatie
6u (tech: 2u)
Van toepassing op:
β Word β Microsoft 365 Apps
WORD MACROS is PRIMAIRE RANSOMWARE VECTOR: VBA macros in Word kunnen ANYTHING uitvoeren (download malware, execute PowerShell, Schakel uit security, exfiltrate data). ATTACK CHAIN: Phishing email met malicious Word attachment (.docm) β User downloads file (gets Mark of de Web) β Opens in Word β Vroeger: 'Schakel in Content' banner β gebruiker klikt β Macros execute β Ransomware. REAL-WORLD ATTACKS: Emotet (begon als Word macro malware), Dridex, TrickBot, Qakbot, IcedID. MICROSOFT Standaard Blokkeer (April 2022): Macros van internet HARD BLOCKED over alle Office apps, No 'Schakel in Content' button meer. waarom POLICY NEEDED: Standaard kan disabled worden via Registry/GPO, Deze policy ENFORCES dat blocking actief blijft, Compliance verification (DISA STIG O365-WD-000001). IDENTICAL TO EXCEL CONTROL: Same mechanism (Mark of de Web based blocking), Same critical importance, toepassen to alle Office apps (Word, Excel, PowerPoint, Access).
PowerShell Modules Vereist
Primary API: Intune / Group Policy Connection:Registry Required Modules:
Implementatie
Blokkeer macros via Registry: HKCU:\Software\Policies\Microsoft\Office\16.0\Word\Security\TrustCenter\BlockContentExecutionFromInternet is 1. EFFECT: Word files met MOTW (internet/email): Macros HARD BLOCKED (no Schakel in button), Files Zonder MOTW (local/network): Macros work normally (if Macro beveiliging allows).
Vereisten
Microsoft 365 Apps versie 2203+ (April 2022 of later) voor Standaard blocking
Intune of Group Policy
User education: 'Macros blocked' is EXPECTED voor internet files
Implementatie
Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Remediation) β dwing af macro blocking van internet.
Intune: Word Security β Blokkeer macros van internet is ingeschakeld
monitoring
Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Monitoring) β Verifieer BlockContentExecutionFromInternet is 1.
monitor: Policy compliance (moet zijn 100%), Macro-based malware incidents (zou moeten zijn nabij zero)
Compliance en Auditing
DISA STIG O365-WD-000001 - MANDATORY
CIS Microsoft 365 Benchmark - Critical control
BIO 12.02 - Bescherming tegen malware
ISO 27001 A.8.7
NIS2 Artikel 21
Essential Eight (Australia) - Maturity Level 1
Remediatie
Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Remediation) β Herstellen.
Compliance & Frameworks
CIS M365: Control Office Security (L1) - Blokkeer macros van internet - CRITICAL
BIO: 12.02.01 - Bescherming tegen malware - Macro blocking
ISO 27001:2022: A.8.7 - bescherming against malware
NIS2: Artikel - Malware prevention
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
<#
.SYNOPSIS
Blokkeert macros van internet bestanden in Word
.DESCRIPTION
Dit script implementeert CIS control O365-WD-000001 voor het blokkeren van macros in
Word bestanden van het internet in Microsoft Word. Dit voorkomt uitvoering van potentieel
schadelijke macros uit niet-vertrouwde bronnen.
.REQUIREMENTS
- PowerShell 5.1 of hoger
- Lokale administrator rechten voor registry wijzigingen
- Microsoft Word geΓ―nstalleerd
.PARAMETER Monitoring
Controleert de huidige compliance status
.PARAMETER Remediation
Past de aanbevolen configuratie toe
.PARAMETER Revert
Herstelt de originele configuratie
.PARAMETER WhatIf
Toont wat er zou gebeuren zonder wijzigingen door te voeren
.EXAMPLE
.\block-macros-from-internet.ps1 -Monitoring
Controleert of macros van internet zijn geblokkeerd
.EXAMPLE
.\block-macros-from-internet.ps1 -Remediation
Blokkeert macros van internet bestanden
.NOTES
Registry pad: HKCU:\Software\Policies\Microsoft\Office\16.0\Word\Security\TrustCenter
Waarde: BlockContentExecutionFromInternet = 1
CIS Control: O365-WD-000001
DISA STIG: Microsoft Office 365 ProPlus v3r3
#>#Requires -Version 5.1param(
[switch]$Monitoring,
[switch]$Remediation,
[switch]$Revert,
[switch]$WhatIf
)
# Globale variabelen$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Word\Security\TrustCenter"
$ValueName = "BlockContentExecutionFromInternet"
$ExpectedValue = 1$ControlID = "O365-WD-000001"
functionTest-Compliance {
try {
if (-not (Test-Path$RegistryPath)) {
return$false
}
$currentValue = Get-ItemProperty -Path $RegistryPath -Name $ValueName -ErrorAction SilentlyContinue
return ($currentValue -and $currentValue.$ValueName -eq $ExpectedValue)
}
catch {
return$false
}
}
function Invoke-Monitoring {
Write-Host "Monitoring ${ControlID}: Macros van internet blokkeren" -ForegroundColor Green
try {
if (-not (Test-Path$RegistryPath)) {
Write-Host "β Registry pad bestaat niet: $RegistryPath" -ForegroundColor Red
return$false
}
$currentValue = Get-ItemProperty -Path $RegistryPath -Name $ValueName -ErrorAction SilentlyContinue
if ($currentValue -and $currentValue.$ValueName -eq $ExpectedValue) {
Write-Host "β Control compliant: ${ValueName} = $ExpectedValue" -ForegroundColor Green
return$true
}
else {
$actualValue = if ($currentValue) { $currentValue.$ValueName } else { "Not Set" }
Write-Host "β Control non-compliant: ${ValueName} = $actualValue (Expected: $ExpectedValue)" -ForegroundColor Red
return$false
}
}
catch {
Write-Host "β Fout bij controleren registry instelling: $($_.Exception.Message)" -ForegroundColor Red
return$false
}
}
function Invoke-Remediation {
Write-Host "Remediating ${ControlID}: Macros van internet blokkeren" -ForegroundColor Yellow
try {
if ($WhatIf) {
Write-Host "WhatIf: Zou registry waarde instellen: ${ValueName} = $ExpectedValue" -ForegroundColor Cyan
return$true
}
if (-not (Test-Path$RegistryPath)) {
Write-Host "Registry pad aanmaken: $RegistryPath" -ForegroundColor Yellow
New-Item -Path $RegistryPath -Force | Out-Null
}
Set-ItemProperty -Path $RegistryPath -Name $ValueName -Value $ExpectedValue -Type DWord -Force
Write-Host "β Registry waarde succesvol ingesteld: ${ValueName} = $ExpectedValue" -ForegroundColor Green
Start-Sleep -Seconds 1return Invoke-Monitoring
}
catch {
Write-Host "β Fout bij configureren registry instelling: $($_.Exception.Message)" -ForegroundColor Red
return$false
}
}
function Invoke-Revert {
Write-Host "Reverting ${ControlID}: Macros van internet blokkering herstellen" -ForegroundColor Yellow
try {
if ($WhatIf) {
Write-Host "WhatIf: Zou registry waarde verwijderen: ${ValueName}" -ForegroundColor Cyan
return$true
}
if (Test-Path$RegistryPath) {
Remove-ItemProperty -Path $RegistryPath -Name $ValueName -ErrorAction SilentlyContinue
Write-Host "β Registry waarde verwijderd: ${ValueName}" -ForegroundColor Green
}
return$true
}
catch {
Write-Host "β Fout bij herstellen registry instelling: $($_.Exception.Message)" -ForegroundColor Red
return$false
}
}
# Hoofd uitvoeringtry {
if ($Monitoring) {
$result = Invoke-Monitoring
exit $(if ($result) { 0 } else { 1 })
}
elseif ($Remediation) {
$result = Invoke-Remediation
exit $(if ($result) { 0 } else { 1 })
}
elseif ($Revert) {
$result = Invoke-Revert
exit $(if ($result) { 0 } else { 1 })
}
else {
Write-Host "Gebruik: .\block-macros-from-internet.ps1 [-Monitoring] [-Remediation] [-Revert] [-WhatIf]" -ForegroundColor Yellow
Write-Host " -Monitoring: Controleer huidige compliance status" -ForegroundColor White
Write-Host " -Remediation: Pas aanbevolen configuratie toe" -ForegroundColor White
Write-Host " -Revert: Herstel originele configuratie" -ForegroundColor White
Write-Host " -WhatIf: Toon wat er zou gebeuren" -ForegroundColor White
Write-Host ""
Write-Host "Handmatige configuratie:" -ForegroundColor Cyan
Write-Host "Group Policy: User Configuration > Administrative Templates > Microsoft Word 2016" -ForegroundColor White
Write-Host "> Word Options > Security > Trust Center" -ForegroundColor White
Write-Host "> Block macros from running in Office files from the internet: Enabled" -ForegroundColor White
}
}
catch {
Write-Host "β Onverwachte fout: $($_.Exception.Message)" -ForegroundColor Red
exit 1
}
Risico zonder implementatie
Risico zonder implementatie
Critical: KRITIEK - HOOGSTE PRIORITEIT: Word macros van internet is #1 ransomware vector samen met Excel. Emotet, TrickBot, Dridex allemaal gestart via Word macros. Zonder blocking highly vulnerable. DISA STIG MANDATORY.
Management Samenvatting
Blokkeer MACROS van INTERNET in Word. Standaard sinds April 2022 maar dwing af via policy. Stops 70% Office malware. DISA STIG O365-WD-000001 MANDATORY. Voldoet aan BIO 12.02, ISO 27001 A.8.7, NIS2, Essential Eight. Implementatie: 2-6 uur. KRITIEKE RANSOMWARE PREVENTION - HOOGSTE PRIORITEIT.