Legal Hold Policies Configureren In Microsoft 365

💼 Management Samenvatting

Legal Hold Policies in Microsoft Purview vormen een kritieke beveiligingslaag voor Nederlandse overheidsorganisaties die te maken krijgen met juridische bewaarplichten, rechterlijke bevelen, AVG-verzoeken en interne onderzoeken. Deze policies voorkomen dat relevante elektronische content wordt verwijderd of gewijzigd tijdens lopende juridische procedures, compliance-onderzoeken of toezichtactiviteiten, waardoor organisaties kunnen voldoen aan wettelijke verplichtingen en bewijs kunnen behouden voor juridische doeleinden.

Aanbeveling
IMPLEMENTEER LEGAL HOLD POLICIES VOOR JURIDISCHE BEWAARPLICHTEN
Risico zonder
High
Risk Score
9/10
Implementatie
120u (tech: 40u)
Van toepassing op:
M365
Microsoft Purview
eDiscovery
Publieke Sector
Overheidsorganisaties

Nederlandse overheidsorganisaties opereren in een complex juridisch landschap waarin zij te maken krijgen met verschillende soorten bewaarplichten en juridische verplichtingen. Wanneer een rechterlijk bevel wordt ontvangen, een AVG-verzoek wordt ingediend, een interne integriteitsonderzoek wordt gestart, of wanneer toezichthouders zoals de Autoriteit Persoonsgegevens een onderzoek instellen, moeten organisaties onmiddellijk in staat zijn om relevante elektronische informatie te bewaren zonder risico op vernietiging of wijziging. Zonder Legal Hold Policies kunnen gebruikers per ongeluk of opzettelijk content verwijderen die relevant is voor een juridische procedure, kunnen automatische retentie-instellingen content verwijderen voordat een onderzoek is afgerond, of kunnen wijzigingen worden aangebracht aan documenten die als bewijs moeten dienen. Dit kan leiden tot ernstige juridische consequenties, waaronder spoliation-sancties waarbij rechters negatieve conclusies kunnen trekken over de intentie van de organisatie, boetes van toezichthouders, en verlies van bewijs dat cruciaal is voor de verdediging of het onderzoek. Voor organisaties die moeten voldoen aan de BIO, NIS2 en AVG is het instellen van Legal Hold Policies niet alleen een best practice, maar een essentiële vereiste om te kunnen aantonen dat passende maatregelen zijn genomen om bewijs te bewaren en juridische verplichtingen na te komen.

PowerShell Modules Vereist
Primary API: Security & Compliance PowerShell / Microsoft Graph
Connection: Connect-IPPSSession / Connect-MgGraph
Required Modules: ExchangeOnlineManagement, Microsoft.Graph.Compliance

Implementatie

Dit artikel beschrijft hoe Nederlandse overheidsorganisaties Legal Hold Policies ontwerpen, configureren en beheren in Microsoft Purview eDiscovery. We beginnen bij de governance: wanneer zijn legal holds nodig, wie heeft de bevoegdheid om holds te plaatsen, hoe worden holds gedocumenteerd en geregistreerd, en hoe worden holds beheerd gedurende hun levenscyclus. Vervolgens gaan we in op het technische ontwerp: welke soorten legal holds beschikbaar zijn (case-based holds versus standalone holds), hoe holds worden toegepast op verschillende content locaties (Exchange Online mailboxes, SharePoint sites, OneDrive accounts, Microsoft Teams), en hoe query-based holds worden geconfigureerd om alleen specifieke content te bewaren die relevant is voor een onderzoek. We behandelen ook de implementatie: stapsgewijze configuratie van legal holds binnen eDiscovery cases, het instellen van query-based holds met KQL-query's, het beheren van hold-statussen en het monitoren van hold-compliance. Tot slot laten we zien hoe u met het bijbehorende script periodiek controleert of legal holds correct zijn geconfigureerd, actief functioneren en aansluiten op juridische en compliance-vereisten.

De implementatie van Legal Hold Policies begint niet bij de technische configuratie, maar bij een solide governance- en juridisch kader dat duidelijk maakt wanneer legal holds nodig zijn, wie de bevoegdheid heeft om holds te plaatsen, en hoe holds worden beheerd gedurende hun levenscyclus. Voor Nederlandse overheidsorganisaties zijn er verschillende juridische situaties waarin legal holds vereist zijn: rechterlijke bevelen waarbij een rechter opdraagt om specifieke informatie te bewaren voor een lopende rechtszaak, AVG-verzoeken waarbij betrokkenen vragen om inzage in hun persoonsgegevens en waarbij alle relevante informatie moet worden bewaard totdat het verzoek is afgehandeld, interne integriteitsonderzoeken waarbij vermoedens van misstanden worden onderzocht en waarbij alle relevante communicatie en documenten moeten worden bewaard, en toezichtonderzoeken waarbij toezichthouders zoals de Autoriteit Persoonsgegevens, de Inspectie Leefomgeving en Transport, of andere sectorale toezichthouders onderzoeken instellen en waarbij organisaties verplicht zijn om relevante informatie te bewaren. Zonder een duidelijk governancekader dat deze situaties beschrijft en processen definieert voor het plaatsen en beheren van legal holds, riskeert de organisatie dat holds te laat worden geplaatst (waardoor bewijs verloren gaat), dat holds onterecht worden geplaatst (waardoor privacy wordt geschonden en onnodige kosten worden gemaakt), of dat holds niet worden verwijderd wanneer ze niet meer nodig zijn (waardoor data onnodig lang wordt bewaard in strijd met AVG-principes).

