Exchange AD Split Permissions uten anger

Selv virksomheter som har migrert postboksene fullt ut til skyen, kjører fortsatt ofte lokale Exchange-servere, og med dem en undervurdert sikkerhetsrisiko for Active Directory. Modellen «AD Split Permissions» fratar Exchange de brede AD-privilegiene som angripere kan utnytte til å ta over hele domenet. Frem til nå har innføringen i stor grad strandet på de prosessendringene den påfører administratorene. Denne artikkelen viser hvordan du elegant kan komme forbi nettopp den hindringen: et skript som selektivt gir de tapte AD-tillatelsene tilbake, kun på de relevante OU-ene, slik at den kjente admin-arbeidsflyten bevares samtidig som du oppnår hele sikkerhetsgevinsten.

Exchange AD Split Permissions uten anger

TLDR: hva om vi fjerner ulempene?

Jeg har funnet en måte å gi AD- og RBAC-tillatelser tilbake direkte der Exchange-brukere, grupper og kontakter befinner seg, uten at det krever endringer for administratorer eller identitetsstyringssystemer. Etter min erfaring har akkurat den friksjonen vært den viktigste sperren for de fleste bedrifter. Og vi beholder likevel sikkerhetsgevinsten mot lateral movement og domenekompromittering.

Active Directory

Det gjøres i tre steg:

  1. Implementer AD split permission-modellen
  2. Gi Exchange-serverne de tapte AD-tillatelsene tilbake, men kun på de relevante OU-ene
  3. Gi Exchange RBAC for å reaktivere manglende PowerShell-cmdlets

Alt via Microsofts anvisninger, AD-ACL-er eller Exchange RBAC-tildelinger.

A presenter sits in front of a laptop explaining a slide titled Step 1: Active Directory Permissions by glueckkanja. The slide covers how to implement Microsoft Exchange AD Split Permissions, including PowerShell commands for creating a delegation group (New-ADGroup, Add-ADGroupMember) and applying permissions via the script Add-ExchangeADSplitPermissionOnOU.ps1.
Webcast: Exchange AD Split Permissions uten anger. En steg-for-steg innføringsguide

Hvorfor bryr vi oss (nå)?

Temaet har i stor grad blitt oversett eller ignorert siden det ble introdusert med Exchange 2010 SP1. Men standardmodellen med delte tillatelser utgjør en betydelig sikkerhetsrisiko for overtakelse av Active Directory. Kombinert med at Exchange de siste årene har vært beryktet for eksterne exploits, er det på tide å handle.

Problemet stammer fra privilegier som er tildelt på roten av et domene og som arves gjennom hele domenet.

  • endre tillatelser på brukere og grupper (i praksis full tilgang)
  • endre gruppemedlemmer
  • tilbakestille passord på brukere
  • opprette og slette brukere og grupper

Permissions

Kun visse høyt privilegerte Tier 0-brukere og -grupper er beskyttet av AdminSDHolder-prosessen (attributtet admincount=1), og i mange miljøer finnes det ubeskyttede brukere eller grupper som kan gjøre det mulig å kompromittere domenet eller skogen, eller i det minste forårsake alvorlig skade.

Fremtredende eksempler:

  • Entra Connect Sync-konto ved bruk av Password Hash Sync
  • Standardgrupper
  • Ubeskyttede egendefinerte grupper eller admin- og tjenestekontoer
    • Skrivetilgang på GPO-er (som gjelder domenekontrollere)
    • Håndtering av tilgang til AD-backuper, backup-server, PKI-maler, hypervisor, ...

Det er svært vanskelig i ettertid å demme opp for alle disse eksisterende og fremtidige potensielle angrepsveiene. For den egendefinerte OU-en _ADM kan du deaktivere ACL-arv, men de fleste standardobjekter kan ikke flyttes fra standard Builtin-OU eller Users-container og forblir sårbare.

Det er mye bedre å fjerne de kraftige tillatelsene fra roten, noe som gjøres ved å innføre Active Directory split permissions-modellen. Configure Exchange Server for split permissions | Microsoft Learn

Og Microsoft er enig: «…encouraged to implement Active Directory split permissions» Active Directory Hardening Series - Part 7 – Implementing Least Privilege | Microsoft Community Hub

