Excel Macros Van Internet Geblokkeerd

💼 Management Samenvatting

Het afdwingen van het blokkeren van macro's in Excel-bestanden die vanaf internet zijn gedownload is de meest doorslaggevende beveiligingsmaatregel binnen Microsoft 365, omdat het rechtstreeks ingrijpt in de ransomwareketen die via schadelijke bijlagen wordt gestart en voorkomt dat kwaadwillende macrocode ooit wordt uitgevoerd op werkplekken van de Nederlandse overheid.

Aanbeveling
Implementeer
Risico zonder
Critical
Risk Score
10/10
Implementatie
6u (tech: 2u)
Van toepassing op:
Excel
Microsoft 365 Apps

Cybercriminelen benutten nog steeds massaal Visual Basic for Applications om gebruikers te misleiden tot het uitvoeren van code die downloader-malware, PowerShell-payloads en laterale bewegingsscripts activeert. De aanvalslijn is telkens herkenbaar: een overtuigende spearphishingmail levert een met macro's verrijkte .xlsm- of .xlsb-bijlage, Windows markeert het bestand automatisch met Mark of the Web, de gebruiker opent Excel en krijgt een uitnodigende knop om inhoud in te schakelen, waarna de macro onmiddellijk verbinding legt met een command-and-controlserver die verdere malware binnenhaalt. Incidentonderzoeken van onder andere het NCSC tonen aan dat families als Emotet, Qakbot en IcedID miljoenen euro's aan schade veroorzaken doordat één nietsvermoedende medewerker macro's activeert. Hoewel Microsoft sinds 2022 standaardblokkeringslogica levert, blijkt in audits dat beheerders deze instelling soms terugdraaien om uitzonderingen mogelijk te maken of omdat oudere sjablonen niet meer functioneren. Daardoor ontstaat een vals gevoel van veiligheid: men denkt beschermd te zijn omdat Microsoft dat aankondigde, terwijl in werkelijkheid de registry-instelling elders is overschreven. Voor organisaties binnen de Nederlandse publieke sector, waar de BIO, NIS2 en departementale aanwijzingen expliciet vragen om aantoonbare maatregelen tegen macrogebaseerde malware, is het essentieel om niet alleen op standaardgedrag te vertrouwen maar het beleid actief te valideren en te documenteren. Het blokkeren van macro's neutraliseert de meest succesvolle social-engineeringaanval op kantoorautomatisering en sluit aan op de strategie van de Nederlandse Baseline voor Veilige Cloud om menselijke fouten te compenseren met harde technische waarborgen.

PowerShell Modules Vereist
Primary API: Intune / groep beleid
Connection: Registry beleid
Required Modules:

Implementatie

In de praktijk draait deze maatregel om het afdwingen van de registersleutel HKCU:\Software\Policies\Microsoft\Office\16.0\Excel\Security\TrustCenter met de DWORD-waarde BlockContentExecutionFromInternet op 1. Zodra deze waarde aanwezig is, beoordeelt Excel bij elke start of het geopende bestand een Mark-of-the-Web-zone-identificatie bevat. Bestanden die via e-mail, Teams, SharePoint of webbrowsers zijn binnengekomen krijgen automatisch ZoneId 3 mee en worden daardoor zonder uitzondering geblokkeerd; de gebruiker krijgt een duidelijke melding dat het risico te groot is en dat alleen het verwijderen van de markering via de eigenschappen van het bestand de blokkade opheft. Bestanden die lokaal zijn gemaakt of vanuit gecontroleerde interne bronnen komen behouden hun normale gedrag, waardoor legitieme macro's binnen vertrouwde werkstromen bruikbaar blijven. Het afdwingen via Intune, GPO of het meegeleverde PowerShell-script zorgt ervoor dat niet alleen nieuwe installaties conform zijn, maar ook roaming-profielen en thuiskantoren. Tegelijkertijd is er aandacht nodig voor bekende omzeilpogingen, zoals ziptools die de zone-informatie strippen of gebruikers die handmatig de blokkering opheffen. Door het beleid centraal op te leggen en te koppelen aan monitoring en bewustwording blijft de bescherming continu aanwezig en zijn auditrapportages eenvoudig te onderbouwen met configuratie- en testbewijs.