Een goed governancekader voor Legal Hold Policies omvat verschillende essentiële componenten. Ten eerste moet er een formeel beleidsdocument zijn waarin wordt vastgelegd wanneer legal holds worden geplaatst, wie de bevoegdheid heeft om holds te plaatsen (meestal de juridische afdeling, de Functionaris Gegevensbescherming, of senior compliance officers), en welke processen worden gevolgd voor het plaatsen, beheren en verwijderen van holds. Dit beleid wordt idealiter ontwikkeld in samenwerking met de juridische afdeling, de Functionaris Gegevensbescherming, de CISO, en eventueel externe juridische adviseurs. Het beleid beschrijft ook expliciet dat legal holds alleen worden geplaatst wanneer er een concrete juridische verplichting of gerechtvaardigde reden is, dat holds worden gedocumenteerd met informatie over de juridische basis, de scope van de hold, en de verwachte duur, en dat holds regelmatig worden gereviewd om te verifiëren dat ze nog steeds nodig zijn. Het beleid beschrijft ook hoe wordt omgegaan met conflicterende verplichtingen, bijvoorbeeld wanneer een legal hold vereist dat data wordt bewaard, maar de AVG vereist dat data wordt verwijderd omdat de bewaartermijn is verstreken. In dergelijke situaties moet de juridische afdeling een afweging maken waarbij de juridische bewaarplicht meestal voorrang heeft op de AVG-verwijderingsplicht, maar waarbij deze afweging wordt gedocumenteerd en eventueel wordt besproken met de Functionaris Gegevensbescherming.

Ten tweede moet er een centraal register zijn waarin alle actieve legal holds worden bijgehouden met informatie over de juridische basis (rechterlijk bevel, AVG-verzoek, intern onderzoek, etc.), de scope (welke gebruikers, distributielijsten of content locaties zijn betrokken), de datum waarop de hold is geplaatst, de verwachte einddatum (indien bekend), en de status (actief, inactief, verwijderd). Dit register wordt idealiter beheerd door de juridische afdeling of compliance officers en wordt regelmatig gereviewd (bijvoorbeeld per kwartaal) om te verifiëren dat holds nog steeds nodig zijn en om holds te identificeren die kunnen worden verwijderd. Het register vormt ook essentieel bewijsmateriaal voor auditors en toezichthouders die willen verifiëren dat de organisatie correct omgaat met juridische bewaarplichten. Het register moet worden gekoppeld aan eDiscovery cases in Microsoft Purview, zodat er een directe link is tussen de juridische documentatie en de technische implementatie van holds.

Ten derde moet er een duidelijk proces zijn voor het plaatsen van legal holds wanneer een juridische verplichting ontstaat. Dit proces begint met de identificatie van de juridische verplichting (bijvoorbeeld het ontvangen van een rechterlijk bevel of het starten van een intern onderzoek), gevolgd door een beoordeling van welke content relevant is en moet worden bewaard, en eindigt met het technisch plaatsen van de hold in Microsoft Purview. Het proces beschrijft ook wie betrokken moet worden (juridische afdeling, IT-afdeling, compliance officers), welke documentatie nodig is (rechterlijk bevel, AVG-verzoek, onderzoeksplan), en hoe de hold wordt gecommuniceerd naar betrokkenen (bijvoorbeeld door het informeren van gebruikers dat hun content wordt bewaard voor juridische doeleinden, of door het informeren van de ondernemingsraad wanneer een brede hold wordt geplaatst). Het proces beschrijft ook hoe wordt omgegaan met urgente situaties waarbij een hold onmiddellijk moet worden geplaatst (bijvoorbeeld wanneer een rechterlijk bevel wordt ontvangen buiten kantooruren), en hoe deze urgente holds worden gedocumenteerd en gereviewd na plaatsing.

Tot slot moet het governancekader processen definiëren voor het beheren en verwijderen van legal holds. Holds moeten regelmatig worden gereviewd (bijvoorbeeld per kwartaal of halfjaar) om te verifiëren dat ze nog steeds nodig zijn. Wanneer een juridische procedure is afgerond, een AVG-verzoek is afgehandeld, of een intern onderzoek is beëindigd, moet de bijbehorende legal hold worden verwijderd, tenzij er een andere juridische verplichting is die vereist dat de content wordt bewaard. Het verwijderen van een legal hold is een kritieke actie die alleen mag worden uitgevoerd na expliciete goedkeuring van de juridische afdeling, omdat het verwijderen van een hold kan leiden tot het permanent verwijderen van content als er geen andere retentie-instellingen actief zijn. Het governancekader zorgt ervoor dat Legal Hold Policies niet alleen technisch correct zijn geconfigureerd, maar ook juridisch, ethisch en organisatorisch verantwoord worden ingezet.

Policy-ontwerp en technische configuratie

