Dit regelen configureert aangepaste script personal restricted via Microsoft Intune apparaat configuratie beleid of compliance policies om Windows endpoints te beveiligen volgens security best practices.
Vereisten
m365
Implementatie
Gebruik PowerShell-script custom-script-personal-restricted.ps1 (functie Invoke-Monitoring) – Monitoren.
monitoring
Gebruik PowerShell-script custom-script-personal-restricted.ps1 (functie Invoke-Monitoring) – Controleren.
Remediatie
Gebruik PowerShell-script custom-script-personal-restricted.ps1 (functie Invoke-Remediation) – Herstellen.
Compliance en Auditing
Beleid documentatie
Compliance & Frameworks
CIS M365: Control 18.9.19.2 (L1) - CIS Security Benchmark aanbevelingen
BIO: 16.01 - BIO Baseline Informatiebeveiliging Overheid - 16.01 - Gebeurtenissen logging en audittrails
ISO 27001:2022: A.12.4.1 - ISO 27001:2022 - Gebeurtenissen logging en audittrails
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
Custom Script Personal Sites Restricted
.DESCRIPTION
Restricts custom scripts on personal SharePoint sites
.NOTES
NL Baseline v2.0
Security risk: Custom scripts can introduce XSS vulnerabilities
#>#Requires -Version 5.1#Requires -Modules ExchangeOnlineManagement
[CmdletBinding()]
param([switch]$Monitoring)
$ErrorActionPreference = 'Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Custom Script Personal Sites Restricted" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Write-Host " ⚠️ Manual verification required" -ForegroundColor Yellow
Write-Host "`n PowerShell Commands:" -ForegroundColor Cyan
Write-Host " Connect-SPOService -Url https://TENANT-admin.sharepoint.com" -ForegroundColor Gray
Write-Host " Get-SPOSite -IncludePersonalSite `$true | Select-Object Url,DenyAddAndCustomizePages" -ForegroundColor Gray
Write-Host "`n Required Setting:" -ForegroundColor Cyan
Write-Host " ✓ DenyAddAndCustomizePages = True (custom scripts blocked)" -ForegroundColor Gray
Write-Host "`n Remediation Command:" -ForegroundColor Yellow
Write-Host " Set-SPOSite -Identity <URL> -DenyAddAndCustomizePages `$true" -ForegroundColor Gray
Write-Host "`n Security Risk:" -ForegroundColor Red
Write-Host " • Custom scripts can introduce XSS vulnerabilities" -ForegroundColor Red
Write-Host " • Potential for malicious code execution" -ForegroundColor Red
Write-Host " • Data exfiltration risk" -ForegroundColor Red
Write-Host "`n Security Benefits:" -ForegroundColor Cyan
Write-Host " • Prevents script injection attacks" -ForegroundColor Gray
Write-Host " • Reduces attack surface" -ForegroundColor Gray
Write-Host " • Maintains site security" -ForegroundColor Gray
Write-Host "`n ⚠️ Security Risk: Custom scripts can introduce XSS!" -ForegroundColor Red
exit 0
}
catch {
Write-Host "ERROR: $_" -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring) { Invoke-Monitoring }
else { Write-Host "Use: -Monitoring" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
function Invoke-Remediation {
<#
.SYNOPSIS
Herstelt de configuratie naar de gewenste staat
.DESCRIPTION
Dit is een monitoring-only control, remediation delegeert naar monitoring
#>
[CmdletBinding()]
param()
Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow
Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan
Invoke-Monitoring
}