Anti-Malware Policies Design

💼 Management Samenvatting

Anti-malwarebeleid in Exchange Online vormt de eerste verdedigingslinie tegen schadelijke e-mailbijlagen en voorkomt dat ransomware, spyware en andere malware uw organisatie binnendringen via het meest gebruikte communicatiekanaal.

Aanbeveling
IMPLEMENTEER EEN STRAK GEDEFINIEERD ANTI-MALWAREBELEID VOOR ALLE E-MAIL
Risico zonder
Critical
Risk Score
9/10
Implementatie
6u (tech: 4u)
Van toepassing op:
Exchange Online
Defender voor Office 365

Zonder goed ingericht anti-malwarebeleid kan één enkele kwaadaardige bijlage leiden tot grootschalige besmetting van werkstations, versleuteling van vertrouwelijke bestanden, langdurige uitval van kritieke processen en meldplichten richting toezichthouders. Voor Nederlandse overheidsorganisaties betekent dit niet alleen operationele verstoring, maar ook mogelijke overtredingen van de BIO en de AVG, verlies van vertrouwen bij burgers en een aantasting van de bestuurlijke geloofwaardigheid.

PowerShell Modules Vereist
Primary API: Exchange Online PowerShell
Connection: Connect-ExchangeOnline
Required Modules: ExchangeOnlineManagement

Implementatie

Dit ontwerpdocument beschrijft hoe u in Exchange Online en Defender voor Office 365 een robuust anti-malwarebeleid opzet dat aansluit op de "Nederlandse Baseline voor Veilige Cloud". U leert welke beleidsinstellingen minimaal vereist zijn, hoe u deze stapsgewijs implementeert, hoe u continu monitort op effectiviteit en hoe u beleid tijdig bijstelt wanneer dreigingen veranderen. De nadruk ligt op praktische inrichting van functies zoals het algemene anti-malwarebeleid, het filteren van risicovolle bestandstypen, Zero-hour Auto Purge (ZAP), Safe Attachments en quarantainebeleid, zodat e-mailverkeer structureel wordt beschermd binnen de kaders van BIO 14.02.

Vereisten

Voor een effectief anti-malwarebeleid in de cloud is het noodzakelijk dat uw organisatie gebruikmaakt van Exchange Online als primaire e-mailvoorziening en beschikt over de bijbehorende beheertoegang via het Microsoft 365-beheercentrum en Exchange Online PowerShell. Daarnaast moeten beheerdersrechten en verantwoordelijkheden helder zijn belegd: wie mag beleid aanpassen, wie beoordeelt quarantaine-items en wie onderhoudt contact met de security- en compliancefuncties binnen de organisatie. Een basislicentie met Exchange Online Protection (EOP) is vereist voor het standaard anti-malwarebeleid; voor geavanceerde scenario's zoals detonaties in een sandboxomgeving is Defender voor Office 365 nodig. Tot slot is het belangrijk dat er een vastgesteld informatiebeveiligingsbeleid bestaat waarin e-mailbeveiliging, malwarebescherming en BIO 14.02 expliciet zijn uitgewerkt, zodat de technische inrichting in Exchange Online direct kan worden gekoppeld aan bestuurlijke afspraken en risicobeoordelingen.

Implementatie

De implementatie van een volwassen anti-malwarebeleid in Exchange Online begint met het configureren van het standaard anti-malwarebeleid in Exchange Admin Center. Start met het controleren van het bestaande globale beleid en pas dit aan zodat alle inkomende, uitgaande en interne e-mailberichten worden gescand op bekende malwarehandtekeningen en verdachte gedragingen. Activeer vervolgens het filter voor veelvoorkomende risicovolle bestandstypen, zoals uitvoerbare bestanden (.exe, .vbs, .js), gecomprimeerde archieven met potentieel schadelijke inhoud en macro-geactiveerde Office-documenten. Kies er bewust voor om deze bijlagen standaard te blokkeren of in quarantaine te plaatsen, in plaats van ze slechts te markeren, zodat eindgebruikers niet zelf hoeven te beslissen over potentieel gevaarlijke content. Vervolgens schakelt u Zero-hour Auto Purge (ZAP) in. ZAP analyseert reeds afgeleverde berichten opnieuw wanneer Microsoft nieuwe informatie over een dreiging ontvangt en verwijdert berichten alsnog automatisch uit postvakken als ze achteraf als malware worden aangemerkt. Dit is essentieel bij snel veranderende dreigingscampagnes zoals ransomwaregolfen. Wanneer uw organisatie beschikt over Defender voor Office 365, configureert u daarnaast Safe Attachments-beleid. Hierbij worden bijlagen in een afgeschermde sandboxomgeving geopend en geanalyseerd voordat de e-mail bij de gebruiker wordt afgeleverd. Afhankelijk van de gekozen modus kunnen verdachte berichten worden geblokkeerd, in quarantaine geplaatst of alleen worden gelogd. Documenteer elke beleidskeuze en zorg dat deze aansluit op het risicoprofiel en de wettelijke verplichtingen van uw organisatie, zodat de inrichting zowel technisch effectief als bestuurlijk verdedigbaar is.

