Safe Attachments Configuratie: Geavanceerde Instellingen En Optimalisatie

💼 Management Samenvatting

Safe Attachments configuratie omvat het finetunen van geavanceerde instellingen voor sandbox detonation, het optimaliseren van performance parameters, het configureren van specifieke acties per bestandstype, en het afstemmen van security versus gebruikerservaring. Waar Safe Attachments policy configuratie zich richt op het aanmaken van basisbeleidsregels, gaat deze configuratie dieper in op de technische details, geavanceerde opties, performance tuning, en best practices voor verschillende organisatiebehoeften.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
25u (tech: 10u)
Van toepassing op:
M365
Exchange Online
Defender voor Office 365
SharePoint
OneDrive
Teams

Een basis Safe Attachments policy biedt standaard bescherming, maar organisaties hebben verschillende behoeften op basis van hun security posture, gebruikerservaring vereisten, en compliance verplichtingen. Executives en finance teams hebben behoefte aan maximale security met zero tolerance voor malware, terwijl algemene gebruikers baat hebben bij een balans tussen security en productiviteit. Organisaties met hoge volumes van legitieme attachments (bijvoorbeeld juridische documenten, contracten, technische specificaties) moeten false positive rates minimaliseren zonder security te compromitteren. Performance optimalisatie is cruciaal omdat scanning delays gebruikersproductiviteit kunnen beïnvloeden, vooral bij grote bestanden of tijdens piekuren. Geavanceerde configuratie maakt het mogelijk om verschillende action modes te gebruiken voor verschillende scenario's, specifieke bestandstypen te whitelisten of extra te scannen, timeout waarden te optimaliseren, en redirect configuraties te finetunen voor security team workflows. Zonder geavanceerde configuratie kunnen organisaties te maken krijgen met onnodige scanning delays, false positives die business processen verstoren, of onvoldoende bescherming voor high-risk gebruikers.

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

Implementatie

Safe Attachments configuratie omvat zes primaire configuratiegebieden: (1) Action Mode Optimalisatie - configureert verschillende action modes (Block, Dynamic Delivery, Replace, Monitor) voor verschillende gebruikersgroepen of scenario's, waarbij executives en finance teams Block mode krijgen voor maximale security, algemene gebruikers Dynamic Delivery voor balans tussen security en productiviteit, en testomgevingen Monitor mode voor validatie zonder impact, (2) Bestandstype Specifieke Configuratie - configureert scanning gedrag per bestandstype waarbij executables (.exe, .bat, .ps1) altijd worden geblokkeerd of extra gescand, Office documenten (.docx, .xlsx, .pptx) worden gescand met macro detection, PDF bestanden worden geanalyseerd op embedded links en JavaScript, en ZIP/RAR archives worden uitgepakt en individuele bestanden gescand, (3) Performance Optimalisatie - configureert timeout waarden voor verschillende bestandstypen (bijvoorbeeld 30 seconden voor kleine Office documenten, 120 seconden voor grote ZIP archives), parallel scanning voor meerdere attachments in één email, en caching van scan resultaten voor identieke bestanden, (4) Redirect en Notification Configuratie - configureert automatische forwarding van detected malware naar security team email voor analysis, custom notification templates voor gebruikers wanneer attachments worden geblokkeerd, en integration met SIEM systemen voor logging en alerting, (5) SharePoint, OneDrive en Teams Configuratie - configureert aparte scanning policies voor collaboration tools waarbij SharePoint document libraries worden gescand bij upload, OneDrive bestanden worden gescand bij sync, en Teams bestanden worden gescand bij delen, met mogelijkheid voor real-time blocking of post-upload scanning, en (6) Advanced Threat Detection Tuning - configureert sensitivity levels voor behavioral analysis, whitelisting van vertrouwde senders of domains, exception handling voor business-critical bestandstypen, en integration met Microsoft Defender Threat Intelligence voor enhanced detection. Alle configuratie wordt uitgevoerd via Microsoft 365 Defender portal onder Email & collaboration → Threat policies → Safe Attachments, of via PowerShell met ExchangeOnlineManagement module voor automation en bulk configuratie.

Vereisten en Voorbereiding

Voor geavanceerde Safe Attachments configuratie zijn de volgende voorwaarden en voorbereidingen vereist: Microsoft Defender voor Office 365 Plan 2 licentie (aanbevolen) of Plan 1 voor basis functionaliteit, waarbij Plan 2 toegang geeft tot geavanceerde features zoals Dynamic Delivery en uitgebreide reporting, Exchange Administrator of Security Administrator rol voor policy configuratie en management, PowerShell 5.1+ met ExchangeOnlineManagement module versie 3.0 of hoger voor automation en bulk configuratie, comprehensive security policy documentatie die beschrijft welke security levels nodig zijn voor verschillende gebruikersgroepen en welke bestandstypen business-critical zijn, gebruikersgroep inventarisatie met identificatie van executives, finance team, IT admins, en andere high-risk gebruikers die stricter protection nodig hebben, bestandstype analyse die identificeert welke bestandstypen het meest worden gebruikt en welke false positive risico's hebben, performance baseline meting om huidige email delivery tijden te meten voordat geavanceerde configuratie wordt toegepast, security team email adres voor malware redirects en notification workflows, SIEM integration requirements voor logging en alerting van detected malware, user communication plan om gebruikers te informeren over Dynamic Delivery placeholders, scanning delays, en hoe ze kunnen rapporteren over false positives, testing plan om te valideren dat business-critical attachments niet false positive worden geblokkeerd en dat performance acceptabel blijft, incident response procedures voor hoe security team reageert op detected malware en false positive escalaties, en compliance mapping documentatie die beschrijft hoe geavanceerde configuratie voldoet aan NIS2, ISO 27001, BIO en AVG requirements.

