Hyperlink Warnings Ingeschakeld In Office

💼 Management Samenvatting

Wanneer gebruikers op links in Office-documenten klikken, bepaalt de instelling voor hyperlink warnings of zij eerst een duidelijke waarschuwing krijgen voordat een mogelijk onveilige website wordt geopend.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
7/10
Implementatie
5u (tech: 3u)
Van toepassing op:
Windows

Aanvallers maken intensief misbruik van ogenschijnlijk onschuldige links in Word-, Excel- en PowerPoint-bestanden om gebruikers naar phishingpagina’s, malafide downloads of gecompromitteerde cloudopslag te leiden; zonder standaard waarschuwingen is het voor een drukbezette medewerker vrijwel onmogelijk om elke URL kritisch te beoordelen.

PowerShell Modules Vereist
Primary API: Graph
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph.DeviceManagement

Implementatie

Deze control beschrijft hoe je hyperlink warnings centraal afdwingt via Microsoft Intune, groepsbeleid en het bijbehorende PowerShell-script, zodat iedere poging om een extern adres vanuit Office te openen eerst wordt voorzien van een duidelijke waarschuwing en traceerbare logging in lijn met de Nederlandse Baseline voor Veilige Cloud.

Hyperlinks in Office-documenten lijken op het eerste gezicht minder gevaarlijk dan macro’s, maar vormen in de praktijk een van de meest gebruikte routes voor gerichte phishing en credential theft. Een aanvaller hoeft geen code in het document te verstoppen; een enkele klik op een overtuigend vormgegeven link is genoeg om een gebruiker naar een nagebootste aanmeldpagina, valse SharePoint-site of downloadportaal voor zogenaamd noodzakelijke software te sturen. Zeker binnen Nederlandse overheidsorganisaties, waar documenten massaal worden gedeeld via e-mail, Teams en SharePoint, is het aantal dagelijkse linkklikken enorm. Zonder waarschuwingen went de gebruiker eraan dat elke klik direct een browser opent, waardoor hij of zij nauwelijks nog stilstaat bij domeinnamen, certificaten of subtiele afwijkingen in de URL. In een omgeving die de Nederlandse Baseline voor Veilige Cloud wil behalen, is dit een onacceptabel risico: de gebruiker mag nooit de enige verdedigingslijn zijn.

De combinatie van hyperlinks en Single Sign-On vergroot de impact van fouten. Veel overheidsmedewerkers zijn gewend dat zij met één klik en zonder extra aanmelding direct worden doorgestuurd naar diensten als SharePoint, Teams of businessapplicaties. Aanvallers spelen hierop in door URL’s te construeren die sterk lijken op vertrouwde domeinen, bijvoorbeeld door homoglyphs, subdomeinen of speciale tekens te gebruiken. Wanneer een Office-document een dergelijke link bevat en hyperlink warnings zijn uitgeschakeld, verschijnt er geen extra drempel: de browser opent direct, cookies worden meegestuurd en voor de gebruiker voelt alles vertrouwd. Pas wanneer er ongebruikelijke MFA-prompts, foutmeldingen of verdachte transacties optreden, valt op dat de sessie mogelijk is misbruikt. Op dat moment is het vaak te laat: credentials zijn geoogst, tokens zijn gestolen of aanvullende malware is gedownload.

Vanuit de BIO en NIS2 is er een duidelijke verplichting om dit soort toegangs- en integriteitsrisico’s te beheersen. BIO 12 en 16 eisen dat kritieke systemen worden beschermd tegen social-engineeringaanvallen en dat ongeautoriseerde toegang tot informatie wordt voorkomen door technische maatregelen. NIS2 artikel 21 benoemt expliciet het belang van maatregelen rond bewustwording, toegangsbeheer en incidentdetectie. Hyperlink warnings passen precies in deze combinatie: ze vormen een geautomatiseerde “vertraging” in de gebruikersflow die de kans vergroot dat iemand een verdachte link alsnog herkent, terwijl de koppeling met logging en monitoring het SOC in staat stelt om patronen van misbruik te detecteren. In de context van de Nederlandse Baseline voor Veilige Cloud betekent dit dat hyperlink warnings niet als cosmetische instelling worden gezien, maar als een volwaardige control in de verdedigingslinie rond identiteit en data.