Gebruik PowerShell-script anti-malware-policies.ps1 (functie Invoke-Monitoring) – Monitoren.

monitoring

Na implementatie van anti-malwarebeleid is structurele monitoring noodzakelijk om te beoordelen of de gekozen instellingen daadwerkelijk aansluiten op het dreigingsbeeld en de praktijk van de organisatie. In de beveiligingsportal van Microsoft 365 biedt Threat Explorer (of Real-time detections) diepgaand inzicht in gedetecteerde malwarecampagnes, de gebruikte aanvalsvectoren en de getroffen gebruikersaccounts. Beveiligingsteams kunnen hier analyseren welke soorten bijlagen het vaakst worden geblokkeerd, welke verzenddomeinen of IP-adressen herhaaldelijk malafide content aanbieden en of bepaalde organisatieonderdelen opvallend vaak doelwit zijn. Deze informatie vormt de basis voor het aanscherpen van blokkade- en quarantaineregels, het bijstellen van uitzonderingen en het verbeteren van bewustwordingscampagnes. Naast Threat Explorer is het raadzaam om rapportages in te richten voor management en CISO-functies, bijvoorbeeld maandelijkse overzichten met aantallen gedetecteerde malwareberichten, trends in dreigingscampagnes en de doorlooptijd van behandeling door analisten. Door anti-malwaredata te koppelen aan incidentregistratiesystemen ontstaat een compleet beeld van de effectiviteit van de getroffen maatregelen. Bij afwijkingen, zoals een plotselinge toename van bijna-missers of meldingen van gebruikers over verdachte bijlagen die toch zijn doorgelaten, moet een herbeoordeling van het beleid worden gestart. Monitoring is daarmee geen eenmalige controle, maar een continu proces waarin technische signalen, gebruikersmeldingen en risicorapportages samenkomen.

Gebruik PowerShell-script anti-malware-policies.ps1 (functie Invoke-Monitoring) – Controleren.

Remediatie

Wanneer monitoring uitwijst dat bepaalde typen malware toch door de filters zijn geglipt, of wanneer nieuwe dreigingscampagnes worden ontdekt, moet het anti-malwarebeleid doelgericht worden aangepast. Remediatie begint met het analyseren van het incident: welke bijlagen zijn afgeleverd, welke gebruikers zijn getroffen, welke beveiligingssignalen zijn eventueel genegeerd en welke beleidsregels waren actief ten tijde van de aanval. Op basis daarvan worden bestaande beleidsinstellingen bijgewerkt, bijvoorbeeld door extra bestandstypen te blokkeren, strengere Safe Attachments-acties te kiezen of uitzonderingsregels te herzien die onbedoeld een opening hebben gecreëerd. Ook kunnen aanvullende waarschuwingen en meldingen richting beheerders worden geconfigureerd, zodat toekomstige afwijkingen sneller aan het licht komen. Naast technische aanpassingen is remediatie ook een organisatorisch proces. Betrokken teams, zoals SOC, IT-beheer en informatiebeveiliging, evalueren samen de impact en bepalen welke structurele verbeteringen noodzakelijk zijn. Denk aan extra training voor gebruikers over verdachte bijlagen, het aanscherpen van procedures rond het melden van security-incidenten en het actualiseren van het informatiebeveiligingsbeleid. Door iedere aanval of bijna-misser te vertalen naar concrete verbeteracties in beleid, processen en techniek, groeit de weerbaarheid van de organisatie en wordt stap voor stap voldaan aan de eisen van de BIO op het gebied van malwarebescherming.

Gebruik PowerShell-script anti-malware-policies.ps1 (functie Invoke-Remediation) – Herstellen.