Daarnaast is het essentieel om vooraf een risicoanalyse uit te voeren die identificeert welke gebruikers en processen het meest kwetsbaar zijn voor malware aanvallen en welke bestandstypen het meest worden gebruikt in de organisatie. Executives en finance teams zijn primaire targets voor targeted malware aanvallen en hebben behoefte aan maximale security, terwijl algemene gebruikers baat hebben bij een balans tussen security en productiviteit. Deze risicoanalyse vormt de basis voor het definiëren van verschillende action modes per gebruikersgroep en het instellen van bestandstype specifieke configuraties.

Action Mode Optimalisatie per Gebruikersgroep

Action mode optimalisatie maakt het mogelijk om verschillende security levels te configureren voor verschillende gebruikersgroepen op basis van hun risicoprofiel en business requirements. Voor executives en finance teams wordt Block mode aanbevolen waarbij detected malware volledig wordt geblokkeerd en de email wordt gequarantined. Deze aanpak biedt maximale security maar kan impact hebben op gebruikerservaring als false positives optreden. Voor algemene gebruikers wordt Dynamic Delivery mode aanbevolen waarbij emails onmiddellijk worden afgeleverd met een placeholder voor de attachment, de attachment wordt gescand in de achtergrond, en de attachment wordt automatisch vervangen wanneer de scan is voltooid en het bestand veilig is. Deze aanpak balanceert security en productiviteit door gebruikers niet te laten wachten op scan resultaten terwijl security wordt gewaarborgd.

Voor testomgevingen of tijdens initial deployment kan Monitor mode worden gebruikt waarbij emails worden afgeleverd maar detecties worden gelogd voor analysis zonder impact op gebruikers. Deze mode is alleen geschikt voor testing en validatie, niet voor productie. Replace mode verwijdert de malicious attachment maar levert de email body af met een notification, wat nuttig kan zijn voor scenario's waarbij de email content belangrijk is maar de attachment risicovol is. Configuratie wordt uitgevoerd via het aanmaken van meerdere Safe Attachments policies met verschillende action modes en het toewijzen van deze policies aan specifieke gebruikersgroepen via Safe Attachments rules.

Best practices voor action mode configuratie omvatten het starten met Dynamic Delivery voor algemene gebruikers om gebruikerservaring te optimaliseren, het gebruik van Block mode voor high-risk gebruikers zoals executives en finance teams, het regelmatig monitoren van false positive rates en het aanpassen van action modes indien nodig, het communiceren van action modes naar gebruikers zodat zij weten wat te verwachten, en het documenteren van rationale voor elke action mode keuze voor audit doeleinden.

Bestandstype Specifieke Configuratie

Bestandstype specifieke configuratie maakt het mogelijk om scanning gedrag te optimaliseren per bestandstype op basis van risicoprofiel en business requirements. Executables (.exe, .bat, .cmd, .ps1, .vbs, .js) hebben het hoogste risico en moeten altijd worden geblokkeerd of extra worden gescand, ongeacht de afzender. Office documenten (.docx, .xlsx, .pptx, .doc, .xls, .ppt) worden gescand met macro detection, embedded object analysis, en behavioral analysis in de sandbox om macro-based malware te detecteren. PDF bestanden worden geanalyseerd op embedded links, JavaScript code, en form submissions die kunnen leiden tot credential harvesting of malware downloads.

ZIP en RAR archives worden automatisch uitgepakt en individuele bestanden worden gescand, waarbij password-protected archives worden gemarkeerd als verdacht omdat ze niet kunnen worden gescand. Image bestanden (.jpg, .png, .gif) hebben over het algemeen laag risico maar kunnen worden gebruikt voor steganography of bevatten embedded scripts in metadata, waardoor basis scanning wordt aanbevolen. Script bestanden (.ps1, .bat, .sh) hebben hoog risico en moeten altijd worden geblokkeerd of extra worden gescand, zelfs van vertrouwde afzenders.

Configuratie wordt uitgevoerd via het definiëren van bestandstype specifieke regels in Safe Attachments policies, waarbij executables altijd worden geblokkeerd, Office documenten worden gescand met enhanced detection, en andere bestandstypen worden behandeld volgens hun risicoprofiel. Whitelisting van specifieke bestandstypen wordt niet aanbevolen tenzij absoluut noodzakelijk voor business operations, en zelfs dan moet worden overwogen om alternatieve security controls te implementeren.

Performance Optimalisatie en Timeout Configuratie

Gebruik PowerShell-script safe-attachments-configuration.ps1 (functie Invoke-Remediation) – Configureert geavanceerde Safe Attachments instellingen met performance optimalisatie, timeout configuratie, en bestandstype specifieke settings.