Vereisten

Het voorbereiden van deze maatregel begint met het zorgvuldig in kaart brengen van het applicatielandschap waarin Excel wordt gebruikt. Binnen de Nederlandse Baseline voor Veilige Cloud betekent dit dat beheerders niet alleen kijken naar de standaard Microsoft 365 Apps voor enterprise, maar ook naar gespecialiseerde werkstations met bijvoorbeeld Access Runtime of lokale line-of-business-oplossingen die nog afhankelijk zijn van VBA. Zonder een actueel overzicht bestaat het risico dat bepaalde afdelingen buiten scope vallen, waardoor er alsnog kwetsbare ketens ontstaan. Daarom wordt er eerst een configuration management-dataset samengesteld waarin iedere werkplek, kantoorlocatie en virtuele desktopomgeving wordt gekoppeld aan de versie van Office, de distributiemethode en de verantwoordelijke eigenaar. Dit vormt het vertrekpunt voor de verdere afstemming met security officers, privacy officers en lijnmanagers.

Vervolgens moeten de technische randvoorwaarden worden bevestigd. Alleen Microsoft 365 Apps versie 2203 of hoger ondersteunt de moderne, door Microsoft geleverde macroblokkering die deze beleidsinstelling afdwingt. In de praktijk lopen sommige organisaties nog met semi-onderhouden Office 2019- of Office 2021-installaties, waardoor een versnelde updatecampagne nodig kan zijn. Ook Windows 10 of Windows 11 is vereist voor een betrouwbare interpretatie van Mark of the Web. Oudere Windows-versies hanteren een andere opslag van zone-informatie, waardoor bestanden toch zouden kunnen worden uitgevoerd. Daarom hoort bij de voorbereiding een validatiescript dat tijdens een proefuitrol controleert of het Zone.Identifier-stream mechanisme op elk bestandsysteem daadwerkelijk werkt en of andere beveiligingsproducten (zoals antivirus met sandboxing) het gedrag niet beïnvloeden.

De beheerketen moet beschikken over een eenduidig platform voor configuratiebeheer. Bij voorkeur worden Intune Configuration Profiles gebruikt, omdat deze zowel moderne als hybride werkplekken bereiken. Voor omgevingen met traditionele domeinworkstations blijft Group Policy noodzakelijk en moet de organisatie zeker weten dat de meest recente Office ADMX-sjablonen zijn geïmporteerd in de centrale store. Naast de configuratiekanalen zijn credentials en werkprocessen nodig om de registersleutel onder gebruikerscontext te beheren, inclusief ondersteuning voor roaming profiles en gedeelde accounts. Het meegeleverde PowerShell-script in deze repository wordt ingezet om tijdens pilots te verifiëren dat de sleutel zich daadwerkelijk onder HKCU bevindt en niet door conflicterende scripts wordt overschreven.

Omdat het blokkeren van internetmacro's impact heeft op eindgebruikers, is een volwassen veranderaanpak onderdeel van de vereisten. Communicatieteams stellen begrijpelijke boodschappen op die uitleggen waarom de blokkering zichtbaar is en hoe medewerkers een legitieme macro via een gecontroleerd proces kunnen laten whitelisten. Opleidingsafdelingen verwerken het onderwerp in security-awarenessprogramma's zodat medewerkers niet geneigd zijn om de blokkering te omzeilen. Daarnaast moet er een intakeproces bestaan voor bedrijfskritische macro's waarbij ontwikkelteams de bestaande VBA-code herzien, de functionaliteit migreren naar Office-scripts of de macro laten ondertekenen met een vertrouwd certificaat. Zonder deze voorbereiding zou de maatregel worden gezien als hinderlijk en zouden teams massaal alternatieve kanalen zoeken.

Tot slot verlangt de Nederlandse Baseline voor Veilige Cloud dat de vereisten worden vertaald naar controleerbare documentatie. Dit betekent dat er een risicoanalyse, een architectuurontwerp en een acceptatiecriteria-document beschikbaar zijn voordat het beleid live gaat. Hierin wordt beschreven hoe de maatregel bijdraagt aan BIO 12.02, welke procedures gelden voor uitzonderingen, en welke bewijsstukken tijdens audits moeten worden aangeleverd. Ook wordt de benodigde capaciteit geborgd: meestal volstaat een kwart FTE technisch beheer en een kwart FTE functioneel beheer om updates, awareness en reviewcycli bij te houden. Door vooraf al deze voorwaarden te adresseren ontstaat een stabiel fundament en wordt voorkomen dat de maatregel halverwege moet worden teruggedraaid.

