Dit regelen configureert connection filter safe list via Microsoft Intune apparaat configuratie beleid of compliance policies om Windows endpoints te beveiligen volgens security best practices.
Vereisten
m365
Implementatie
Gebruik PowerShell-script connection-filter-safe-list.ps1 (functie Invoke-Monitoring) β Monitoren.
monitoring
Gebruik PowerShell-script connection-filter-safe-list.ps1 (functie Invoke-Monitoring) β Controleren.
Remediatie
Gebruik PowerShell-script connection-filter-safe-list.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
Connection Filter Safe List Review
.DESCRIPTION
Ensures the "Safe List" feature is disabled in connection filter.
Safe List allows subscribed mailing lists to bypass filtering - security risk.
.NOTES
Filename: connection-filter-safe-list.ps1
Author: Nederlandse Baseline voor Veilige Cloud
.EXAMPLE
.\connection-filter-safe-list.ps1 -Monitoring
Check if safe list is disabled
#>#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 "Connection Filter Safe List" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
Write-Host "Checking connection filter safe list..." -ForegroundColor Gray
$policy = Get-HostedConnectionFilterPolicy -ErrorAction Stop
$safeListEnabled = $policy.EnableSafeList
if ($safeListEnabled) {
Write-Host " [FAIL] SAFE LIST: ENABLED (Security Risk!)" -ForegroundColor Red
Write-Host " Known senders bypass ALL filtering" -ForegroundColor Red
Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red
exit 1
}
else {
Write-Host " [OK] SAFE LIST: DISABLED (Secure)" -ForegroundColor Green
Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green
exit 0
}
}
catch {
Write-Host "`n[FAIL] ERROR: $_" -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policy = Get-HostedConnectionFilterPolicyif (-not $policy.EnableSafeList) {
Write-Host " [OK] Safe list already disabled" -ForegroundColor Green
exit 0
}
Write-Host "Disabling safe list..." -ForegroundColor Gray
Set-HostedConnectionFilterPolicy -Identity $policy.Name -EnableSafeList $false -ErrorAction Stop
Write-Host "`n[OK] Safe list disabled" -ForegroundColor Green
Write-Host "All mail now subject to proper filtering" -ForegroundColor Cyan
exit 0
}
catch {
Write-Host "`n[FAIL] ERROR: $_" -ForegroundColor Red
exit 2
}
}
function Invoke-Revert {
try {
Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop
$policy = Get-HostedConnectionFilterPolicySet-HostedConnectionFilterPolicy -Identity $policy.Name -EnableSafeList $true -ErrorAction Stop
Write-Host " β οΈ Safe list enabled" -ForegroundColor Yellow
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 "Use: -Monitoring | -Remediation | -Revert" -ForegroundColor Yellow
}
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}