Performance optimalisatie is cruciaal omdat scanning delays gebruikersproductiviteit kunnen beïnvloeden, vooral bij grote bestanden of tijdens piekuren. Timeout configuratie maakt het mogelijk om verschillende timeout waarden te configureren voor verschillende bestandstypen, waarbij kleine Office documenten (minder dan 5MB) een timeout van 30 seconden krijgen, middelgrote bestanden (5-50MB) een timeout van 60 seconden, en grote bestanden (meer dan 50MB) een timeout van 120 seconden. Deze timeouts moeten worden afgestemd op de gemiddelde bestandsgroottes in de organisatie en de acceptabele delay voor gebruikers.

Parallel scanning maakt het mogelijk om meerdere attachments in één email gelijktijdig te scannen in plaats van sequentieel, wat de totale scanning tijd aanzienlijk kan verkorten voor emails met meerdere bijlagen. Caching van scan resultaten voor identieke bestanden voorkomt onnodige herscanning van bestanden die al eerder zijn gescand, wat vooral nuttig is voor organisaties die regelmatig dezelfde bestanden delen. Dynamic Delivery mode elimineert user-facing delays door emails onmiddellijk af te leveren met placeholders, waardoor gebruikers niet hoeven te wachten op scan resultaten.

Best practices voor performance optimalisatie omvatten het gebruik van Dynamic Delivery mode voor algemene gebruikers om user-facing delays te elimineren, het configureren van realistische timeout waarden op basis van gemiddelde bestandsgroottes, het monitoren van scanning performance en het aanpassen van timeouts indien nodig, het gebruik van parallel scanning voor emails met meerdere attachments, en het communiceren van verwachte delays naar gebruikers zodat zij weten wat te verwachten.

Redirect en Notification Configuratie

Redirect configuratie maakt het mogelijk om detected malware automatisch door te sturen naar een security team email adres voor analysis, wat essentieel is voor threat intelligence en incident response. Configureer redirect door de optie 'Redirect messages with detected malware' in te schakelen in de Safe Attachments policy en het security team email adres op te geven. Deze configuratie zorgt ervoor dat alle detected malware samples worden doorgestuurd naar het security team voor analysis, waardoor threat intelligence wordt verzameld en IOCs kunnen worden geëxtraheerd voor gebruik in andere security controls.

Notification configuratie maakt het mogelijk om custom notification templates te configureren voor gebruikers wanneer attachments worden geblokkeerd, waarbij de notification duidelijk uitlegt waarom de attachment is geblokkeerd, wat de gebruiker kan doen (bijvoorbeeld contact opnemen met IT support), en hoe false positives kunnen worden gerapporteerd. Deze notifications moeten respectvol en ondersteunend zijn om gebruikers niet te ontmoedigen maar juist te motiveren om security best practices te volgen.

SIEM integration maakt het mogelijk om detected malware events te loggen naar SIEM systemen voor centralized logging en alerting, wat essentieel is voor security operations en compliance. Configureer SIEM integration via Microsoft Graph API of via Microsoft Sentinel connectors om Safe Attachments events te exporteren naar SIEM systemen voor analysis en alerting.

SharePoint, OneDrive en Teams Configuratie

Safe Attachments configuratie voor SharePoint, OneDrive en Teams is essentieel omdat collaboration tools belangrijke attack vectors zijn voor malware distributie. Configureer Safe Attachments voor SharePoint door de optie 'Protect files in SharePoint, OneDrive, and Microsoft Teams' in te schakelen in de Safe Attachments policy. Deze configuratie zorgt ervoor dat bestanden worden gescand bij upload naar SharePoint document libraries, bij sync naar OneDrive, en bij delen in Teams.

Voor SharePoint kunnen twee scanning modes worden geconfigureerd: real-time blocking waarbij bestanden worden geblokkeerd voordat ze beschikbaar zijn voor andere gebruikers, of post-upload scanning waarbij bestanden beschikbaar zijn maar worden gescand in de achtergrond en worden geblokkeerd als malware wordt gedetecteerd. Real-time blocking biedt betere security maar kan impact hebben op gebruikerservaring, terwijl post-upload scanning betere gebruikerservaring biedt maar een korte window creëert waarin malware beschikbaar kan zijn.

Voor OneDrive worden bestanden gescand bij sync naar lokale apparaten, waarbij detected malware wordt geblokkeerd voordat het lokaal wordt opgeslagen. Voor Teams worden bestanden gescand bij delen in chats of kanalen, waarbij detected malware wordt geblokkeerd voordat andere teamleden toegang krijgen. Best practices omvatten het gebruik van real-time blocking voor high-risk SharePoint sites zoals finance of HR document libraries, het gebruik van post-upload scanning voor algemene document libraries om gebruikerservaring te optimaliseren, en het regelmatig monitoren van detected malware in collaboration tools om trends te identificeren.

Monitoring en Effectiviteit Meting

Gebruik PowerShell-script safe-attachments-configuration.ps1 (functie Invoke-Monitoring) – Monitort Safe Attachments configuratie, analyseert performance metrics, en rapporteert over effectiviteit en optimalisatie mogelijkheden.