Daarbij spelen juridische en maatschappelijke verwachtingen een rol. Overheidsorganisaties verwerken vaak gevoelige persoonsgegevens, beleidsinformatie en vertrouwelijke documenten uit ketensamenwerkingen. Wanneer een medewerker via een misleidende link in een memo of adviesdocument wordt verleid om bestanden te uploaden of aanvullende gegevens in te vullen, kan dat direct leiden tot een datalek in de zin van de AVG. Burgers en volksvertegenwoordigers verwachten dat de overheid passende technische maatregelen treft om dit te voorkomen, zeker nu phishingcampagnes steeds professioneler worden en AI-gegenereerde content nauwelijks nog van echt is te onderscheiden. Door hyperlink warnings verplicht in te schakelen en aantoonbaar te beheren, laat de organisatie zien dat zij actief werkt aan digitale weerbaarheid en niet uitsluitend vertrouwt op bewustwordingscampagnes.

Hyperlink warnings zijn bovendien een belangrijke schakel in de bredere Office-beveiligingsarchitectuur. Ze vullen maatregelen als Safe Links, Defender for Office, DNS-filtering en webproxybeleid aan. Waar deze oplossingen vooral op de achtergrond werken door kwaadaardige domeinen te blokkeren, biedt een waarschuwing in de gebruikersinterface een expliciet leermoment: de gebruiker ziet dat er een risicovolle handeling wordt uitgevoerd en kan bewust besluiten om wel of niet door te gaan. Dit sluit aan bij de principes van de Nederlandse Baseline voor Veilige Cloud, waarin techniek, gedrag en governance elkaar versterken. De organisatie stuurt niet alleen op “blokkeren waar mogelijk”, maar ook op het vergroten van digitale geletterdheid door middel van duidelijke, herhaalbare veiligheidsprikkels op de momenten dat het ertoe doet.

Implementatie en configuratie in Microsoft 365

Een robuuste implementatie van hyperlink warnings begint met het in kaart brengen van alle plekken waar deze instelling wordt aangestuurd. In veel omgevingen bestaan er nog oude Group Policy Objects, lokale registry-scripts en uiteenlopende Intune-profielen die Office- en browsergedrag beïnvloeden. Het is verstandig om eerst een inventarisatie uit te voeren: welke policies zijn actief, welke beheerteams zijn betrokken en welke uitzonderingen zijn in het verleden gemaakt voor specifieke applicaties of externe partners? Documenteer de huidige situatie in een configuratieregister dat onderdeel is van het bredere governance-dossier rond de Nederlandse Baseline voor Veilige Cloud. Op basis daarvan bepaal je welke bron leidend wordt (bij voorkeur Intune of moderne op ADMX gebaseerde policies) en welke legacy-instellingen uitgefaseerd moeten worden om configuratiedrift te voorkomen.

Vervolgens configureer je de instelling voor hyperlink warnings in de Office Trust Center- en registry-waarden. Met de bijgeleverde policytemplates of Settings Catalog-profielen in Intune stel je in dat gebruikers standaard een waarschuwing krijgen wanneer zij een hyperlink naar een extern domein openen vanuit Word, Excel of PowerPoint. In plaats van deze waarschuwing uit te schakelen om gebruiksgemak te vergroten, wordt de tekst gezien als essentieel onderdeel van de beveiligingsketen. In het ontwerp leg je vast welke teksten en talen worden gebruikt, hoe de waarschuwing zich verhoudt tot andere beveiligingsmeldingen (bijvoorbeeld Safe Links pop-ups) en welke uitzonderingen mogelijk zijn voor vertrouwde interne domeinen. Denk bijvoorbeeld aan scenario’s waarin interne opleidingsportalen of intranetten veelvuldig via hyperlinks worden benaderd; in die gevallen kun je overwegen om alleen voor externe, niet-geverifieerde domeinen een waarschuwing te tonen.