Implementeeratie

De implementatie start met een gefaseerde uitrol via Intune, zodat zowel moderne als hybride apparaten dezelfde configuratie ontvangen. Binnen het Intune-beheercentrum wordt een configuratieprofiel voor Microsoft 365 Apps aangemaakt waarin uitsluitend de relevante Excel-beveiligingsinstelling wordt ingeschakeld. Door een afzonderlijk profiel te gebruiken blijft het beleid overzichtelijk, kunnen wijzigingen worden gevolgd in de auditlog en kunnen toekomstige aanpassingen aan andere Office-onderdelen worden gedaan zonder het macrobeleid te raken. Tijdens de pilotfase wordt het profiel toegewezen aan een kleine groep security champions die de gebruikerservaring beoordelen en controleren of macro's uit interne bronnen nog steeds functioneren.

Na de pilot wordt het beleid gekoppeld aan alle productiegebruikersgroepen. Het advies is om met een dynamische groep te werken die iedere gebruiker met een Microsoft 365 E3- of E5-licentie bevat, zodat nieuwe medewerkers automatisch onder het beleid vallen. Voor specialistische accounts, zoals serviceaccounts of accounts die uitsluitend op virtuele servers worden gebruikt, kan een aparte groep worden gemaakt die pas wordt toegevoegd na een risicoafweging. Intune-rapportages worden dagelijks nagekeken om te bevestigen dat het profiel correct is toegepast en dat er geen foutcodes optreden door verouderde Office-versies.

Het PowerShell-script in deze repository fungeert als extra borging. Beheerders draaien het script via een Intune Remediation of een Configuration Manager pakket, zodat het lokaal controleert of de BlockContentExecutionFromInternet-waarde aanwezig is en zo nodig direct wordt gezet. Hiermee worden scenario's afgedekt waarin gebruikers een laptop lang offline gebruiken of waarin een concurrerende instelling de registersleutel toch wijzigt. Het script logt de bevindingen naar het Windows Event Log, waardoor SOC-analisten afwijkingen kunnen oppakken in hun SIEM.

Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Remediation) – Local registry configuration verification/remediation.

Voor werkplekken die nog afhankelijk zijn van traditionele domeinbesturing wordt een Group Policy Object opgesteld met de nieuwste Office ADMX-sjablonen. Het beleid wordt gekoppeld aan de betreffende organisatorische eenheden, waarna een geforceerde herverwerking wordt uitgevoerd. Omdat het een gebruikersinstelling betreft, is het noodzakelijk dat gebruikers na de GPO-toepassing uit- en weer inloggen. Documenteer in het change record dat het beleid zowel via Intune als via GPO aanwezig is, zodat auditors kunnen zien hoe de overlap is geregeld voor hybride scenario's.

Communicatie naar eindgebruikers is integraal onderdeel van de implementatie. Voorafgaand aan de brede uitrol ontvangen medewerkers een korte uitleg via intranet, Teams-kanalen en de security awareness-nieuwsbrief. Hierin staat dat het blokkeren van macro's een bewuste maatregel is en hoe men legitieme macro's kan laten toetsen. Tijdens de eerste weken na de uitrol worden extra servicedeskmedewerkers ingezet om vragen te beantwoorden en voorbeelden te verzamelen. Parallel wordt een testscenario uitgevoerd waarbij een gecontroleerd schadelijk bestand vanaf een externe bron wordt gedownload om te bevestigen dat Excel geen optie meer biedt om de macro te starten. Het testrapport met screenshots wordt opgeslagen als auditbewijs.