Nadat het governance- en juridisch kader is vastgesteld, kan de technische configuratie van Legal Hold Policies worden opgestart. Microsoft Purview biedt verschillende soorten legal holds die aansluiten bij verschillende scenario's en vereisten. Case-based holds zijn legal holds die worden geplaatst binnen een eDiscovery case en die gekoppeld zijn aan een specifiek juridisch onderzoek of compliance-verzoek. Deze holds bieden de beste organisatie en structuur omdat ze alle relevante holds groeperen binnen één case, waardoor het eenvoudiger is om holds te beheren en te documenteren. Case-based holds zijn ideaal voor complexe juridische zaken waarbij meerdere custodians betrokken zijn, waarbij verschillende content locaties moeten worden bewaard, en waarbij de juridische documentatie centraal moet worden beheerd. Standalone holds zijn legal holds die worden geplaatst buiten een eDiscovery case en die direct worden toegepast op gebruikers of content locaties. Deze holds zijn eenvoudiger te beheren voor eenvoudige scenario's waarbij slechts één gebruiker of een beperkt aantal content locaties moet worden bewaard, maar ze bieden minder organisatie en structuur dan case-based holds. Standalone holds zijn ideaal voor urgente situaties waarbij snel een hold moet worden geplaatst zonder eerst een case aan te maken, of voor eenvoudige scenario's waarbij geen uitgebreide case-documentatie nodig is.

Het ontwerp van een Legal Hold Policy begint bij het definiëren van de scope: welke gebruikers, distributielijsten of content locaties moeten worden bewaard? Voor rechterlijke bevelen of AVG-verzoeken is de scope meestal duidelijk gedefinieerd in het bevel of verzoek, maar voor interne onderzoeken moet de scope worden bepaald op basis van wie betrokken is bij het onderzoek en welke content relevant kan zijn. De scope kan worden gedefinieerd op verschillende niveaus: op mailboxniveau waarbij alle content in een Exchange Online mailbox wordt bewaard, op siteniveau waarbij alle content in een SharePoint site of OneDrive account wordt bewaard, op Teams-niveau waarbij alle content in Microsoft Teams wordt bewaard, of op query-niveau waarbij alleen specifieke content wordt bewaard die voldoet aan bepaalde criteria (bijvoorbeeld e-mails met specifieke trefwoorden, documenten binnen een bepaald datumbereik, of content van specifieke afzenders). Query-based holds zijn krachtig omdat ze organisaties in staat stellen om alleen relevante content te bewaren, wat privacy beschermt en kosten reduceert, maar ze vereisen zorgvuldige configuratie om ervoor te zorgen dat alle relevante content wordt bewaard en dat er geen relevante content wordt gemist.

Voor query-based holds worden KQL (Keyword Query Language) query's gebruikt om te definiëren welke content wordt bewaard. KQL ondersteunt complexe zoekcriteria zoals trefwoorden, datumbereiken, afzenders, ontvangers, bijlagen, en andere metadata. Bijvoorbeeld, een query-based hold kan worden geconfigureerd om alleen e-mails te bewaren die zijn verzonden of ontvangen binnen een bepaald datumbereik, die specifieke trefwoorden bevatten, en die zijn verzonden naar of ontvangen van specifieke externe e-mailadressen. Deze aanpak is ideaal voor scenario's waarbij alleen specifieke content relevant is voor een onderzoek en waarbij het bewaren van alle content onnodig zou zijn en privacy zou schenden. Het is belangrijk om query-based holds zorgvuldig te testen voordat ze worden geactiveerd, omdat een onjuist geformuleerde query kan leiden tot het missen van relevante content of tot het bewaren van irrelevante content. Organisaties moeten test searches uitvoeren om te verifiëren dat query's de verwachte resultaten opleveren voordat holds worden geactiveerd.

Naast de scope moeten Legal Hold Policies worden geconfigureerd met informatie over de juridische basis, de verwachte duur, en eventuele specifieke vereisten. De juridische basis wordt vastgelegd in de case-beschrijving of in de hold-beschrijving en beschrijft waarom de hold is geplaatst (bijvoorbeeld 'Rechterlijk bevel d.d. 15 januari 2025, zaaknummer 2025/12345'). De verwachte duur kan worden ingesteld als onbeperkt (indefinite) wanneer de duur onbekend is, of als tijdgebonden wanneer de duur bekend is (bijvoorbeeld 'tot 31 december 2025'). Voor tijdgebonden holds moet de organisatie ervoor zorgen dat holds worden gereviewd voordat ze verlopen, omdat het verlopen van een hold kan leiden tot het permanent verwijderen van content als er geen andere retentie-instellingen actief zijn. Specifieke vereisten kunnen bijvoorbeeld zijn dat alleen bepaalde content types worden bewaard (bijvoorbeeld alleen e-mails, niet Teams-berichten), of dat bepaalde metadata moet worden bewaard (bijvoorbeeld verzendtijd, bijlagen, verzendketens). Deze configuraties worden vastgelegd in het policy-ontwerp en worden gedocumenteerd voor audit-doeleinden.

Gebruik PowerShell-script legal-hold-policies.ps1 (functie Get-LegalHoldPolicyOverview) – Geeft een overzicht van alle Legal Hold Policies in Microsoft Purview, inclusief configuratie, scope, juridische basis, status en compliance. Ondersteunt zowel lokale debug-tests als live-controles in de tenant..

Stapsgewijze implementatie van Legal Hold Policies