Het PowerShell-script "code/office/office-shared/hyperlink-warnings-enabled.ps1" vormt de technische ruggengraat van deze control. De functie "Invoke-Remediation" controleert de juiste registry-sleutels voor de relevante Office-versie en zet waar nodig de waarde die hyperlink warnings inschakelt. Daarnaast schrijft het script een uitgebreid logboekitem weg met onder andere de oude en nieuwe configuratiewaarde, de ingelogde gebruiker en de policy- of Intune-remediationcontext. Door dit script als remediation-task in Intune te publiceren, kun je afwijkingen automatisch herstellen, bijvoorbeeld wanneer een lokale beheerder de instelling wijzigt of wanneer een applicatie-installatie de configuratie overschrijft. Test het script altijd eerst met lokale debuginstellingen en parameters als "-Verbose" of "-WhatIf" om te bevestigen dat alleen de beoogde sleutels worden aangepast en de uitvoeringstijd ruim onder de vijftien seconden blijft, zodat het voldoet aan de operationele randvoorwaarden voor endpointbeheer.

Naast de technische configuratie is er aandacht nodig voor inrichting van processen en communicatie. Richt een change-proces in waarin wijzigingen aan hyperlink warnings expliciet als beveiligingswijziging worden behandeld, inclusief risicoanalyse, goedkeuringen door security en architectuur, en een rollbackplan. Beschrijf in de wijzigingsdocumentatie hoe deze control samenhangt met andere maatregelen zoals Safe Links, webproxybeleid, DLP-regels en awarenessprogramma’s. Organiseer daarnaast korte kennissessies voor functioneel beheerders en servicedeskmedewerkers waarin zij leren hoe zij gebruikersvragen over de waarschuwingen kunnen beantwoorden, welke argumenten richting management gebruikt kunnen worden bij eventuele weerstand, en hoe zij incidenten rond verdachte links moeten eskaleren. Door techniek, proces en communicatie in samenhang te ontwerpen, voorkom je dat de instelling later onder druk van gebruikersontevredenheid wordt teruggedraaid.

Test de configuratie gefaseerd voordat je organisatiebreed uitrolt. Begin met een kleine pilotgroep waarin verschillende typen gebruikers zijn vertegenwoordigd, zoals beleidsmedewerkers, juristen, toezichthouders en IT-beheerders. Verzamel gericht feedback op de teksten van de waarschuwingen, de samenloop met browsermeldingen en de impact op dagelijkse werkprocessen. Verwerk deze lessons learned in de definitieve configuratie en documenteer duidelijke criteria wanneer een domein als vertrouwd wordt aangemerkt. Door deze iteratieve aanpak wordt de eindconfiguratie zowel veilig als werkbaar en ontstaat er draagvlak bij sleutelgebruikers die later als ambassadeur kunnen optreden in de rest van de organisatie.

Gebruik PowerShell-script hyperlink-warnings-enabled.ps1 (functie Invoke-Remediation) – Gebruik de remediation-functie om registry-waarden consistent te zetten en afwijkingen automatisch te herstellen via Intune of Configuration Manager..

Monitoring, auditing en compliance

Zodra hyperlink warnings technisch zijn afgedwongen, verschuift de aandacht naar monitoring en aantoonbaarheid. Binnen de Nederlandse Baseline voor Veilige Cloud is het niet voldoende om instellingen eenmalig te configureren; je moet ook kunnen laten zien dat zij gedurende de tijd effectief blijven. Begin met het inrichten van configuratiemonitoring: rapporteer regelmatig vanuit Intune, Configuration Manager of een ander beheerplatform welke endpoints de gewenste registry-waarden hebben. Combineer deze informatie met het resultaat van de functie "Invoke-Monitoring" in het PowerShell-script, die afwijkingen logt naar een dedicated event log of logbestand. Vanuit daar stuur je de data naar een centraal platform zoals Microsoft Sentinel of een SIEM-oplossing van het Rijk, waar dashboards en alerts worden ingericht die direct inzicht geven in de naleving van deze control over alle apparaten en organisaties heen.

Naast configuratiestatus is het belangrijk om te begrijpen hoe vaak hyperlink warnings daadwerkelijk optreden en wat gebruikers vervolgens doen. Dit kan door Office-telemetrie, Safe Links-logs en browserlogging te combineren. Wanneer een gebruiker bijvoorbeeld herhaaldelijk waarschuwingen wegklikt en toch op verdachte links klikt, is dat een signaal voor gerichte awareness of het aanscherpen van aanvullende maatregelen. In rapportages richting CISO, CIO en auditcomités kun je statistieken opnemen zoals het aantal getoonde waarschuwingen per maand, het percentage gebruikers dat doorklikt, en de correlatie met phishingcampagnes die door het Nationaal Cyber Security Centrum of eigen threat intelligence-teams zijn gesignaleerd. Zo wordt zichtbaar dat hyperlink warnings niet alleen een technische blokkade vormen, maar ook een bron van gedrags- en dreigingsinformatie die helpt om investeringen in bewustwording en aanvullende controls te onderbouwen.