Men hvorfor er det ingen som gjør det?

Siden split permissions ikke var tilgjengelig før Exchange 2010 SP1, hadde alle akseptert situasjonen på det tidspunktet, og det virker som om sikkerhetsteamene ikke klarte å presse gjennom modellen etter at den ble tilgjengelig.

Og den ville ha tvunget frem endringer i admin- og IDM-prosesser, som å opprette brukere eller distribusjonslister i AD først, og først deretter bruke Exchange til å «mail enable» dem.

Info: Følgende cmdlets vil ikke lenger være tilgjengelige eller virke: Add-DistributionGroupMember, New-DistributionGroup, New-Mailbox, New-MailContact, New-MailUser, New-RemoteMailbox, Remove-DistributionGroup, Remove-DistributionGroupMember, Remove-Mailbox, Remove-MailContact, Remove-MailUser, Remove-RemoteMailbox, Update-DistributionGroupMember, Add-ADPermission, Remove-ADPermission

Eksempler på tilpasninger:

  • New-Mailbox (der Exchange skriver til AD) ville blitt:
    • New-ADUser (der adm.jdoe skriver til AD)
    • Enable-Mailbox
  • Add-ADPermission for SendAs-rettigheter måtte gjøres via AD Users and Computers i sikkerhetsfanen, og krever ofte ekstra AD-tillatelser for standardadministratorer.

Vis meg dette alternativet uten anger

Ansvarsfraskrivelse: Les og forstå følgende lenker og artikler fullstendig, gjennomfør endringen i et testmiljø først, og forsikre deg om at AD-backuper er oppdatert og at gjenopprettingsrutiner er etablert.

Kartlegg dagens bruk

Du bør først sjekke hvilke av de berørte cmdletene som er i bruk på hvilke OU-er:

$CsvPath = "C:\temp\SplitPermissionAdminAuditLog.csv"
$Cmdlets = "Add-ADPermission","Remove-ADPermission","New-DistributionGroup","Remove-DistributionGroup","Add-DistributionGroupMember","Update-DistributionGroupMember","Remove-DistributionGroupMember","New-Mailbox","Remove-Mailbox","New-RemoteMailbox","Remove-RemoteMailbox","New-MailUser","Remove-MailUser","New-MailContact","Remove-MailContact"
Search-AdminAuditLog -ResultSize 99000 -Cmdlets $Cmdlets | Select-Object RunDate,Caller,ObjectModified,CmdletName,@{Name='CmdletParameters';Expression={[string]::join(",", ($\_.CmdletParameters))}},succeeded,error | Export-Csv -Path $CsvPath -Delimiter ";" -Encoding Unicode -NoTypeInformation

Rask analyse av caller og cmdlets:

$CSVs = Import-Csv -Path $CsvPath -Delimiter ";"
$CSVs | Group-Object Caller
$CSVs | Group-Object CmdletName

Analyser CSV-en for å avgjøre hvor AD-tillatelser vil være nødvendig. Optimaliser eventuelt ved å flytte alle Exchange-relevante grupper til dedikerte OU-er.

Aktiver split permissions-modellen

Følg Microsofts instruksjoner «Switch to Active Directory split permissions» i Configure Exchange Server for split permissions | Microsoft Learn(IKKE RBAC split permissions)

I praksis fjerner dette de farlige tillatelsene til gruppen «Exchange Windows Permissions» og fjerner også Exchange som gruppemedlem.

Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD /ActiveDirectorySplitPermissions:true
Info: For å reversere, bruk ganske enkelt /ActiveDirectorySplitPermissions:false

Tildel AD-tillatelser

Opprett en egendefinert AD-gruppe og gjør Exchange-serverne til medlemmer.

# juster OU-sti først
New-ADGroup -Name "AD_Custom Exchange Split permissions replacement" -GroupCategory Security -GroupScope DomainLocal -Path "OU=Rights,OU=Groups,OU=T1,OU=_ADM,$((Get-ADDomain).DistinguishedName)" -Description "replaces the permissions lost by split permissions on relevant OUs"
Add-ADGroupMember "AD_Custom Exchange Split permissions replacement" -Members "Exchange Trusted Subsystem" # start Exchange-serverne på nytt for at tillatelser via gruppe skal virke