De implementatie van Legal Hold Policies volgt een gestructureerde aanpak die begint bij licentievereisten en eindigt bij operationele borging. Microsoft Purview eDiscovery vereist Microsoft 365 E3 licenties voor Core eDiscovery functionaliteit of Microsoft 365 E5 licenties voor Advanced eDiscovery functionaliteit. Daarnaast zijn er specifieke beheerdersrollen nodig: de eDiscovery Manager rol voor het plaatsen en beheren van legal holds binnen cases, en de eDiscovery Administrator rol voor volledige beheerdersrechten binnen eDiscovery. Deze rollen worden idealiter toegekend via Privileged Identity Management (PIM) om te voorkomen dat beheerders permanent toegang hebben tot gevoelige juridische informatie. Voordat de implementatie start, voert de organisatie een licentie-inventarisatie uit om te verifiëren dat alle relevante gebruikers de juiste licenties hebben, en wordt een rollenstructuur opgezet die aansluit bij het governancekader.

De eerste concrete stap in de implementatie is het aanmaken van een eDiscovery case (voor case-based holds) of het voorbereiden van de configuratie voor standalone holds. Voor case-based holds wordt een case aangemaakt via het Microsoft Purview complianceportaal door te navigeren naar eDiscovery en op Nieuwe case te klikken. De case wordt geconfigureerd met een naam die de juridische basis beschrijft (bijvoorbeeld 'Rechterlijk bevel 2025/12345' of 'AVG-verzoek betrokkene X'), een beschrijving die uitlegt waarom de case is aangemaakt, en metadata zoals de status, de datum waarop de case is gestart, en de verwachte einddatum. De case wordt gekoppeld aan het centrale legal hold register zodat er een directe link is tussen de juridische documentatie en de technische implementatie. Voor standalone holds wordt de configuratie voorbereid door te bepalen welke gebruikers of content locaties moeten worden bewaard en welke query's (indien van toepassing) moeten worden gebruikt.

Vervolgens worden legal holds geconfigureerd volgens het ontwerp dat eerder is vastgesteld. Voor case-based holds wordt een hold aangemaakt binnen de case door te navigeren naar de Holds-sectie en op Nieuwe hold te klikken. De hold wordt geconfigureerd met een naam, een beschrijving die de juridische basis uitlegt, en de scope (welke gebruikers, distributielijsten of content locaties moeten worden bewaard). Voor query-based holds wordt een KQL-query ingevoerd die definieert welke content wordt bewaard. De query wordt getest met een test search om te verifiëren dat de verwachte resultaten worden gevonden voordat de hold wordt geactiveerd. Voor mailbox-based holds worden specifieke Exchange Online mailboxes geselecteerd, voor site-based holds worden specifieke SharePoint sites of OneDrive accounts geselecteerd, en voor Teams-based holds worden specifieke Microsoft Teams geselecteerd. De hold wordt geconfigureerd met informatie over de verwachte duur (onbeperkt of tijdgebonden) en eventuele specifieke vereisten. Na configuratie wordt de hold geactiveerd, waarna alle relevante content automatisch wordt bewaard, ongeacht retentie-instellingen of verwijderacties door gebruikers.

Na activatie van legal holds wordt de implementatie geborgd door het opzetten van periodieke controles en reviews. Het bijbehorende PowerShell-script legal-hold-policies.ps1 kan worden ingezet om regelmatig (bijvoorbeeld maandelijks of per kwartaal) te controleren of holds correct zijn geconfigureerd, of holds actief zijn en functioneren zoals bedoeld, of er geen onverwachte configuratiewijzigingen zijn doorgevoerd, en of holds nog steeds nodig zijn. Deze controles worden uitgevoerd door de juridische afdeling, compliance officers of security auditors en worden gedocumenteerd voor audit-doeleinden. Daarnaast worden holds periodiek gereviewd (bijvoorbeeld per kwartaal of halfjaar) om te verifiëren dat ze nog steeds nodig zijn en om holds te identificeren die kunnen worden verwijderd. Wanneer een juridische procedure is afgerond, een AVG-verzoek is afgehandeld, of een intern onderzoek is beëindigd, wordt de bijbehorende legal hold verwijderd na expliciete goedkeuring van de juridische afdeling. Deze reviews worden gedocumenteerd en vormen onderdeel van de audit-evidentie.

Monitoring, compliance en auditing voor Legal Hold Policies

Effectieve monitoring van Legal Hold Policies vereist een gestructureerde aanpak voor het controleren van hold-statussen, het verifiëren van hold-compliance, en het rapporteren over actieve holds. Wanneer legal holds zijn geactiveerd, moeten organisaties regelmatig verifiëren dat holds daadwerkelijk actief zijn en functioneren zoals bedoeld. Microsoft Purview biedt verschillende mechanismen voor het monitoren van holds: het eDiscovery-dashboard toont een overzicht van alle actieve holds binnen cases, hold-statussen worden weergegeven in het complianceportaal, en PowerShell-cmdlets kunnen worden gebruikt om programmatisch hold-informatie op te halen. Het is belangrijk dat deze monitoring regelmatig wordt uitgevoerd, omdat technische problemen, configuratiefouten of onverwachte wijzigingen kunnen leiden tot situaties waarin holds niet actief zijn terwijl ze dat wel zouden moeten zijn, wat kan resulteren in verlies van bewijs en juridische aansprakelijkheid.

Hold-compliance verificatie omvat het controleren of holds correct zijn toegepast op alle relevante content locaties, of query-based holds de verwachte content bewaren, en of er geen content wordt verwijderd die onder een hold valt. Microsoft Purview biedt compliance-rapporten die aangeven of holds correct functioneren en of er problemen zijn met hold-compliance. Deze rapporten moeten regelmatig worden gereviewd door de juridische afdeling of compliance officers om te verifiëren dat holds effectief zijn en dat er geen problemen zijn. Daarnaast kunnen test searches worden uitgevoerd om te verifiëren dat query-based holds de verwachte content bewaren en dat er geen relevante content wordt gemist. Wanneer compliance-problemen worden geïdentificeerd, moeten deze onmiddellijk worden onderzocht en opgelost om te voorkomen dat bewijs verloren gaat.