Voor compliance met BIO, NIS2 en AVG is een goed ingericht auditdossier essentieel. Leg vast welke beleidsbeslissingen zijn genomen rond hyperlink warnings, welke standaarden zijn gevolgd (zoals CIS-benchmarks of Microsoft security baselines) en hoe veranderingen worden beheerst. Sla exporten van relevante configuratie- en loggegevens op in een onveranderbare opslag, bijvoorbeeld een Azure Storage-account met write-once-read-many-configuratie, voor minimaal de duur die in de BIO voor logging en audittrails is vereist. Documenteer in procedures hoe auditors toegang kunnen krijgen tot deze gegevens, welke queries zij kunnen draaien en hoe aangetoond wordt dat afwijkingen tijdig zijn gedetecteerd en hersteld. Koppel dit alles expliciet aan de bredere NBVC-governancestructuur, zodat tijdens interne en externe audits overtuigend kan worden aangetoond dat hyperlink warnings structureel bijdragen aan de weerbaarheid van de organisatie.

Ten slotte hoort deze control onderdeel te zijn van een cyclus van continue verbetering. Neem hyperlink warnings op in periodieke risico-evaluaties, tabletop-oefeningen en red-teamscenario’s waarbij gesimuleerde phishingdocumenten worden gebruikt. Evalueer na iedere oefening of de waarschuwingen tijdig en duidelijk werden getoond, of gebruikers de juiste keuzes maakten en of de monitoringketen goed functioneerde. Werk op basis van deze lessen het beleid, de communicatie en de technische configuratie bij. Door deze feedbacklus expliciet te koppelen aan de Nederlandse Baseline voor Veilige Cloud, laat de organisatie zien dat zij niet alleen voldoet aan minimumeisen, maar actief werkt aan het verhogen van volwassenheid en het versterken van vertrouwen bij burgers, partners en toezichthouders.

Rapporteer de uitkomsten van deze cyclus structureel aan de governance-organen die verantwoordelijk zijn voor informatiebeveiliging en compliance, zoals het informatiebeveiligingsberaad, de privacy board of het digitale weerbaarheidscomité. Door indicatoren als nalevingspercentage, aantal blokkades, aantal geslaagde en mislukte phishingpogingen en tijd tot remediatie op te nemen in kwartaalrapportages, wordt hyperlink-beveiliging een vast agendapunt in de besturingsdialoog. Dit maakt het eenvoudiger om aanvullende investeringen in tooling, training of personele capaciteit te onderbouwen en om richting externe toezichthouders aan te tonen dat hyperlink warnings geen losse instelling zijn, maar een integraal onderdeel van het NBVC-programma voor digitale weerbaarheid.