Tot slot wordt iedere implementatiefase afgesloten met een review waarin de bevindingen uit pilots, productie-uitrol en gebruikersfeedback worden geanalyseerd. Waar nodig worden aanvullende maatregelen getroffen, zoals het automatisch migreren van macro's naar vertrouwde locaties of het automatiseren van code-signing. Door deze iteratieve aanpak blijft de maatregel niet alleen technisch correct, maar wordt hij ook gedragen door de organisatie. De lessons learned worden opgenomen in het standaard werkboek van de Nederlandse Baseline voor Veilige Cloud, zodat toekomstige projecten direct profiteren van deze ervaring.

Testing Procedure is replaced with continuous kwaliteitscontrole: iedere sprint wordt een geautomatiseerd testbestand vanuit een gecontroleerde website gedownload naar een set referentieapparaten. De testleider documenteert de melding in Excel, controleert de Zone.Identifier via PowerShell en slaat de resultaten op in het centrale auditdossier. Deze herhaalbare aanpak bewijst dat de blokkering niet alleen tijdens de eerste dag werkte, maar ook standhoudt na Office-updates of beleidswijzigingen.

monitoring

Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Monitoring) – Verifieer BlockContentExecutionFromInternet is 1 over fleet.

Monitoring begint bij de configuratie zelf: het script verzamelt dagelijks de waarde van BlockContentExecutionFromInternet en schrijft het resultaat naar een centraal logboek. Deze gegevens worden ingevoerd in het SIEM-platform waarna een drempelwaarde van honderd procent naleving wordt afgedwongen. Zodra één apparaat een afwijking meldt, genereert het platform een hoge prioriteitsmelding voor het SOC, omdat een ontbrekende blokkade direct misbruikbaar is. Door de data te verrijken met device compliance informatie uit Intune kan men nauwkeurig zien of het een vers geïnstalleerd apparaat, een administratief account of een uitzondering betreft.

Naast configuratiedata worden functionele indicatoren verzameld. Microsoft Defender voor Office 365 levert rapportages over gedetecteerde macro-gebaseerde bedreigingen en geeft inzicht in gebruikers die proberen macro's uit verdachte bestanden te starten. Het aantal incidenten hoort na de implementatie drastisch te dalen. Een plotselinge stijging duidt op een nieuwe campagne die mogelijk alsnog binnendringt via gebruikers die de beveiliging handmatig hebben verwijderd. Deze signalen worden besproken in het operationele securityoverleg zodat er onmiddellijk aanvullende maatregelen, zoals mailflow-aanpassingen of sandboxing, kunnen worden geactiveerd.

Ook gebruikerservaring is een belangrijke graadmeter. De servicedesk registreert ieder ticket waarin medewerkers melden dat een macro is geblokkeerd. Door het aantal tickets per afdeling te analyseren ziet men welke teams extra begeleiding nodig hebben of waar legacy-processen nog draaien op macro's uit externe bronnen. Deze informatie voedt het adoptieprogramma en helpt prioriteiten stellen voor de migratie naar moderne add-ins of Power Platform-oplossingen.

Bypass-pogingen verdienen specifieke aandacht. Eventlogs waarin gebruikers via de bestands eigenschappen de blokkering opheffen worden verzameld met behulp van Advanced Auditing. De meldingen worden gekoppeld aan een awareness-workflow: de gebruiker ontvangt uitleg waarom het loslaten van de blokkade risicovol is en de lijnmanager wordt geïnformeerd. Wanneer dezelfde gebruiker meerdere keren de blokkering opheft, wordt het account tijdelijk beperkt en volgt een gesprek met de CISO. Op deze manier ontstaat een cultuur waarin beveiligingsmaatregelen serieus worden genomen.

Per kwartaal voert het securityteam een formele review uit waarin alle meetwaarden worden samengebracht: de technische naleving, het aantal malware-incidenten, de voortgang van migratietrajecten en de status van eventuele uitzonderingen. Het rapport wordt gedeeld met het directieteam en vormt onderdeel van de verplichte BIO-dossieropbouw. Wanneer blijkt dat de naleving onder de honderd procent zakt, wordt een verbeterplan opgesteld waarin zowel technische als organisatorische acties worden benoemd. Door monitoring als continu proces te behandelen blijft de maatregel effectief en sluit deze aan bij de principes van de Nederlandse Baseline voor Veilige Cloud.