Legal Hold Policies spelen een belangrijke rol in het voldoen aan verschillende compliance-vereisten die van toepassing zijn op Nederlandse overheidsorganisaties. De BIO (Baseline Informatiebeveiliging Overheid) vereist in thema 12.04 dat organisaties monitoring en logging implementeren voor kritieke systemen en processen, en dat organisaties in staat zijn om bewijs te bewaren voor juridische doeleinden. Legal Hold Policies vormen een concrete implementatie van deze vereiste, waarbij elektronische content wordt bewaard voor juridische doeleinden en waarbij alle activiteiten worden gelogd en geaudit. De BIO benadrukt ook het belang van continue monitoring en het analyseren van security events, wat direct aansluit bij de functionaliteiten van Legal Hold Policies. Voor organisaties die moeten voldoen aan BIO-normen zijn Legal Hold Policies niet alleen een best practice, maar een essentiële controle die aantoonbaar bijdraagt aan de beveiligingspostuur van de organisatie.

De NIS2-richtlijn, die van toepassing is op essentiële en belangrijke entiteiten in verschillende sectoren, vereist in artikel 21 dat organisaties passende technische en organisatorische maatregelen implementeren om cybersecurity-risico's te beheren, inclusief detectie en respons op bedreigingen. Legal Hold Policies vormen een directe implementatie van deze vereiste door ervoor te zorgen dat bewijs wordt bewaard voor cybersecurity-onderzoeken en incidentrespons-activiteiten. NIS2 benadrukt ook het belang van risicobeheer en continu monitoring, wat perfect aansluit bij de aanpak van Legal Hold Policies. Voor Nederlandse organisaties die onder NIS2 vallen, zijn Legal Hold Policies een belangrijk onderdeel van het cybersecurity-risicobeheer en helpen ze organisaties te voldoen aan de detectie- en responsvereisten van de richtlijn.

De AVG (Algemene Verordening Gegevensbescherming) heeft belangrijke implicaties voor Legal Hold Policies omdat het bewaren van content voor juridische doeleinden raakt aan privacyrechten. Organisaties moeten kunnen aantonen dat het bewaren van content noodzakelijk is voor het beoogde doel (naleving van juridische verplichtingen), proportioneel is (niet meer content wordt bewaard dan strikt noodzakelijk), en dat passende maatregelen zijn genomen om privacy te beschermen (zoals query-based holds die alleen relevante content bewaren). Het governancekader dat wordt uitgevoerd voor Legal Hold Policies documenteert deze aspecten en vormt essentieel bewijsmateriaal voor auditors en toezichthouders. Daarnaast moet de organisatie kunnen aantonen dat legal holds worden beheerd volgens privacy-by-design en privacy-by-default principes, dat holds worden verwijderd wanneer ze niet meer nodig zijn, en dat betrokkenen worden geïnformeerd over holds wanneer dat vereist is (bijvoorbeeld wanneer een AVG-verzoek wordt afgehandeld).

