PowerPoint Macros Van Internet Geblokkeerd

πŸ’Ό Management Samenvatting

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

  1. PowerPoint (M365 Apps 2203+)
  2. 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

  1. DISA STIG O365-PT-000007
  2. BIO 12.02
  3. ISO 27001 A.8.7

Remediatie

Gebruik PowerShell-script block-macros-from-internet.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
<# .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.1 param( [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" function Test-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 1 return 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 uitvoering try { 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.