Compliance en Auditing

Anti-malwarebeleid in Exchange Online heeft een directe relatie met de naleving van de BIO, in het bijzonder paragraaf 14.02 over bescherming tegen malware. Voor auditors en interne toezichthouders is het cruciaal dat de inrichting van beleid niet alleen technisch op orde is, maar ook aantoonbaar wordt vastgelegd. Dit betekent dat de organisatie beschrijft welke beleidsregels zijn geconfigureerd, welke risicobeoordeling daaraan ten grondslag ligt, hoe vaak instellingen worden herzien en op welke wijze monitoring en rapportage zijn georganiseerd. Documenteer bijvoorbeeld welke bestandstypen standaard worden geblokkeerd, hoe Zero-hour Auto Purge en Safe Attachments zijn geconfigureerd en welke procedures gelden voor het beoordelen van quarantaine-items. Tijdens audits moet de organisatie kunnen laten zien dat het anti-malwarebeleid structureel wordt bijgehouden en aansluit op het algemene informatiebeveiligingsbeleid en de risicobereidheid van het bestuur. Logs uit Threat Explorer, rapportages over geblokkeerde malware en vastgelegde incidentevaluaties vormen daarbij belangrijke bewijsmiddelen. Door deze gegevens gestructureerd te archiveren en te koppelen aan formele besluitvorming (bijvoorbeeld notulen van het informatiebeveiligingsoverleg) ontstaat een helder auditspoor. Hiermee toont de organisatie aan dat zij niet alleen technisch in staat is om malware te blokkeren, maar dit ook doet binnen een gecontroleerd, aantoonbaar en herhaalbaar kader dat voldoet aan Nederlandse wet- en regelgeving.

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 Anti-Malware Policies Design .DESCRIPTION Anti-malware: Common attachments filter (block .exe/.bat/.cmd/.scr), malware notifications (admins notified), malware filter (enabled, cannot bypass), action (delete message, notify recipients/sender). .NOTES Filename: anti-malware-policies.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-10-15 Last Modified: 2025-10-15 Version: 1.0 Related JSON: content/design/security/anti-malware-policies.json Category: security Workload: design .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\anti-malware-policies.ps1 -Monitoring Check compliance status .EXAMPLE .\anti-malware-policies.ps1 -Remediation Apply configuration #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter()] [switch]$Monitoring, [Parameter()] [switch]$Remediation, [Parameter()] [switch]$Revert, [Parameter()] [switch]$WhatIf ) $ErrorActionPreference = 'Stop' # ============================================================================ # HEADER # ============================================================================ Write-Host " ========================================" -ForegroundColor Cyan Write-Host "Anti-Malware Policies Design" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "======================================== " -ForegroundColor Cyan # ============================================================================ # FUNCTIONS # ============================================================================ function Test-Compliance { <# .SYNOPSIS Tests if current configuration is compliant #> [CmdletBinding()] param() return Invoke-Monitoring } function Invoke-Monitoring { <# .SYNOPSIS Monitors current configuration status #> [CmdletBinding()] param() Write-Host " Monitoring:" -ForegroundColor Yellow # Design document - no API calls $policies = Get-MalwareFilterPolicy; $compliantPolicies = @(); $nonCompliantPolicies = @(); foreach ($policy in $policies) { $isCompliant = ($policy.EnableInternalSenderAdminNotifications -eq $true -and $policy.InternalSenderAdminAddress -and $policy.InternalSenderAdminAddress.Count -gt 0); if ($isCompliant) { $compliantPolicies += [PSCustomObject]@{ PolicyName = $policy.Name; Enabled = $policy.EnableInternalSenderAdminNotifications; Addresses = ($policy.InternalSenderAdminAddress -join ', ') } } else { $nonCompliantPolicies += [PSCustomObject]@{ PolicyName = $policy.Name; Enabled = $policy.EnableInternalSenderAdminNotifications; Addresses = ($policy.InternalSenderAdminAddress -join ', ') } } }; @{ isCompliant = ($compliantPolicies.Count -gt 0); totalPolicies = $policies.Count; compliantPolicies = $compliantPolicies; nonCompliantPolicies = $nonCompliantPolicies; message = if ($compliantPolicies.Count -gt 0) { "$($compliantPolicies.Count) policy/policies have internal sender notifications enabled" } else { 'No policies have internal sender notifications enabled (non-compliant)' } } } function Invoke-Remediation { <# .SYNOPSIS Applies recommended configuration #> [CmdletBinding()] param() Write-Host " Remediation:" -ForegroundColor Yellow # Design document - no API calls $modulesFile = Join-Path $global:PSScriptRoot "..\..\..\Customers\$global:CustomerName\modules.json"; if (-not (Test-Path $modulesFile)) { throw "Modules file not found: $modulesFile" }; $modules = Get-Content $modulesFile -Raw | ConvertFrom-Json; $alertEmail = $modules.'customer-settings'.'security-alert-email'; if ([string]::IsNullOrWhiteSpace($alertEmail)) { throw 'security-alert-email not configured in modules.json' }; $policies = Get-MalwareFilterPolicy; $updatedCount = 0; foreach ($policy in $policies) { try { Set-MalwareFilterPolicy -Identity $policy.Name -EnableInternalSenderAdminNotifications $true -InternalSenderAdminAddress $alertEmail -ErrorAction Stop; Write-Host "Enabled notifications for: $($policy.Name) -> $alertEmail" -ForegroundColor Green; $updatedCount++ } catch { Write-Warning "Failed to update $($policy.Name): $($_.Exception.Message)" } }; Write-Host "`nREMEDIATION SUMMARY:" -ForegroundColor Cyan; Write-Host " Updated: $updatedCount policy/policies" -ForegroundColor Green } function Invoke-Revert { <# .SYNOPSIS Reverts configuration to previous state #> [CmdletBinding()] param() Write-Host " Revert:" -ForegroundColor Yellow Write-Host "Reverting configuration..." -ForegroundColor Yellow Write-Host "Manual revert required - see JSON documentation" -ForegroundColor Gray } # ============================================================================ # MAIN EXECUTION # ============================================================================ try { if ($Revert) { if ($WhatIf) { Write-Host "WhatIf: Would revert configuration" -ForegroundColor Yellow } else { Invoke-Revert } } elseif ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "WhatIf: Would apply remediation" -ForegroundColor Yellow } else { Invoke-Remediation } } else { Write-Host "Available parameters:" -ForegroundColor Yellow Write-Host " -Monitoring : Check current status" -ForegroundColor Gray Write-Host " -Remediation : Apply configuration" -ForegroundColor Gray Write-Host " -Revert : Revert changes" -ForegroundColor Gray Write-Host " -WhatIf : Show what would happen" -ForegroundColor Gray } } catch { Write-Error "Error: $_" throw } finally { Write-Host " ======================================== " -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Critical: Zonder goed ingericht anti-malwarebeleid via Exchange Online Protection en Defender voor Office 365 blijft e-mail het belangrijkste toegangskanaal voor ransomware, trojans en andere schadelijke code. Eén enkele kwaadaardige bijlage kan leiden tot grootschalige besmetting van werkplekken, versleuteling van kritieke dossiers, datalekken met meldplichten bij de Autoriteit Persoonsgegevens en langdurige verstoring van primaire processen. Bovendien voldoet de organisatie dan niet aantoonbaar aan BIO 14.02, waardoor audits ongunstig kunnen uitvallen en bestuurders formeel worden aangesproken op hun zorgplicht. Het restrisico is daarom hoog: zowel operationeel als juridisch en reputatie-technisch.

Management Samenvatting

Richt in Exchange Online een integraal anti-malwarebeleid in dat standaard alle inkomende, uitgaande en interne e-mail scant, risicovolle bestandstypen blokkeert en Zero-hour Auto Purge (ZAP) inschakelt voor het achteraf verwijderen van nieuw ontdekte malware uit postvakken. Breid dit waar mogelijk uit met Safe Attachments uit Defender voor Office 365, zodat bijlagen eerst in een sandbox worden geopend en geanalyseerd voordat gebruikers ze ontvangen. Combineer dit met streng quarantainebeleid, heldere procedures voor beoordeling van verdachte berichten en periodieke rapportages op basis van Threat Explorer. De basisfunctionaliteit via Exchange Online Protection is inbegrepen in de standaardlicenties; geavanceerde sandboxing vergt aanvullende licenties. De implementatie kost doorgaans enkele uren configuratie en afstemming, maar levert een structurele vermindering op van e-mailgerelateerde malware-incidenten en ondersteunt aantoonbare naleving van de BIO.