De belangrijkste kengetallen die in het dashboard verschijnen zijn het percentage apparaten waarop de registrywaarde aanwezig is, het aantal macrogebaseerde malwaredetecties, het aantal gebruikers dat een blokkering probeert te verwijderen en de hoeveelheid lopende migratietrajecten voor legitieme macro's. Door deze kengetallen maandelijks te bespreken in het governanceboard ontstaat transparantie en wordt het mogelijk om nieuwe investeringen, zoals aanvullende ontwikkelcapaciteit voor add-ins, onderbouwd aan te vragen.

Remediatie

Wanneer tijdens monitoring blijkt dat de waarde BlockContentExecutionFromInternet ontbreekt of op nul staat, wordt het incident onmiddellijk als hoog risico aangemerkt. Het kan betekenen dat een gebruiker of een applicatie de beveiliging bewust heeft teruggedraaid, of dat er een fout in het uitrolproces zit. Het eerste herstelstap is daarom het isoleren van het betreffende apparaat in Microsoft Defender for Endpoint zodat eventuele actieve malware geen kans krijgt om lateraal te bewegen. Tegelijkertijd ontvangt de servicedesk een waarschuwing om contact op te nemen met de gebruiker en het apparaat niet verder te gebruiken totdat de controle is afgerond.

Gebruik PowerShell-script block-macros-from-internet.ps1 (functie Invoke-Remediation) – Force Schakel in macro blocking via registry.

Het PowerShell-script voor remediatie wordt vervolgens via Intune of een beheerde oplossing gedraaid. Dit script controleert of de registry-structuur aanwezig is, maakt de sleutel indien nodig aan en zet de waarde op 1. De uitvoer wordt gelogd zodat kan worden aangetoond dat de maatregel technisch is hersteld. In gevallen waarin automatische remediatie faalt, logt een beheerder interactief in en voert dezelfde actie uit via Set-ItemProperty. Na de correctie wordt Excel gestart en wordt een testbestand met een macro vanaf internet geopend om te bevestigen dat de blokkering opnieuw actief is.

Daarna volgt een root-causeanalyse. Men onderzoekt in Intune of het configuratieprofiel correct aan de gebruiker was toegewezen, of dat er strijdige policies zijn die dezelfde sleutel beheren. Ook wordt nagegaan of er recent scripts of software zijn geïnstalleerd die legacy-instellingen proberen te forceren. Wanneer blijkt dat een beheerder het beleid bewust heeft uitgeschakeld om een exception mogelijk te maken, wordt dit gemeld bij de CISO en wordt de betrokken persoon gevraagd het wijzigingsproces opnieuw te doorlopen.

Als uit interviews blijkt dat er een legitiem zakelijk proces is dat macro's van externe partners nodig heeft, wordt een gecontroleerd uitzonderingspad ingericht. Dit pad begint met een risicoafweging waarin wordt beoordeeld of de macro kan worden omgezet naar een interne oplossing of kan worden ondertekend met een vertrouwd certificaat. Alleen als dat niet mogelijk is, wordt een tijdelijke uitzondering verstrekt op een afzonderlijke, streng beheerde werkplek waarop aanvullende monitoring en netwerksegmentatie zijn ingeschakeld.

Tijdens de remediatie wordt ook gekeken naar breder misbruik. Het SOC controleert de logboeken op tekenen van downloader-activiteit, verdachte PowerShell-processen of netwerkverbindingen naar bekende command-and-controledomeinen. Indien iets verdachts wordt aangetroffen, start een volledige forensische analyse met geheugenopnames en bestandssystemen. Zo niet, dan wordt het incident afgesloten met de constatering dat er geen daadwerkelijke besmetting heeft plaatsgevonden, maar dat de configuratie wel tijdelijk kwetsbaar was.

Alle stappen worden vastgelegd in het centrale ticketingsysteem inclusief datum, verantwoordelijke en bewijsstukken zoals screenshots of loguitvoer. Het rapport wordt gedeeld met de auditafdeling zodat kan worden aangetoond dat afwijkingen snel worden opgespoord en hersteld. Deze documentatie ondersteunt tevens de naleving van BIO-controle 12.02 en bewijst dat de organisatie grip houdt op kritieke beveiligingsinstellingen. Door remediatie als een gestructureerd proces te benaderen blijft het vertrouwen in de maatregel hoog en wordt voorkomen dat individuele problemen leiden tot het uitschakelen van de gehele beveiligingsfunctie.