Voor audit-doeleinden is het belangrijk dat alle aspecten van Legal Hold Policies worden gedocumenteerd en bewaard. Dit omvat het governancekader (beleidsdocumenten, juridische basis, centrale registers), de technische configuratie (hold-instellingen, scope, query's, statussen), de implementatiegeschiedenis (wanneer zijn holds geplaatst, wie heeft ze geconfigureerd, welke wijzigingen zijn doorgevoerd), en de operationele resultaten (hold-statussen, compliance-rapporten, review-bevindingen). Deze documentatie wordt bewaard voor minimaal zeven jaar, conform audit-vereisten, en is beschikbaar voor interne en externe auditors. Het bijbehorende PowerShell-script legal-hold-policies.ps1 kan worden gebruikt om periodiek rapportages te genereren over de configuratie en status van holds, wat helpt bij het opbouwen van audit-bewijs. Daarnaast worden periodieke reviews uitgevoerd (bijvoorbeeld per kwartaal of halfjaar) waarbij wordt geëvalueerd of holds nog steeds effectief zijn, of wijzigingen nodig zijn, en of er aanpassingen nodig zijn aan governance-processen. Deze reviews worden gedocumenteerd en vormen onderdeel van de audit-evidentie.

Gebruik PowerShell-script legal-hold-policies.ps1 (functie Invoke-Monitoring) – Monitort de configuratie en status van Legal Hold Policies, controleert of holds actief zijn en functioneren zoals bedoeld, verifieert hold-compliance, en rapporteert over actieve holds en compliance-statussen..

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 Legal Hold Policies configuratie en monitoring voor juridische bewaarplichten .DESCRIPTION Zorgt ervoor dat Microsoft Purview Legal Hold Policies correct zijn geconfigureerd en actief. Kritiek voor juridische bewaarplichten, rechterlijke bevelen, AVG-verzoeken en compliance met juridische verplichtingen. .NOTES Filename: legal-hold-policies.ps1 Author: Nederlandse Baseline voor Veilige Cloud Category: audit-compliance .EXAMPLE .\legal-hold-policies.ps1 -Monitoring Controleer of Legal Hold Policies correct zijn geconfigureerd .EXAMPLE .\legal-hold-policies.ps1 -Remediation Configureer Legal Hold Policies basis instellingen #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param( [Parameter(Mandatory = $false)] [switch]$Monitoring, [Parameter(Mandatory = $false)] [switch]$Remediation, [Parameter(Mandatory = $false)] [switch]$Revert, [switch]$WhatIf ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Legal Hold Policies configuratie voor juridische bewaarplichten" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Get-LegalHoldPolicyOverview { <# .SYNOPSIS Geeft een overzicht van alle Legal Hold Policies in Microsoft Purview #> try { Write-Host "Verbinden met Security & Compliance Center..." -ForegroundColor Gray Connect-IPPSSession -ShowBanner:$false -ErrorAction Stop | Out-Null Write-Host "Controleren van Legal Hold Policies configuratie..." -ForegroundColor Gray # Controleer of eDiscovery beschikbaar is try { # Haal eDiscovery cases op $cases = Get-ComplianceCase -ErrorAction SilentlyContinue if ($null -eq $cases) { Write-Host " [WAARSCHUWING] eDiscovery cases kunnen niet worden opgehaald" -ForegroundColor Yellow Write-Host " Dit kan betekenen dat eDiscovery niet is geconfigureerd" -ForegroundColor Yellow Write-Host " of dat er geen cases zijn aangemaakt" -ForegroundColor Yellow Write-Host "`n[WAARSCHUWING] STATUS ONBEKEND" -ForegroundColor Yellow Write-Host "`nAanbeveling:" -ForegroundColor Cyan Write-Host " • Verifieer dat Microsoft 365 E3 of E5 licenties zijn toegewezen" -ForegroundColor Gray Write-Host " • Controleer of eDiscovery Manager rollen zijn toegewezen" -ForegroundColor Gray Write-Host " • Maak een eDiscovery case aan via compliance.microsoft.com" -ForegroundColor Gray exit 1 } $activeCases = $cases | Where-Object { $_.Status -eq 'Active' } $inactiveCases = $cases | Where-Object { $_.Status -ne 'Active' } Write-Host " [OK] eDiscovery: BESCHIKBAAR" -ForegroundColor Green Write-Host " Totaal aantal cases: $($cases.Count)" -ForegroundColor Cyan Write-Host " Actieve cases: $($activeCases.Count)" -ForegroundColor Cyan Write-Host " Inactieve cases: $($inactiveCases.Count)" -ForegroundColor Cyan # Controleer op actieve legal holds $totalHolds = 0 $activeHolds = 0 $holdDetails = @() foreach ($case in $activeCases) { try { $holds = Get-CaseHoldPolicy -Case $case.Name -ErrorAction SilentlyContinue if ($holds) { foreach ($hold in $holds) { $totalHolds++ if ($hold.Enabled -eq $true) { $activeHolds++ $holdDetails += [PSCustomObject]@{ CaseName = $case.Name HoldName = $hold.Name Status = if ($hold.Enabled) { "Actief" } else { "Inactief" } ContentMatchQuery = if ($hold.ContentMatchQuery) { "Query-based" } else { "All content" } } } } } } catch { # Negeer fouten bij het ophalen van holds voor specifieke cases } } if ($totalHolds -gt 0) { Write-Host "`n Legal Hold Policies overzicht:" -ForegroundColor Cyan Write-Host " Totaal aantal holds: $totalHolds" -ForegroundColor Cyan Write-Host " Actieve holds: $activeHolds" -ForegroundColor Cyan Write-Host " Inactieve holds: $($totalHolds - $activeHolds)" -ForegroundColor Cyan if ($holdDetails.Count -gt 0) { Write-Host "`n Actieve Legal Hold Policies:" -ForegroundColor Cyan $holdDetails | Format-Table -AutoSize } } else { Write-Host " Actieve legal holds: 0" -ForegroundColor Yellow Write-Host " [WAARSCHUWING] Geen legal holds geconfigureerd" -ForegroundColor Yellow } # Controleer op standalone holds (buiten cases) try { $standaloneHolds = Get-CaseHoldPolicy -ErrorAction SilentlyContinue | Where-Object { $_.CaseId -eq $null -or $_.CaseId -eq '' } if ($standaloneHolds) { $activeStandaloneHolds = $standaloneHolds | Where-Object { $_.Enabled -eq $true } if ($activeStandaloneHolds) { Write-Host "`n Standalone Legal Hold Policies: $($activeStandaloneHolds.Count)" -ForegroundColor Cyan } } } catch { # Negeer fouten bij het ophalen van standalone holds } Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green Write-Host "`nAanbeveling:" -ForegroundColor Cyan Write-Host " • Controleer compliance.microsoft.com voor gedetailleerde hold informatie" -ForegroundColor Gray Write-Host " • Verifieer dat eDiscovery Manager rollen zijn toegewezen aan geautoriseerde personen" -ForegroundColor Gray Write-Host " • Review actieve legal holds regelmatig om te verifiëren dat deze nog nodig zijn" -ForegroundColor Gray Write-Host " • Documenteer juridische basis voor alle actieve holds in centraal register" -ForegroundColor Gray exit 0 } catch { Write-Host " [WAARSCHUWING] eDiscovery API niet beschikbaar" -ForegroundColor Yellow Write-Host " Fout: $($_.Exception.Message)" -ForegroundColor Yellow Write-Host "`n[WAARSCHUWING] STATUS ONBEKEND" -ForegroundColor Yellow Write-Host "`nAanbeveling:" -ForegroundColor Cyan Write-Host " • Verifieer dat Microsoft 365 E3 of E5 licenties zijn toegewezen" -ForegroundColor Gray Write-Host " • Controleer of eDiscovery Manager rollen zijn toegewezen" -ForegroundColor Gray Write-Host " • Maak een eDiscovery case aan via compliance.microsoft.com" -ForegroundColor Gray exit 1 } } catch { Write-Host "`n[FAIL] ERROR: $_" -ForegroundColor Red Write-Host "Error Details: $($_.Exception.Message)" -ForegroundColor Red Write-Host "`nControleer:" -ForegroundColor Yellow Write-Host " • Exchange Online Management module is geïnstalleerd" -ForegroundColor Gray Write-Host " • U bent aangemeld met een account met eDiscovery Manager of eDiscovery Administrator rechten" -ForegroundColor Gray Write-Host " • U heeft toegang tot het Security & Compliance Center" -ForegroundColor Gray exit 2 } } function Invoke-Monitoring { <# .SYNOPSIS Monitort de configuratie en status van Legal Hold Policies #> Get-LegalHoldPolicyOverview } function Invoke-Remediation { <# .SYNOPSIS Configureert Legal Hold Policies basis instellingen (handmatige stappen) #> try { Write-Host "Verbinden met Security & Compliance Center..." -ForegroundColor Gray Connect-IPPSSession -ShowBanner:$false -ErrorAction Stop | Out-Null Write-Host "`nBELANGRIJK: Legal Hold Policies configuratie vereist handmatige stappen" -ForegroundColor Yellow Write-Host "`nVolg deze stappen om Legal Hold Policies te configureren:" -ForegroundColor Cyan Write-Host "`n1. Controleer licentievereisten:" -ForegroundColor White Write-Host " • Microsoft 365 E3 voor Core eDiscovery" -ForegroundColor Gray Write-Host " • Microsoft 365 E5 voor Advanced eDiscovery" -ForegroundColor Gray Write-Host " • Licenties nodig voor alle custodian mailboxes en content locaties" -ForegroundColor Gray Write-Host "`n2. Wijs eDiscovery rollen toe:" -ForegroundColor White Write-Host " • Navigeer naar Microsoft 365 admin center > Rollen en beheerders" -ForegroundColor Gray Write-Host " • Wijs 'eDiscovery Manager' rol toe aan juridische medewerkers" -ForegroundColor Gray Write-Host " • Wijs 'eDiscovery Administrator' rol toe aan senior compliance officers" -ForegroundColor Gray Write-Host "`n3. Maak een eDiscovery case aan (voor case-based holds):" -ForegroundColor White Write-Host " • Navigeer naar compliance.microsoft.com" -ForegroundColor Gray Write-Host " • Open eDiscovery > Core of Advanced eDiscovery" -ForegroundColor Gray Write-Host " • Klik op 'Nieuwe case' en vul case details in" -ForegroundColor Gray Write-Host " • Documenteer juridische basis in case-beschrijving" -ForegroundColor Gray Write-Host "`n4. Stel legal holds in binnen cases:" -ForegroundColor White Write-Host " • Open een case en ga naar 'Holds'" -ForegroundColor Gray Write-Host " • Klik op 'Nieuwe hold' en selecteer custodians en content locaties" -ForegroundColor Gray Write-Host " • Configureer hold instellingen (scope, query's indien van toepassing)" -ForegroundColor Gray Write-Host " • Activeer de hold en documenteer in centraal register" -ForegroundColor Gray Write-Host "`n5. Voor standalone holds (buiten cases):" -ForegroundColor White Write-Host " • Gebruik New-CaseHoldPolicy cmdlet in PowerShell" -ForegroundColor Gray Write-Host " • Configureer scope en query's direct" -ForegroundColor Gray Write-Host " • Documenteer juridische basis en registreer in centraal register" -ForegroundColor Gray Write-Host "`nNa configuratie controleert dit script de status..." -ForegroundColor Gray # Wacht even en controleer dan de status Start-Sleep -Seconds 2 Write-Host "`nControleren van Legal Hold Policies status..." -ForegroundColor Gray try { $cases = Get-ComplianceCase -ErrorAction SilentlyContinue if ($null -ne $cases) { Write-Host " [OK] eDiscovery API beschikbaar" -ForegroundColor Green Write-Host " Aantal cases gevonden: $($cases.Count)" -ForegroundColor Cyan $activeCases = $cases | Where-Object { $_.Status -eq 'Active' } if ($activeCases) { $totalHolds = 0 foreach ($case in $activeCases) { try { $holds = Get-CaseHoldPolicy -Case $case.Name -ErrorAction SilentlyContinue if ($holds) { $totalHolds += $holds.Count } } catch { # Negeer fouten } } Write-Host " Aantal legal holds gevonden: $totalHolds" -ForegroundColor Cyan } Write-Host "`n[OK] Basisconfiguratie voltooid" -ForegroundColor Green Write-Host "`nVolgende stappen:" -ForegroundColor Cyan Write-Host " • Wijs eDiscovery rollen toe via Microsoft 365 admin center" -ForegroundColor Gray Write-Host " • Maak eDiscovery cases aan via compliance.microsoft.com" -ForegroundColor Gray Write-Host " • Stel legal holds in voor actieve onderzoeken" -ForegroundColor Gray Write-Host " • Documenteer alle holds in centraal register" -ForegroundColor Gray Write-Host " • Review holds regelmatig om te verifiëren dat ze nog nodig zijn" -ForegroundColor Gray exit 0 } else { Write-Host " [INFO] eDiscovery API beschikbaar maar geen cases gevonden" -ForegroundColor Yellow Write-Host " Dit is normaal wanneer eDiscovery net is geconfigureerd" -ForegroundColor Gray Write-Host "`n[INFO] Handmatige configuratie vereist" -ForegroundColor Yellow Write-Host "`nVolg de stappen hierboven om Legal Hold Policies volledig te configureren" -ForegroundColor Cyan exit 0 } } catch { Write-Host " [INFO] eDiscovery API nog niet beschikbaar" -ForegroundColor Yellow Write-Host " Volg de handmatige stappen hierboven" -ForegroundColor Gray Write-Host "`n[INFO] Handmatige configuratie vereist" -ForegroundColor Yellow exit 0 } } catch { Write-Host "`n[FAIL] ERROR: $_" -ForegroundColor Red Write-Host "Error Details: $($_.Exception.Message)" -ForegroundColor Red exit 2 } } function Invoke-Revert { <# .SYNOPSIS Verwijdert Legal Hold Policies configuratie (NIET AANBEVOLEN!) #> try { Write-Host "WARNING: Verwijderen van Legal Hold Policies is een JURIDISCH RISICO!" -ForegroundColor Red Write-Host "Dit kan leiden tot verlies van bewijs en niet-naleving van juridische verplichtingen`n" -ForegroundColor Red Write-Host "BELANGRIJK: Legal Hold Policies verwijderen vereist handmatige stappen" -ForegroundColor Yellow Write-Host "EN ALLEEN NA EXPLICIETE GOEDKEURING VAN DE JURIDISCHE AFDELING!" -ForegroundColor Red Write-Host "`nVolg deze stappen (NIET AANBEVOLEN):" -ForegroundColor Cyan Write-Host "1. Verifieer dat juridische procedure is afgerond" -ForegroundColor White Write-Host "2. Verkrijg expliciete goedkeuring van juridische afdeling" -ForegroundColor White Write-Host "3. Documenteer verwijdering in centraal register" -ForegroundColor White Write-Host "4. Navigeer naar compliance.microsoft.com" -ForegroundColor White Write-Host "5. Open eDiscovery > Core of Advanced eDiscovery" -ForegroundColor White Write-Host "6. Open de case en ga naar 'Holds'" -ForegroundColor White Write-Host "7. Verwijder of deactiveer holds (ALLEEN na juridische goedkeuring!)" -ForegroundColor Red Write-Host "8. Verifieer dat er geen andere juridische verplichtingen zijn" -ForegroundColor White Write-Host "`n[WAARSCHUWING] Deze actie wordt NIET aanbevolen" -ForegroundColor Red Write-Host "Verwijderen van legal holds kan leiden tot verlies van bewijs!" -ForegroundColor Red Write-Host "Verwijder alleen holds na expliciete goedkeuring van juridische afdeling!" -ForegroundColor Red exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } try { if ($Revert) { Invoke-Revert } elseif ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Usage:" -ForegroundColor Yellow Write-Host " -Monitoring Controleer of Legal Hold Policies correct zijn geconfigureerd" -ForegroundColor Gray Write-Host " -Remediation Configureer Legal Hold Policies basis instellingen" -ForegroundColor Gray Write-Host " -Revert Verwijder Legal Hold Policies configuratie (NIET AANBEVOLEN!)" -ForegroundColor Red } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan try { Disconnect-ExchangeOnline -Confirm:$false -ErrorAction SilentlyContinue | Out-Null } catch { # Negeer disconnect fouten } }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder Legal Hold Policies kunnen organisaties niet voldoen aan juridische bewaarplichten, rechterlijke bevelen, AVG-verzoeken en interne onderzoeken. Dit kan leiden tot juridische sancties, spoliation-sancties waarbij rechters negatieve conclusies kunnen trekken over de intentie van de organisatie, boetes van toezichthouders, verlies van bewijs dat cruciaal is voor de verdediging of het onderzoek, en ernstige reputatieschade. Voor organisaties die moeten voldoen aan BIO, NIS2 en AVG is het instellen van Legal Hold Policies niet alleen een best practice, maar een essentiële vereiste om te kunnen aantonen dat passende maatregelen zijn genomen om bewijs te bewaren en juridische verplichtingen na te komen.

Management Samenvatting

Legal Hold Policies in Microsoft Purview eDiscovery voorkomen dat relevante elektronische content wordt verwijderd of gewijzigd tijdens lopende juridische procedures, compliance-onderzoeken of toezichtactiviteiten. Implementatie vereist een solide governance- en juridisch kader (inclusief beleidsdocumenten, centrale registers, en processen voor plaatsing en verwijdering), configuratie van case-based of standalone holds, het instellen van query-based holds met KQL-query's voor specifieke content, en operationele processen voor monitoring en compliance-verificatie. Het bijbehorende script legal-hold-policies.ps1 monitort de configuratie en status van holds. Legal Hold Policies dragen bij aan compliance met BIO 12.04, NIS2 artikel 21, ISO 27001 en AVG, en zijn essentieel voor organisaties die te maken krijgen met juridische bewaarplichten en compliance-vereisten.