Het blokkeren van macros in PowerPoint bestanden van internet completeert de Office-wide macro blocking strategie die 70%+ van Office-based malware voorkomt, inclusief ransomware delivery via PowerPoint presentations.
Aanbeveling
IMPLEMENT
Risico zonder
Critical
Risk Score
10/10
Implementatie
3u (tech: 1u)
Van toepassing op:
β PowerPoint β Microsoft 365 Apps
POWERPOINT MACRO ATTACKS: Hoewel minder common dan Word/Excel, PowerPoint macros zijn EQUALLY DANGEROUS: VBA code execution capability, Download malware, Execute PowerShell, Data exfiltration. ATTACK SCENARIOS: Phishing met .pptm attachment ("Q4 Results Presentation") β User downloads/opens β Vroeger: Schakel in Content β Malware. REAL-WORLD: APT campaigns gebruikt PowerPoint macros, Corporate presentations targeted (executives open Zonder suspicion). CONSISTENT POLICY: Blokkeer macros van internet in alle Office apps (Word, Excel, PowerPoint, Access), Complete coverage is no gaps voor attackers.
PowerShell Modules Vereist
Primary API: Intune / Group Policy Connection:Registry Required Modules:
Implementatie
Blokkeer macros: HKCU:\Software\Policies\Microsoft\Office\16.0\PowerPoint\Security\TrustCenter\BlockContentExecutionFromInternet is 1. DISA STIG O365-PT-000007. Standaard sinds April 2022 maar dwing af via policy.
Vereisten
PowerPoint (M365 Apps 2203+)
Intune of GPO
Implementatie
Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Remediation) β Blokkeer PowerPoint macros van internet.
monitoring
Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Monitoring) β Verifieer BlockContentExecutionFromInternet is 1.
Compliance en Auditing
DISA STIG O365-PT-000007
BIO 12.02
ISO 27001 A.8.7
Remediatie
Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Remediation) β Herstellen.
Compliance & Frameworks
BIO: 12.02.01 - Bescherming tegen malware
ISO 27001:2022: A.8.7 - Bescherming tegen malware
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 PowerPoint
.DESCRIPTION
Dit script implementeert CIS control O365-PT-000007 voor het blokkeren van macros in
PowerPoint bestanden van het internet in Microsoft PowerPoint. Dit voorkomt uitvoering van
potentieel schadelijke macros uit niet-vertrouwde bronnen.
.REQUIREMENTS
- PowerShell 5.1 of hoger
- Lokale administrator rechten voor registry wijzigingen
- Microsoft PowerPoint 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\PowerPoint\Security\TrustCenter
Waarde: BlockContentExecutionFromInternet = 1
CIS Control: O365-PT-000007
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\PowerPoint\Security\TrustCenter"
$ValueName = "BlockContentExecutionFromInternet"
$ExpectedValue = 1$ControlID = "O365-PT-000007"
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 (Macros van internet geblokkeerd)" -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 PowerPoint 2016" -ForegroundColor White
Write-Host "> PowerPoint 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: Complete Office macro blocking strategy vereist alle apps (Word, Excel, PowerPoint). PowerPoint macros is code execution. DISA STIG MANDATORY.
Management Samenvatting
Blokkeer PowerPoint macros van internet. Completes Office-wide macro blocking. DISA STIG O365-PT-000007. Implementatie: 1-3 uur. KRITIEKE RANSOMWARE PREVENTION.