Continue monitoring van Safe Attachments configuratie is essentieel om performance te optimaliseren, false positives te identificeren, en emerging threat patterns te detecteren. Start met het Microsoft 365 Defender portal dashboard onder Email & collaboration → Threat policies → Safe Attachments → Overview, waar een overzicht wordt getoond van alle geconfigureerde policies, detection statistics, en performance metrics. Review detected malware regelmatig via Security.microsoft.com → Threat management → Review → Quarantine, filter op 'Malware' om alle geblokkeerde malware te zien, en analyseer de detection reasons om te begrijpen welke malware types het meest worden gedetecteerd.

Gebruik Threat Explorer voor gedetailleerde analyse van malware attempts: Navigate naar Security.microsoft.com → Threat Explorer, filter op 'Malware' of 'Safe Attachments' om alle detected malware attempts te zien, analyseer bestandstype patterns om trends te identificeren (bijvoorbeeld welke bestandstypen het meest worden gebruikt voor malware delivery), review scanning performance metrics om te zien of timeouts of delays optreden, en exporteer data voor trendanalyse over meerdere maanden. Monitor false positive rates door quarantined items te analyseren en te identificeren welke legitieme bestanden false positive zijn gemarkeerd, voeg deze bestanden toe aan whitelist entries of adjust policy settings indien nodig.

Meet configuratie effectiviteit door performance metrics te tracken: gemiddelde scanning tijd per bestandstype, percentage van emails met scanning delays langer dan acceptabel, aantal false positives en impact op business operations, detection rates per bestandstype en gebruikersgroep, en user satisfaction metrics zoals support tickets gerelateerd aan Safe Attachments. Voer quarterly reviews uit waarbij configuratie effectiviteit wordt geëvalueerd, policy settings worden getuned op basis van performance data en threat landscape changes, en best practices worden gedeeld met security team en management.

Remediatie en Troubleshooting

Gebruik PowerShell-script safe-attachments-configuration.ps1 (functie Invoke-Remediation) – Herstelt ontbrekende Safe Attachments configuratie of configureert geavanceerde instellingen volgens best practices.

Voor problemen met Safe Attachments configuratie zijn verschillende remediatiestrategieën beschikbaar. Bij performance issues moet worden geanalyseerd welke bestandstypen of gebruikersgroepen de meeste delays ervaren, timeout waarden worden aangepast voor specifieke bestandstypen, Dynamic Delivery mode worden gebruikt voor algemene gebruikers om user-facing delays te elimineren, en parallel scanning worden ingeschakeld voor emails met meerdere attachments. Bij false positive blocking moeten quarantined items worden gereviewd om legitieme bestanden te identificeren die false positive zijn geblokkeerd, whitelist entries worden toegevoegd voor vertrouwde senders of bestandstypen indien absoluut noodzakelijk, policy settings worden aangepast door sensitivity levels te verlagen indien te veel false positives optreden, en business-critical bestandstypen worden geconfigureerd met exception handling.

Voor insufficient protection moet de detection effectiveness worden geanalyseerd om gaps te identificeren, action modes worden geüpgraded door van Dynamic Delivery naar Block te switchen voor high-risk gebruikers, bestandstype specifieke configuratie worden geïmplementeerd voor high-risk bestandstypen, en integration met Microsoft Defender Threat Intelligence worden geconfigureerd voor enhanced detection. Bij configuratie conflicts moeten overlapping policies worden geïdentificeerd en conflicts worden opgelost door policy priority te bepalen en policy hierarchy te documenteren.

Compliance en Framework Mapping