Compliance en Auditing

Het blokkeren van macro's afkomstig van internet vormt een verplichte maatregel binnen vrijwel ieder relevant normenkader waarmee Nederlandse overheidsorganisaties te maken hebben. De Baseline Informatiebeveiliging Overheid benoemt expliciet dat technische maatregelen nodig zijn tegen schadelijke software en dat organisaties moeten aantonen hoe zij de belangrijkste aanvalspaden sluiten. Omdat macro's historisch gezien de meest succesvolle vector zijn binnen kantoorautomatisering, wordt het afdwingen van de BlockContentExecutionFromInternet-instelling gezien als een directe invulling van BIO-maatregel 12.02.01. Door in het beleidsdossier vast te leggen hoe de maatregel is ingericht en hoe monitoring plaatsvindt, kan tijdens audits snel worden onderbouwd dat aan deze eis wordt voldaan.

Ook de Europese NIS2-richtlijn en de Nederlandse uitvoering daarvan vragen om aantoonbare risicobeheersmaatregelen voor essentiële diensten. Artikel 21 benadrukt dat organisaties passende en evenredige technische en organisatorische maatregelen moeten nemen om cyberrisico's te beperken. Het macrobeleid sluit hier op aan doordat het een concrete, controleerbare instelling betreft die is gekoppeld aan continue monitoring en incidentrespons. Door de besluitvorming en de operationele uitvoering te documenteren, inclusief de manier waarop uitzonderingen worden afgehandeld, kunnen toezichthouders direct zien dat er een gesloten beheercyclus bestaat.

Internationale normen zoals ISO/IEC 27001 en het NIST Cybersecurity Framework vereisen eveneens maatregelen rond het voorkomen van malware. Hoewel deze normen technologie-agnostisch zijn, erkennen auditors dat het blokkeren van internetmacro's een best practice is binnen de beschermingscategorie PR.PT-2 en Annex A.8.7. Voor organisaties die samenwerken met defensie of internationale partners komen daar nog aanvullende eisen bij, zoals de DISA STIG O365-EX-000001 en de aanbevelingen van het Britse NCSC. Door dezelfde maatregel te gebruiken voor al deze kaders ontstaat harmonisatie: één technische configuratie levert bewijs voor meerdere controles.

Vanuit het perspectief van assurance is het essentieel dat bewijsstukken systematisch worden verzameld. Denk aan exports van Intune-rapportages die aantonen dat honderd procent van de apparaten compliant is, screenshots van het beleid in de beheerportalen, logbestanden van het remediatiescript en testrapporten waarin het blokkeren van een schadelijk bestand wordt vastgelegd. De documentatie wordt opgeslagen in het centrale compliance managementsysteem, gekoppeld aan de relevante controles en voorzien van eigenaarschap en bewaartermijnen. Zo kan tijdens audits snel een spoor van bewijs worden overhandigd zonder ad-hoc werk.