Jeg har laget et skript som gjør delegering av AD-tillatelser enkel per bruksscenario.

Uten disse tillatelsene ville Exchange-serveren fått feilen «INSUFF_ACCESS_RIGHTS» fra AD.

Last ned Add-ExchangeADSplitPermissionOnOU.ps1 fra glueckkanja GitHub

Skriptet kan tildele følgende PermissionTypes:

CreateUserAndContact
Create/delete, ResetPassword og WriteAllProperties for Users og Contacts
Exchange-cmdlets: `New-Mailbox`, `New-RemoteMailbox`, `New-MailUser`, `New-MailContact` og tilsvarende `Remove-*`

GroupManage
Create/Delete Groups, Modify Member
Exchange-cmdlets: `New-DistributionGroup`, `Remove-DistributionGroup`, `Add-DistributionGroupMember`, `Update-DistributionGroupMember`, `Remove-DistributionGroupMember`
Også: brukere som administrerer DistributionGroups de eier via EAC

UserSendAs
Modify AD Permissions on Users
Exchange-cmdlet: `Add-ADPermission`

GroupSendAs
Modify AD Permissions on Groups
Exchange-cmdlet: `Add-ADPermission`

Slik bruker du skriptet:

Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU <OU> -PermissionType <GroupManage|UserSendAs|GroupSendAs|CreateUserAndContact> -Trustee "AD_Custom Exchange Split permissions replacement" # For eksempel
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=ExchangeGroups,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType GroupManage -Trustee "AD_Custom Exchange Split permissions replacement" Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=ExchangeGroups,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType GroupSendAs -Trustee "AD_Custom Exchange Split permissions replacement" Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=Users,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType UserSendAs -Trustee "AD_Custom Exchange Split permissions replacement" Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=Users,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType CreateUserAndContact -Trustee "AD_Custom Exchange Split permissions replacement"

Tildel Exchange RBAC

Reaktiver -BypassSecurityGroupManagerCheck-parameteren for Add-DistributionGroupMember- og Remove-DistributionGroupMember-cmdletene:

New-RoleGroup -Name "SplitPermission Security Group Creation and Membership" -Roles "Security Group Creation and Membership" -Members "Organization Management","Recipient Management" -Description "Brings back -BypassSecurityGroupManagerCheck to Add-DistributionGroupMember, but also needs AD ACL for Exchange Server on target DLs"

Info: Ellers får du «-BypassSecurityGroupManagerCheck parameter is not available» eller «You don't have sufficient permissions. This operation can only be performed by a manager of the group»


Reaktiver New-Mailbox, New-RemoteMailbox, New-MailContact og Remove-...-cmdlets med nødvendige parametere:

New-RoleGroup -Name "SplitPermission Mail Recipient Creation" -Roles "Mail Recipient Creation" -Members "Organization Management","Recipient Management" -Description "Brings back New-Mailbox, New-RemoteMailbox, New-MailUser, New-MailContact and matching Remove-... cmdlets, but additionally Exchange needs AD ACL for Exchange Server on target OUs"

Oppsummering

Jeg håper denne veiledningen bidrar til at flere virksomheter tar det viktige skrittet med å sikre sitt Active Directory mot kompromittering via Exchange. Etter min erfaring med å innføre Exchange AD Split Permissions-modellen hos flere kunder, har jeg ikke støtt på problemer, og innføringen har gått glatt.

Jeg håper også Microsoft innfører en OU-basert nativ tilnærming for å oppnå dette granularitetsnivået, i stedet for dagens alt-eller-ingenting-modell, noe som ville gjort utbredt adopsjon betydelig enklere.

En merknad om AD Tiering: unngå å logge på Exchange-servere med Domain Admin eller andre Tier 0-kontoer. Behandle Exchange-servere som Tier 1 og innfør AD Tiering så raskt som mulig. Som et første steg anbefaler jeg å bruke PingCastle eller Purple Knight for å vurdere AD-sikkerhetsstatusen din og identifisere eksponerte kontrollveier.

Lignende innlegg