Gebruik PowerShell-script hyperlink-warnings-enabled.ps1 (functie Invoke-Monitoring) – Gebruik de monitoring-functie om configuratiestatus en afwijkingen periodiek te verzamelen en door te sturen naar het centrale log- en SIEM-platform..

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
# Control: O365-CO-000008 - Hyperlink warnings must be enabled in all Office applications #Requires -Version 5.1 # DISA STIG Microsoft Office 365 ProPlus v3r3 param( [string]$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Security", [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf ) # Function for monitoring the control function Invoke-Monitoring { Write-Host "Monitoring O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Green try { $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disabled (warnings enabled), 1 = Enabled (warnings suppressed) # Check if registry path exists if (-not (Test-Path $RegistryPath)) { Write-Host "✗ Registry path does not exist: $RegistryPath" -ForegroundColor Red return $false } # Check the current value $currentValue = Get-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue if ($currentValue -and $currentValue.$valueName -eq $expectedValue) { Write-Host "✓ Control compliant: SuppressHyperlinkWarning = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green return $true } else { $actualValue = if ($currentValue) { $currentValue.$valueName } else { "Not Set" } Write-Host "✗ Control non-compliant: SuppressHyperlinkWarning = $actualValue (Expected: $expectedValue - Hyperlink warnings should be enabled)" -ForegroundColor Red return $false } } catch { Write-Host "✗ Error checking registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function for remediation function Invoke-Remediation { Write-Host "Remediating O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Yellow try { # Check if registry path exists, create if not if (-not (Test-Path $RegistryPath)) { Write-Host "Creating registry path: $RegistryPath" -ForegroundColor Yellow New-Item -Path $RegistryPath -Force | Out-Null } # Set the registry value to enable hyperlink warnings (disable suppression) $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disable suppression (enable warnings) Set-ItemProperty -Path $RegistryPath -Name $valueName -Value $expectedValue -Type DWord -Force Write-Host "✓ Registry value set successfully: $valueName = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green # Verify the setting Start-Sleep -Seconds 1 $complianceResult = Invoke-Monitoring return $complianceResult } catch { Write-Host "✗ Error configuring registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main execution function Invoke-Revert { Write-Host "Reverting O365-CO-000008: Hyperlink warnings must be enabled in all Office applications " -ForegroundColor Yellow try { if ($WhatIf) { Write-Host " [WhatIf] Would remove registry value" -ForegroundColor Cyan return $true } $valueName = "SuppressHyperlinkWarning" if (Test-Path $RegistryPath) { Remove-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue Write-Host " Removed registry value: $valueName" -ForegroundColor Green } return $true } catch { Write-Host " Error during revert: # Control: O365-CO-000008 - Hyperlink warnings must be enabled in all Office applications #Requires -Version 5.1 # DISA STIG Microsoft Office 365 ProPlus v3r3 param( [string]$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Security", [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf ) # Function for monitoring the control function Invoke-Monitoring { Write-Host "Monitoring O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Green try { $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disabled (warnings enabled), 1 = Enabled (warnings suppressed) # Check if registry path exists if (-not (Test-Path $RegistryPath)) { Write-Host "✗ Registry path does not exist: $RegistryPath" -ForegroundColor Red return $false } # Check the current value $currentValue = Get-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue if ($currentValue -and $currentValue.$valueName -eq $expectedValue) { Write-Host "✓ Control compliant: SuppressHyperlinkWarning = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green return $true } else { $actualValue = if ($currentValue) { $currentValue.$valueName } else { "Not Set" } Write-Host "✗ Control non-compliant: SuppressHyperlinkWarning = $actualValue (Expected: $expectedValue - Hyperlink warnings should be enabled)" -ForegroundColor Red return $false } } catch { Write-Host "✗ Error checking registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function for remediation function Invoke-Remediation { Write-Host "Remediating O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Yellow try { # Check if registry path exists, create if not if (-not (Test-Path $RegistryPath)) { Write-Host "Creating registry path: $RegistryPath" -ForegroundColor Yellow New-Item -Path $RegistryPath -Force | Out-Null } # Set the registry value to enable hyperlink warnings (disable suppression) $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disable suppression (enable warnings) Set-ItemProperty -Path $RegistryPath -Name $valueName -Value $expectedValue -Type DWord -Force Write-Host "✓ Registry value set successfully: $valueName = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green # Verify the setting Start-Sleep -Seconds 1 $complianceResult = Invoke-Monitoring return $complianceResult } catch { Write-Host "✗ Error configuring registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main execution if ($Monitoring) { $result = Invoke-Monitoring exit $(if ($result) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation exit $(if ($result) { 0 } else { 1 }) } elseif ($Revert) { $result = Invoke-Revert exit $(if ($result) { 0 } else { 1 }) } else { Write-Host "Usage: [-Monitoring] [-Remediation] [-Revert] [-WhatIf]" -ForegroundColor Yellow } } catch { Write-Host "Script execution error: # Control: O365-CO-000008 - Hyperlink warnings must be enabled in all Office applications #Requires -Version 5.1 # DISA STIG Microsoft Office 365 ProPlus v3r3 param( [string]$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Security", [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf ) # Function for monitoring the control function Invoke-Monitoring { Write-Host "Monitoring O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Green try { $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disabled (warnings enabled), 1 = Enabled (warnings suppressed) # Check if registry path exists if (-not (Test-Path $RegistryPath)) { Write-Host "✗ Registry path does not exist: $RegistryPath" -ForegroundColor Red return $false } # Check the current value $currentValue = Get-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue if ($currentValue -and $currentValue.$valueName -eq $expectedValue) { Write-Host "✓ Control compliant: SuppressHyperlinkWarning = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green return $true } else { $actualValue = if ($currentValue) { $currentValue.$valueName } else { "Not Set" } Write-Host "✗ Control non-compliant: SuppressHyperlinkWarning = $actualValue (Expected: $expectedValue - Hyperlink warnings should be enabled)" -ForegroundColor Red return $false } } catch { Write-Host "✗ Error checking registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function for remediation function Invoke-Remediation { Write-Host "Remediating O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Yellow try { # Check if registry path exists, create if not if (-not (Test-Path $RegistryPath)) { Write-Host "Creating registry path: $RegistryPath" -ForegroundColor Yellow New-Item -Path $RegistryPath -Force | Out-Null } # Set the registry value to enable hyperlink warnings (disable suppression) $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disable suppression (enable warnings) Set-ItemProperty -Path $RegistryPath -Name $valueName -Value $expectedValue -Type DWord -Force Write-Host "✓ Registry value set successfully: $valueName = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green # Verify the setting Start-Sleep -Seconds 1 $complianceResult = Invoke-Monitoring return $complianceResult } catch { Write-Host "✗ Error configuring registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main execution function Invoke-Revert { Write-Host "Reverting O365-CO-000008: Hyperlink warnings must be enabled in all Office applications " -ForegroundColor Yellow try { if ($WhatIf) { Write-Host " [WhatIf] Would remove registry value" -ForegroundColor Cyan return $true } $valueName = "SuppressHyperlinkWarning" if (Test-Path $RegistryPath) { Remove-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue Write-Host " Removed registry value: $valueName" -ForegroundColor Green } return $true } catch { Write-Host " Error during revert: # Control: O365-CO-000008 - Hyperlink warnings must be enabled in all Office applications #Requires -Version 5.1 # DISA STIG Microsoft Office 365 ProPlus v3r3 param( [string]$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Security", [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf ) # Function for monitoring the control function Invoke-Monitoring { Write-Host "Monitoring O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Green try { $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disabled (warnings enabled), 1 = Enabled (warnings suppressed) # Check if registry path exists if (-not (Test-Path $RegistryPath)) { Write-Host "✗ Registry path does not exist: $RegistryPath" -ForegroundColor Red return $false } # Check the current value $currentValue = Get-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue if ($currentValue -and $currentValue.$valueName -eq $expectedValue) { Write-Host "✓ Control compliant: SuppressHyperlinkWarning = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green return $true } else { $actualValue = if ($currentValue) { $currentValue.$valueName } else { "Not Set" } Write-Host "✗ Control non-compliant: SuppressHyperlinkWarning = $actualValue (Expected: $expectedValue - Hyperlink warnings should be enabled)" -ForegroundColor Red return $false } } catch { Write-Host "✗ Error checking registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function for remediation function Invoke-Remediation { Write-Host "Remediating O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Yellow try { # Check if registry path exists, create if not if (-not (Test-Path $RegistryPath)) { Write-Host "Creating registry path: $RegistryPath" -ForegroundColor Yellow New-Item -Path $RegistryPath -Force | Out-Null } # Set the registry value to enable hyperlink warnings (disable suppression) $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disable suppression (enable warnings) Set-ItemProperty -Path $RegistryPath -Name $valueName -Value $expectedValue -Type DWord -Force Write-Host "✓ Registry value set successfully: $valueName = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green # Verify the setting Start-Sleep -Seconds 1 $complianceResult = Invoke-Monitoring return $complianceResult } catch { Write-Host "✗ Error configuring registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main execution if ($Monitoring) { $result = Invoke-Monitoring exit $(if ($result) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation exit $(if ($result) { 0 } else { 1 }) } else { Write-Host "Usage: .\hyperlink-warnings-enabled.ps1 [-Monitoring] [-Remediation]" -ForegroundColor Yellow Write-Host " -Monitoring: Check current compliance status" -ForegroundColor White Write-Host " -Remediation: Apply recommended configuration" -ForegroundColor White Write-Host "" Write-Host "Manual configuration:" -ForegroundColor Cyan Write-Host "Group Policy: User Configuration > Administrative Templates > Microsoft Office 2016" -ForegroundColor White Write-Host "> Application Settings > Security Settings" -ForegroundColor White Write-Host "> Suppress hyperlink warnings: Disabled" -ForegroundColor White } " -ForegroundColor Red return $false } } # Main execution try { if ($Monitoring) { $result = Invoke-Monitoring exit $(if ($result) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation exit $(if ($result) { 0 } else { 1 }) } else { Write-Host "Usage: .\hyperlink-warnings-enabled.ps1 [-Monitoring] [-Remediation]" -ForegroundColor Yellow Write-Host " -Monitoring: Check current compliance status" -ForegroundColor White Write-Host " -Remediation: Apply recommended configuration" -ForegroundColor White Write-Host "" Write-Host "Manual configuration:" -ForegroundColor Cyan Write-Host "Group Policy: User Configuration > Administrative Templates > Microsoft Office 2016" -ForegroundColor White Write-Host "> Application Settings > Security Settings" -ForegroundColor White Write-Host "> Suppress hyperlink warnings: Disabled" -ForegroundColor White } " -ForegroundColor Red exit 1 } " -ForegroundColor Red return $false } } # Main execution try { if ($Monitoring) { $result = Invoke-Monitoring exit $(if ($result) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation exit $(if ($result) { 0 } else { 1 }) } elseif ($Revert) { $result = Invoke-Revert exit $(if ($result) { 0 } else { 1 }) } else { Write-Host "Usage: [-Monitoring] [-Remediation] [-Revert] [-WhatIf]" -ForegroundColor Yellow } } catch { Write-Host "Script execution error: # Control: O365-CO-000008 - Hyperlink warnings must be enabled in all Office applications #Requires -Version 5.1 # DISA STIG Microsoft Office 365 ProPlus v3r3 param( [string]$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Security", [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf ) # Function for monitoring the control function Invoke-Monitoring { Write-Host "Monitoring O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Green try { $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disabled (warnings enabled), 1 = Enabled (warnings suppressed) # Check if registry path exists if (-not (Test-Path $RegistryPath)) { Write-Host "✗ Registry path does not exist: $RegistryPath" -ForegroundColor Red return $false } # Check the current value $currentValue = Get-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue if ($currentValue -and $currentValue.$valueName -eq $expectedValue) { Write-Host "✓ Control compliant: SuppressHyperlinkWarning = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green return $true } else { $actualValue = if ($currentValue) { $currentValue.$valueName } else { "Not Set" } Write-Host "✗ Control non-compliant: SuppressHyperlinkWarning = $actualValue (Expected: $expectedValue - Hyperlink warnings should be enabled)" -ForegroundColor Red return $false } } catch { Write-Host "✗ Error checking registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function for remediation function Invoke-Remediation { Write-Host "Remediating O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Yellow try { # Check if registry path exists, create if not if (-not (Test-Path $RegistryPath)) { Write-Host "Creating registry path: $RegistryPath" -ForegroundColor Yellow New-Item -Path $RegistryPath -Force | Out-Null } # Set the registry value to enable hyperlink warnings (disable suppression) $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disable suppression (enable warnings) Set-ItemProperty -Path $RegistryPath -Name $valueName -Value $expectedValue -Type DWord -Force Write-Host "✓ Registry value set successfully: $valueName = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green # Verify the setting Start-Sleep -Seconds 1 $complianceResult = Invoke-Monitoring return $complianceResult } catch { Write-Host "✗ Error configuring registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main execution function Invoke-Revert { Write-Host "Reverting O365-CO-000008: Hyperlink warnings must be enabled in all Office applications " -ForegroundColor Yellow try { if ($WhatIf) { Write-Host " [WhatIf] Would remove registry value" -ForegroundColor Cyan return $true } $valueName = "SuppressHyperlinkWarning" if (Test-Path $RegistryPath) { Remove-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue Write-Host " Removed registry value: $valueName" -ForegroundColor Green } return $true } catch { Write-Host " Error during revert: # Control: O365-CO-000008 - Hyperlink warnings must be enabled in all Office applications #Requires -Version 5.1 # DISA STIG Microsoft Office 365 ProPlus v3r3 param( [string]$RegistryPath = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Security", [switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf ) # Function for monitoring the control function Invoke-Monitoring { Write-Host "Monitoring O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Green try { $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disabled (warnings enabled), 1 = Enabled (warnings suppressed) # Check if registry path exists if (-not (Test-Path $RegistryPath)) { Write-Host "✗ Registry path does not exist: $RegistryPath" -ForegroundColor Red return $false } # Check the current value $currentValue = Get-ItemProperty -Path $RegistryPath -Name $valueName -ErrorAction SilentlyContinue if ($currentValue -and $currentValue.$valueName -eq $expectedValue) { Write-Host "✓ Control compliant: SuppressHyperlinkWarning = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green return $true } else { $actualValue = if ($currentValue) { $currentValue.$valueName } else { "Not Set" } Write-Host "✗ Control non-compliant: SuppressHyperlinkWarning = $actualValue (Expected: $expectedValue - Hyperlink warnings should be enabled)" -ForegroundColor Red return $false } } catch { Write-Host "✗ Error checking registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function for remediation function Invoke-Remediation { Write-Host "Remediating O365-CO-000008: Hyperlink warnings must be enabled in all Office applications" -ForegroundColor Yellow try { # Check if registry path exists, create if not if (-not (Test-Path $RegistryPath)) { Write-Host "Creating registry path: $RegistryPath" -ForegroundColor Yellow New-Item -Path $RegistryPath -Force | Out-Null } # Set the registry value to enable hyperlink warnings (disable suppression) $valueName = "SuppressHyperlinkWarning" $expectedValue = 0 # 0 = Disable suppression (enable warnings) Set-ItemProperty -Path $RegistryPath -Name $valueName -Value $expectedValue -Type DWord -Force Write-Host "✓ Registry value set successfully: $valueName = $expectedValue (Hyperlink warnings enabled)" -ForegroundColor Green # Verify the setting Start-Sleep -Seconds 1 $complianceResult = Invoke-Monitoring return $complianceResult } catch { Write-Host "✗ Error configuring registry setting: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main execution if ($Monitoring) { $result = Invoke-Monitoring exit $(if ($result) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation exit $(if ($result) { 0 } else { 1 }) } else { Write-Host "Usage: .\hyperlink-warnings-enabled.ps1 [-Monitoring] [-Remediation]" -ForegroundColor Yellow Write-Host " -Monitoring: Check current compliance status" -ForegroundColor White Write-Host " -Remediation: Apply recommended configuration" -ForegroundColor White Write-Host "" Write-Host "Manual configuration:" -ForegroundColor Cyan Write-Host "Group Policy: User Configuration > Administrative Templates > Microsoft Office 2016" -ForegroundColor White Write-Host "> Application Settings > Security Settings" -ForegroundColor White Write-Host "> Suppress hyperlink warnings: Disabled" -ForegroundColor White } " -ForegroundColor Red return $false } } # Main execution try { if ($Monitoring) { $result = Invoke-Monitoring exit $(if ($result) { 0 } else { 1 }) } elseif ($Remediation) { $result = Invoke-Remediation exit $(if ($result) { 0 } else { 1 }) } else { Write-Host "Usage: .\hyperlink-warnings-enabled.ps1 [-Monitoring] [-Remediation]" -ForegroundColor Yellow Write-Host " -Monitoring: Check current compliance status" -ForegroundColor White Write-Host " -Remediation: Apply recommended configuration" -ForegroundColor White Write-Host "" Write-Host "Manual configuration:" -ForegroundColor Cyan Write-Host "Group Policy: User Configuration > Administrative Templates > Microsoft Office 2016" -ForegroundColor White Write-Host "> Application Settings > Security Settings" -ForegroundColor White Write-Host "> Suppress hyperlink warnings: Disabled" -ForegroundColor White } " -ForegroundColor Red exit 1 }

Risico zonder implementatie

Risico zonder implementatie
High: Gebruikers openen zonder waarschuwing links uit Office-documenten, waardoor phishing, credential theft en datalekken via malafide websites nauwelijks worden gestopt.

Management Samenvatting

Schakel hyperlink warnings centraal in, herstel afwijkingen automatisch en gebruik de logging als bewijs richting BIO, NIS2 en AVG-toezichthouders.