Ten slotte wordt minimaal eenmaal per jaar een interne audit uitgevoerd waarbij het macrobeleid steekproefsgewijs wordt gecontroleerd op werkplekken, in Intune, binnen Group Policy en in het SIEM. De uitkomsten worden besproken tijdens het auditcomité en leiden, indien nodig, tot verbetermaatregelen of bijgestelde procedures. Deze cyclus toont aan dat de maatregel niet alleen op papier bestaat, maar daadwerkelijk leeft binnen de organisatie. Daarmee voldoet de Nederlandse Baseline voor Veilige Cloud aan haar eigen uitgangspunt: beveiligingscontroles zijn effectief wanneer ze permanent worden gemonitord, aantoonbaar worden beheerd en onderdeel uitmaken van de governanceketen.

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
<# ================================================================================ OFFICE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Excel - Block Macros From Internet .DESCRIPTION DISA STIG Control: O365-EX-000001 Controleert dat macros worden geblokkeerd in Excel-bestanden van internet. Registry Path: HKCU:\Software\Policies\Microsoft\Office\16.0\Excel\Security\TrustCenter Registry Value: BlockContentExecutionFromInternet Expected Value: 1 .NOTES Filename: block-macros-from-internet.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 DISA STIG: O365-EX-000001 #> #Requires -Version 5.1 [CmdletBinding()] param([Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert, [switch]$WhatIf) $ErrorActionPreference = 'Stop' $PolicyName = "Excel - Block Macros From Internet" $RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Excel\Security\TrustCenter" $RegistryValueName = "BlockContentExecutionFromInternet" $ExpectedValue = 1 function Test-Compliance { if (-not (Test-Path $RegistryPath)) { return @{ IsCompliant = $false; RegistryPathExists = $false; CurrentValue = $null; ExpectedValue = $ExpectedValue } } $regValue = Get-ItemProperty -Path $RegistryPath -Name $RegistryValueName -ErrorAction SilentlyContinue $currentValue = if ($regValue) { $regValue.$RegistryValueName } else { $null } return @{ IsCompliant = ($currentValue -eq $ExpectedValue); RegistryPathExists = $true; CurrentValue = $currentValue; ExpectedValue = $ExpectedValue } } function Invoke-Monitoring { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan $result = Test-Compliance Write-Host "Registry: $RegistryPath" -ForegroundColor Gray Write-Host "Value: $RegistryValueName = $($result.ExpectedValue)" -ForegroundColor Gray if (-not $result.RegistryPathExists) { Write-Host "`nStatus: [FAIL] NON-COMPLIANT" -ForegroundColor Red; return $result } Write-Host "Current: $($result.CurrentValue)" -ForegroundColor $(if ($result.IsCompliant) { 'Green' } else { 'Red' }) Write-Host "`nStatus: $(if ($result.IsCompliant) { '[OK] COMPLIANT' } else { '[FAIL] NON-COMPLIANT' })" -ForegroundColor $(if ($result.IsCompliant) { 'Green' } else { 'Red' }) return $result } function Invoke-Remediation { Write-Host "`nREMEDIATION: $PolicyName" -ForegroundColor Cyan if (-not (Test-Path $RegistryPath)) { New-Item -Path $RegistryPath -Force | Out-Null } Set-ItemProperty -Path $RegistryPath -Name $RegistryValueName -Value $ExpectedValue -Type DWord -Force Write-Host "[OK] Configured" -ForegroundColor Green Start-Sleep -Milliseconds 500 return Test-Compliance } function Invoke-Revert { if (Test-Path $RegistryPath) { $regValue = Get-ItemProperty -Path $RegistryPath -Name $RegistryValueName -ErrorAction SilentlyContinue if ($regValue) { Remove-ItemProperty -Path $RegistryPath -Name $RegistryValueName -Force; Write-Host "[OK] Removed" -ForegroundColor Green } } } try { if ($Monitoring) { $result = Invoke-Monitoring; exit $(if ($result.IsCompliant) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation; exit $(if ($result.IsCompliant) { 0 } else { 1 }) } elseif ($Revert) { Invoke-Revert; exit 0 } else { Write-Host "Usage: -Monitoring | -Remediation | -Revert" -ForegroundColor Yellow } } catch { Write-Error $_; exit 2 }

Risico zonder implementatie

Risico zonder implementatie
Critical: Het niet afdwingen van deze instelling laat de belangrijkste aanvalsvector voor ransomware volledig open. Zonder blokkade kan één phishingmail voldoende zijn om downloader-malware te starten, inloggegevens te stelen en bedrijfsprocessen stil te leggen. De verwachte schade varieert van langdurige hersteltrajecten en verlies van publieke dienstverlening tot forse financiële claims wegens datalekken. Daarnaast voldoet de organisatie dan niet aan de BIO en aan internationale verplichtingen, waardoor audits ongunstig uitvallen en toezicht kan ingrijpen.

Management Samenvatting

Dwing via Intune of GPO af dat Excel-bestanden met een Mark of the Web geen macro's mogen uitvoeren. Hiermee wordt ruim zeventig procent van de Office-gebaseerde malwareketens geblokkeerd, voldoe je aan BIO 12.02, ISO 27001 A.8.7 en NIS2, en sluit je naadloos aan op DISA STIG O365-EX-000001. De implementatie vraagt hooguit enkele uren maar levert een structurele reductie van ransomware- en spionagerisico's op.