Safe Attachments configuratie vormt een critical component van email security en is essentieel voor compliance met verschillende security frameworks. CIS Microsoft 365 Foundations Benchmark - control 2.1.5 (Zorg ervoor dat Safe Attachments policy is geconfigureerd met geavanceerde instellingen), control 2.1.6 (Safe Attachments is ingeschakeld voor SharePoint, OneDrive en Teams), en control 2.1.7 (Performance optimalisatie is geconfigureerd). BIO Baseline Informatiebeveiliging Overheid - Thema 12.02.01 (Malware bescherming - Sandbox detonation en behavioral analysis), Thema 13.02.01 (Email beveiligingscontroles - Safe Attachments configuratie), en Thema 12.05 (Identity management - Bescherming tegen credential harvesting via malware). ISO 27001:2022 A.8.7 (Malware protection - Advanced threat detection via sandbox analysis), A.13.2.1 (Information transfer policies - Email security controls met Safe Attachments), en A.12.6.1 (Technical vulnerability management - Zero-day protection). NIS2 Artikel 21 (Cybersecurity risicobeheer - Threat detection en prevention maatregelen tegen malware) en Artikel 23 (Incident response - Malware detection capabilities). AVG Artikel 32 (Beveiliging van verwerking - Bescherming tegen malware die kan leiden tot data breaches). Safe Attachments configuratie moet worden behandeld als critical security controls die regelmatig worden gereviewd, getest en geüpdatet op basis van emerging threats en performance data. Alle configuratie wijzigingen moeten worden gelogd voor audit doeleinden en configuratie effectiviteit moet worden gemeten via detection rates, false positive rates, en performance metrics.

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 Safe Attachments Configuration: Geavanceerde Instellingen en Optimalisatie .DESCRIPTION Configureert geavanceerde Safe Attachments instellingen met action mode optimalisatie, bestandstype specifieke configuratie, performance optimalisatie, en monitoring. Focus op finetuning van security versus gebruikerservaring. .NOTES Filename: safe-attachments-configuration.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-01-27 Last Modified: 2025-01-27 Version: 1.0 Related JSON: content/m365/defender-email/safe-attachments-configuration.json Requires: Microsoft Defender for Office 365 Plan 1 or 2 .LINK https://github.com/[org]/m365-tenant-best-practise .EXAMPLE .\safe-attachments-configuration.ps1 -Monitoring Controleert geavanceerde Safe Attachments configuratie en rapporteert over performance en effectiviteit .EXAMPLE .\safe-attachments-configuration.ps1 -Remediation Configureert geavanceerde Safe Attachments instellingen volgens best practices .EXAMPLE .\safe-attachments-configuration.ps1 -DebugMode Voert een lokale debug-run uit met voorbeeldresultaten zonder verbinding met Microsoft 365 #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param( [Parameter(HelpMessage = "Voer monitoring uit op Safe Attachments configuratie")] [switch]$Monitoring, [Parameter(HelpMessage = "Configureer geavanceerde Safe Attachments instellingen")] [switch]$Remediation, [Parameter(HelpMessage = "Genereer een samenvattend rapport op basis van configuratie status")] [switch]$Report, [Parameter(HelpMessage = "Pad naar het rapportbestand dat moet worden aangemaakt (alleen bij -Report)")] [string]$OutputPath, [Parameter(HelpMessage = "Voer een veilige lokale test uit met voorbeelddata, zonder verbinding met Microsoft 365")] [switch]$DebugMode ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' function Connect-RequiredServices { <# .SYNOPSIS Verbindt met benodigde Microsoft services #> [CmdletBinding()] param() if ($DebugMode) { Write-Verbose "DebugMode: overslaan van verbindingen" return } Write-Verbose "Controleren van ExchangeOnlineManagement module..." $exoModule = Get-Module -ListAvailable -Name "ExchangeOnlineManagement" if (-not $exoModule) { Write-Host " ⚠️ ExchangeOnlineManagement module niet gevonden" -ForegroundColor Yellow Write-Host " Installeer met: Install-Module ExchangeOnlineManagement -Scope CurrentUser" -ForegroundColor Yellow throw "ExchangeOnlineManagement module vereist voor Safe Attachments configuratie" } Write-Verbose "Verbinding maken met Exchange Online..." try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop | Out-Null Write-Verbose "Verbonden met Exchange Online" } catch { Write-Error "Kon niet verbinden met Exchange Online: $_" Write-Host " Vereiste rechten: Exchange Administrator of Security Administrator" -ForegroundColor Yellow throw } } function Get-SafeAttachmentConfiguration { <# .SYNOPSIS Haalt Safe Attachments configuratie op .OUTPUTS PSCustomObject met configuratie details #> [CmdletBinding()] param() if ($DebugMode) { Write-Verbose "DebugMode: retourneren van voorbeelddata" return [PSCustomObject]@{ Policies = @( [PSCustomObject]@{ Name = "Safe Attachments - Executives" Action = "Block" Enable = $true Redirect = "security-team@company.nl" ActionOnError = $true AppliedTo = "Executive Group" }, [PSCustomObject]@{ Name = "Safe Attachments - General Users" Action = "DynamicDelivery" Enable = $true Redirect = "security-team@company.nl" ActionOnError = $true AppliedTo = "All Users" } ) SharePointEnabled = $true OneDriveEnabled = $true TeamsEnabled = $true TotalPolicies = 2 BlockModePolicies = 1 DynamicDeliveryPolicies = 1 } } Write-Verbose "Ophalen van Safe Attachments policies..." try { $policies = Get-SafeAttachmentPolicy -ErrorAction Stop $rules = Get-SafeAttachmentRule -ErrorAction Stop $config = [PSCustomObject]@{ Policies = $policies Rules = $rules SharePointEnabled = $false OneDriveEnabled = $false TeamsEnabled = $false TotalPolicies = $policies.Count BlockModePolicies = ($policies | Where-Object { $_.Action -eq 'Block' }).Count DynamicDeliveryPolicies = ($policies | Where-Object { $_.Action -eq 'DynamicDelivery' }).Count ReplaceModePolicies = ($policies | Where-Object { $_.Action -eq 'Replace' }).Count MonitorModePolicies = ($policies | Where-Object { $_.Action -eq 'Monitor' }).Count } # Check SharePoint/OneDrive/Teams protection (requires additional API calls) # This is a simplified check - actual implementation may require Graph API Write-Verbose "Controleren van SharePoint/OneDrive/Teams configuratie..." return $config } catch { Write-Error "Fout bij ophalen van Safe Attachments configuratie: $_" throw } } function Test-SafeAttachmentConfiguration { <# .SYNOPSIS Test of Safe Attachments configuratie is geoptimaliseerd .OUTPUTS PSCustomObject met compliance resultaten #> [CmdletBinding()] param() Write-Verbose "Controleren van Safe Attachments configuratie..." $results = @{ IsCompliant = $false IsConfigured = $false HasAdvancedConfiguration = $false ConfigurationDetails = $null MissingFeatures = @() Recommendations = @() } if ($DebugMode) { Write-Host "`n DebugMode: Voorbeeld Safe Attachments configuratie status" -ForegroundColor Yellow $config = Get-SafeAttachmentConfiguration $results.IsConfigured = $true $results.ConfigurationDetails = $config if ($config.TotalPolicies -gt 0) { $results.IsCompliant = $true $results.HasAdvancedConfiguration = ($config.BlockModePolicies -gt 0 -and $config.DynamicDeliveryPolicies -gt 0) Write-Host " ✅ Safe Attachments is geconfigureerd" -ForegroundColor Green Write-Host " ✅ Totaal policies: $($config.TotalPolicies)" -ForegroundColor Green Write-Host " ✅ Block mode policies: $($config.BlockModePolicies)" -ForegroundColor Green Write-Host " ✅ Dynamic Delivery policies: $($config.DynamicDeliveryPolicies)" -ForegroundColor Green } else { $results.MissingFeatures += "Geen Safe Attachments policies gevonden" Write-Host " ❌ Geen policies gevonden" -ForegroundColor Red } return $results } try { $config = Get-SafeAttachmentConfiguration if ($config -and $config.TotalPolicies -gt 0) { $results.IsConfigured = $true $results.ConfigurationDetails = $config Write-Host "`n Safe Attachments Configuratie:" -ForegroundColor Cyan foreach ($policy in $config.Policies) { $actionColor = switch ($policy.Action) { "Block" { "Green" } "DynamicDelivery" { "Cyan" } "Replace" { "Yellow" } "Monitor" { "Red" } default { "Gray" } } Write-Host " ✅ $($policy.Name)" -ForegroundColor Green Write-Host " Action: $($policy.Action)" -ForegroundColor $actionColor Write-Host " Enabled: $($policy.Enable)" -ForegroundColor $(if ($policy.Enable) { "Green" } else { "Red" }) Write-Host " Redirect: $($policy.Redirect)" -ForegroundColor Cyan Write-Host " Action on Error: $($policy.ActionOnError)" -ForegroundColor Gray } # Check for advanced configuration $hasBlockMode = $config.BlockModePolicies -gt 0 $hasDynamicDelivery = $config.DynamicDeliveryPolicies -gt 0 $hasMultipleModes = ($config.BlockModePolicies -gt 0 -and $config.DynamicDeliveryPolicies -gt 0) if ($hasMultipleModes) { $results.HasAdvancedConfiguration = $true $results.IsCompliant = $true Write-Host " ✅ Geavanceerde configuratie: Meerdere action modes geconfigureerd" -ForegroundColor Green } elseif ($hasBlockMode) { $results.HasAdvancedConfiguration = $false $results.IsCompliant = $true Write-Host " ⚠️ Alleen Block mode geconfigureerd - overweeg Dynamic Delivery voor algemene gebruikers" -ForegroundColor Yellow $results.Recommendations += "Overweeg Dynamic Delivery mode voor algemene gebruikers om gebruikerservaring te optimaliseren" } elseif ($hasDynamicDelivery) { $results.HasAdvancedConfiguration = $false $results.IsCompliant = $true Write-Host " ⚠️ Alleen Dynamic Delivery geconfigureerd - overweeg Block mode voor high-risk gebruikers" -ForegroundColor Yellow $results.Recommendations += "Overweeg Block mode voor executives en finance teams voor maximale security" } # Check SharePoint/OneDrive/Teams if ($config.SharePointEnabled -and $config.OneDriveEnabled -and $config.TeamsEnabled) { Write-Host " ✅ SharePoint/OneDrive/Teams bescherming ingeschakeld" -ForegroundColor Green } else { Write-Host " ⚠️ SharePoint/OneDrive/Teams bescherming niet volledig ingeschakeld" -ForegroundColor Yellow $results.MissingFeatures += "SharePoint/OneDrive/Teams bescherming niet volledig geconfigureerd" $results.Recommendations += "Schakel Safe Attachments in voor SharePoint, OneDrive en Teams voor complete bescherming" } if ($results.IsCompliant) { $results.Recommendations += "Monitor performance metrics regelmatig om scanning delays te optimaliseren" $results.Recommendations += "Review false positive rates en pas configuratie aan indien nodig" } } else { $results.MissingFeatures += "Geen Safe Attachments policies gevonden" Write-Host " ❌ Geen Safe Attachments policies gevonden" -ForegroundColor Red $results.Recommendations += "Configureer Safe Attachments policies via Microsoft 365 Defender portal" $results.Recommendations += "Start met Dynamic Delivery mode voor algemene gebruikers" $results.Recommendations += "Configureer Block mode voor executives en finance teams" } return $results } catch { Write-Error "Fout bij controleren van Safe Attachments configuratie: $_" throw } } function Invoke-Monitoring { <# .SYNOPSIS Monitort Safe Attachments configuratie en rapporteert over performance en effectiviteit #> [CmdletBinding()] param() Write-Host "`nMonitoring: Safe Attachments Configuratie" -ForegroundColor Yellow Write-Host "===========================================" -ForegroundColor Yellow $result = Test-SafeAttachmentConfiguration Write-Host "`nResultaten:" -ForegroundColor Cyan Write-Host " Geconfigureerd: $($result.IsConfigured)" -ForegroundColor $(if ($result.IsConfigured) { "Green" } else { "Red" }) Write-Host " Geavanceerde configuratie: $($result.HasAdvancedConfiguration)" -ForegroundColor $(if ($result.HasAdvancedConfiguration) { "Green" } else { "Yellow" }) if ($result.ConfigurationDetails) { Write-Host " Totaal policies: $($result.ConfigurationDetails.TotalPolicies)" -ForegroundColor Cyan Write-Host " Block mode: $($result.ConfigurationDetails.BlockModePolicies)" -ForegroundColor Green Write-Host " Dynamic Delivery: $($result.ConfigurationDetails.DynamicDeliveryPolicies)" -ForegroundColor Cyan } if ($result.MissingFeatures.Count -gt 0) { Write-Host "`n Ontbrekende features:" -ForegroundColor Red foreach ($feature in $result.MissingFeatures) { Write-Host " - $feature" -ForegroundColor Red } } if ($result.Recommendations.Count -gt 0) { Write-Host "`n Aanbevelingen:" -ForegroundColor Cyan foreach ($recommendation in $result.Recommendations) { Write-Host " - $recommendation" -ForegroundColor Yellow } } Write-Host "`n Belangrijke opmerking:" -ForegroundColor Cyan Write-Host " Safe Attachments vereist Microsoft Defender voor Office 365 Plan 1 of 2" -ForegroundColor Yellow Write-Host " Geavanceerde configuratie beschikbaar via: https://security.microsoft.com/safeattachmentv2" -ForegroundColor Cyan if ($result.IsCompliant) { Write-Host "`n✅ COMPLIANT - Safe Attachments configuratie is geoptimaliseerd" -ForegroundColor Green exit 0 } else { Write-Host "`n⚠️ ATTENTIE - Safe Attachments configuratie vereist optimalisatie" -ForegroundColor Yellow Write-Host " Configureer geavanceerde instellingen via Microsoft 365 Defender portal" -ForegroundColor Yellow exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Configureert geavanceerde Safe Attachments instellingen volgens best practices #> [CmdletBinding()] param() Write-Host "`nRemediatie: Safe Attachments Configuratie" -ForegroundColor Yellow Write-Host "===========================================" -ForegroundColor Yellow try { $existing = Get-SafeAttachmentPolicy -ErrorAction Stop if ($existing.Count -gt 0) { Write-Host "`n Bestaande policies gevonden:" -ForegroundColor Cyan foreach ($policy in $existing) { Write-Host " - $($policy.Name) (Action: $($policy.Action))" -ForegroundColor Gray } Write-Host "`n ⚠️ Policies bestaan al - review en update handmatig indien nodig" -ForegroundColor Yellow Write-Host " Voor geavanceerde configuratie:" -ForegroundColor Cyan Write-Host " 1. Configureer Block mode voor executives en finance teams" -ForegroundColor Gray Write-Host " 2. Configureer Dynamic Delivery voor algemene gebruikers" -ForegroundColor Gray Write-Host " 3. Schakel redirect in naar security team email" -ForegroundColor Gray Write-Host " 4. Schakel SharePoint/OneDrive/Teams bescherming in" -ForegroundColor Gray Write-Host " 5. Configureer timeouts voor verschillende bestandstypen" -ForegroundColor Gray exit 0 } Write-Host "`n Geen bestaande policies gevonden" -ForegroundColor Yellow Write-Host " ⚠️ Gebruik safe-attachments-policy.ps1 om basis policies aan te maken" -ForegroundColor Yellow Write-Host " Daarna kan dit script worden gebruikt voor geavanceerde configuratie" -ForegroundColor Cyan exit 0 } catch { Write-Error "Fout bij remediatie: $_" Write-Host " Zorg ervoor dat Microsoft Defender voor Office 365 Plan 1 of 2 is geactiveerd" -ForegroundColor Yellow exit 2 } } function Invoke-Report { <# .SYNOPSIS Genereert een beknopt managementrapport op basis van Safe Attachments configuratie status .PARAMETER Result Het resultaatobject dat is teruggegeven door Test-SafeAttachmentConfiguration. .PARAMETER OutputPath Pad naar het tekstbestand waarin het rapport wordt opgeslagen. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [pscustomobject]$Result, [Parameter(Mandatory = $true)] [string]$OutputPath ) $folder = Split-Path -Path $OutputPath -Parent if (-not [string]::IsNullOrWhiteSpace($folder) -and -not (Test-Path -Path $folder)) { New-Item -Path $folder -ItemType Directory -Force | Out-Null } $lines = @() $lines += "Safe Attachments Configuratie – Managementrapport" $lines += "Nederlandse Baseline voor Veilige Cloud" $lines += ("Datum: {0}" -f (Get-Date -Format "yyyy-MM-dd HH:mm")) $lines += "" $lines += "1. Samenvatting van de status" $lines += (" Geconfigureerd: {0}" -f $Result.IsConfigured) $lines += (" Geavanceerde configuratie: {0}" -f $Result.HasAdvancedConfiguration) $lines += (" Compliant: {0}" -f $Result.IsCompliant) $lines += "" if ($Result.ConfigurationDetails) { $lines += "2. Configuratie Details" $lines += (" Totaal policies: {0}" -f $Result.ConfigurationDetails.TotalPolicies) $lines += (" Block mode policies: {0}" -f $Result.ConfigurationDetails.BlockModePolicies) $lines += (" Dynamic Delivery policies: {0}" -f $Result.ConfigurationDetails.DynamicDeliveryPolicies) $lines += (" Replace mode policies: {0}" -f $Result.ConfigurationDetails.ReplaceModePolicies) $lines += (" Monitor mode policies: {0}" -f $Result.ConfigurationDetails.MonitorModePolicies) $lines += "" if ($Result.ConfigurationDetails.Policies.Count -gt 0) { $lines += "3. Policy Details" foreach ($policy in $Result.ConfigurationDetails.Policies) { $lines += (" - {0}" -f $policy.Name) $lines += (" Action: {0}" -f $policy.Action) $lines += (" Enabled: {0}" -f $policy.Enable) $lines += (" Redirect: {0}" -f $policy.Redirect) } $lines += "" } } $lines += "4. Aanbevelingen" if ($Result.Recommendations.Count -gt 0) { foreach ($recommendation in $Result.Recommendations) { $lines += (" - {0}" -f $recommendation) } } else { $lines += " Geen specifieke aanbevelingen" } $lines += "" $lines += "5. Interpretatie" $lines += " Dit rapport geeft een overzicht van Safe Attachments configuratie" $lines += " zoals beschreven in de Nederlandse Baseline voor Veilige Cloud." $lines += " Het vervangt geen volledige analyse, maar kan worden gebruikt om" $lines += " voortgang richting bestuur en directie te rapporteren." $lines += "" $lines += " Voor gedetailleerde analyses, gebruik de Microsoft 365 Defender portal:" $lines += " https://security.microsoft.com/safeattachmentv2" $lines | Out-File -FilePath $OutputPath -Encoding UTF8 -Force Write-Host "Managementrapport aangemaakt: $OutputPath" -ForegroundColor Green } # ============================================================================ # MAIN EXECUTION # ============================================================================ try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Safe Attachments Configuratie" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan if ($DebugMode) { Write-Host "DebugMode ingeschakeld: er worden geen verbindingen gemaakt met Microsoft 365." -ForegroundColor Yellow Write-Host "" } if ($Monitoring) { Connect-RequiredServices Invoke-Monitoring } elseif ($Remediation) { Connect-RequiredServices Invoke-Remediation } elseif ($Report) { Connect-RequiredServices $result = Test-SafeAttachmentConfiguration if ([string]::IsNullOrWhiteSpace($OutputPath)) { throw "Parameter -OutputPath is verplicht bij gebruik van -Report." } Invoke-Report -Result $result -OutputPath $OutputPath } else { # Default: Status check Connect-RequiredServices $result = Test-SafeAttachmentConfiguration if ($result.IsCompliant) { Write-Host "`n✅ COMPLIANT - Safe Attachments configuratie is geoptimaliseerd" -ForegroundColor Green } else { Write-Host "`n⚠️ ATTENTIE - Safe Attachments configuratie vereist optimalisatie" -ForegroundColor Yellow } Write-Host "`nGebruik een van de volgende opties:" -ForegroundColor Yellow Write-Host " -Monitoring Controleer Safe Attachments configuratie en rapporteer status" -ForegroundColor Yellow Write-Host " -Remediation Configureer geavanceerde Safe Attachments instellingen" -ForegroundColor Yellow Write-Host " -Report Genereer een managementrapport op basis van de status (vereist -OutputPath)" -ForegroundColor Yellow Write-Host " -DebugMode Gebruik voorbeelddata voor een veilige lokale test" -ForegroundColor Yellow return $result } } catch { Write-Error "Fout in safe-attachments-configuration.ps1: $_" throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder geavanceerde Safe Attachments configuratie blijven organisaties kwetsbaar voor zero-day malware, performance issues die gebruikersproductiviteit beïnvloeden, en false positives die business processen verstoren. Basis Safe Attachments policies bieden standaard bescherming, maar geavanceerde configuratie is essentieel om security te optimaliseren voor verschillende gebruikersgroepen, performance te verbeteren, en false positive rates te minimaliseren zonder security te compromitteren.

Management Samenvatting

Configureer geavanceerde Safe Attachments instellingen met action mode optimalisatie per gebruikersgroep, bestandstype specifieke configuratie, performance optimalisatie met timeout configuratie, redirect en notification configuratie, SharePoint/OneDrive/Teams configuratie, en advanced threat detection tuning. Monitor effectiviteit via uitgebreide rapportages en pas configuratie aan op basis van performance data. Voldoet aan CIS 2.1.5-2.1.7 (L1), BIO 12.02.01, ISO 27001 A.8.7/A.13.2.1, NIS2, AVG Artikel 32. Implementatie: 10 uur technisch + 15 uur voor governance, testing en documentatie. CRITICAL voor geavanceerde malware protection.