Exchange AD Split Permissions uten anger

On-premises Exchange Server-installasjoner er fortsatt utbredt selv i organisasjoner som har flyttet alle postbokser til skyen. De har fortsatt svært vide rettigheter i Active Directory, slik at det som regel finnes en tydelig angrepsvei som kan kompromittere hele AD og med det ofte store deler av bedriftens IT. Ved å bytte til den såkalte «AD Split Permissions»-modellen fjernes de kritiske rettighetene, og jeg har utviklet en løsning som fjerner ulempene som vanligvis har hindret adopsjon.

Exchange AD Split Permissions uten anger

TLDR: hva om vi fjerner ulempene?

Jeg fant en måte å gi tilbake AD- og RBAC-rettighetene der Exchange-brukere, grupper, kontakter og lignende objekter ligger. Slik trengs det ingen tilpasning fra administratorer eller identitetsstyringssystemer, som etter min erfaring har vært det som stoppet de fleste selskapene fra å innføre modellen. Og vi beholder likevel sikkerhetsgevinsten mot lateral bevegelse og domenekompromittering.

Active Directory

Det oppnås i tre trinn:

  1. Innfør AD split permission-modellen
  2. Gi Exchange-serverne tilbake de tapte AD-rettighetene, men bare på de relevante OU-ene
  3. Tildel Exchange RBAC for å aktivere de manglende PowerShell-cmdletene på nytt

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

Hvorfor bryr vi oss (nå)?

Modellen har i stor grad blitt oversett eller ignorert siden den ble introdusert med Exchange 2010 SP1. Men standardmodellen med delte rettigheter utgjør en stor 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 rettigheter som er gitt på domenets rot og som arves gjennom hele domenet.

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

Permissions

Bare enkelte høyprivilegerte Tier0-brukere og -grupper beskyttes 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 og/eller skogen, eller i det minste forårsake alvorlig skade.

Fremtredende eksempler:

  • Entra Connect Sync-kontoen når PWHashSync brukes
  • Standardgrupper
  • Ubeskyttede egendefinerte grupper eller admin-/tjenestekontoer
    • Skriverettigheter på GPO-er (som gjelder for domenekontroller)
    • Håndtering av tilgang til AD-backuper, backup-server, PKI-maler, hypervisor, ...

Det er svært vanskelig å demme opp for alle disse eksisterende og framtidige potensielle angrepsveiene i etterkant. For den egendefinerte OU-en _ADM kan du deaktivere ACL-arv, men de fleste standardobjekter kan ikke flyttes ut av den innebygde Builtin-OU-en eller Users-kontaineren, og forblir sårbare.
Det er mye bedre å fjerne de kraftfulle rettighetene fra roten, og det 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 da allerede akseptert standardoppsettet, og det virker som at sikkerhetsteamene ikke klarte å presse gjennom endringen etter at muligheten kom.
Modellen ville også ha tvunget fram endringer i admin- og IDM-prosesser, som å opprette brukere eller distribusjonslister i AD først og deretter bruke Exchange for å «mail enable» dem.

Cmdlet-er som ikke lenger er tilgjengelige eller virker:
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å tilpasning:

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

Vis meg dette alternativet uten anger

Ansvarsfraskrivelse: Les og forstå følgende lenker og artikler i sin helhet, kjør først i et testmiljø, sørg for at AD-backupene er oppdaterte og at gjenopprettingsrutinene er på plass.

Kartlegg dagens bruk

Sjekk først hvilke av de berørte cmdlet-ene som brukes 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 RunDate,Caller,ObjectModified,CmdletName,@{Name='CmdletParameters';Expression={[string]::join(",", ($_.CmdletParameters))}},succeeded,error | Export-Csv -Path $CsvPath -Delimiter ";" -Encoding Unicode -NoTypeInformation

Rask analyse av kaller og cmdlet-er:
$CSVs=Import-Csv -Path $CsvPath -Delimiter ";"$CSVs|group Caller$CSVs|group CmdletNameAnalyser CSV-en for å se hvor AD-rettigheter vil være nødvendig. Vurder å optimalisere ved å flytte alle Exchange-relevante grupper til dedikerte OU-er.

Aktiver split permissions-modellen

Følg instruksjonene under «Switch to Active Directory split permissions» i Configure Exchange Server for split permissions | Microsoft Learn (IKKE RBAC split permissions)
I korte trekk fjerner det de farlige rettighetene til gruppen «Exchange Windows Permissions» og fjerner også Exchange som gruppemedlem.
Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD /ActiveDirectorySplitPermissions:true
For å reversere, bruk: /ActiveDirectorySplitPermissions:false

Tildel AD-rettigheter

Opprett en egendefinert AD-gruppe og legg Exchange-serverne som medlemmer.
juster OU-stien 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 rettighetene via gruppen skal fungere
Jeg har laget et skript som gjør det enkelt å delegere AD-rettighetene per bruksområde.

INFO: Uten disse rettighetene vil Exchange-serveren få feilen «INSUFF_ACCESS_RIGHTS» fra AD.

Last ned Add-ExchangeADSplitPermissionOnOU.ps1 fra glueckkanjas GitHub
Det kan tildele følgende PermissionTypes:

  • CreateUserAndContact
    • Create/delete, ResetPassword og WriteAllProperties for Users og Contacts
    • Exchange-cmdlet-er: New-Mailbox, New-RemoteMailbox, New-MailUser, New-MailContact og tilsvarende Remove-*
  • GroupManage
    • Create/Delete Groups, Modify Member
    • Exchange-cmdlet-er: New-DistributionGroup, Remove-DistributionGroup, Add-DistributionGroupMember, Update-DistributionGroupMember, Remove-DistributionGroupMember
    • Flere bruksområder: brukere som administrerer DistributionGroups de eier via https:///EAC
  • UserSendAs
    • Endre AD-rettigheter på Users
    • Exchange-cmdlet: Add-ADPermission
  • GroupSendAs
    • Endre AD-rettigheter på 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

f.eks.
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

Aktiver parameteren -BypassSecurityGroupManagerCheck på nytt for cmdlet-ene Add-DistributionGroupMember og Remove-DistributionGroupMember:
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»


Aktiver cmdlet-ene New-Mailbox, New-RemoteMailbox, New-MailContact, Remove-... med de nødvendige parameterne på nytt:
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 at flere med denne veiledningen tar dette viktige skrittet for å sikre sitt Active Directory mot kompromittering via Exchange. Jeg har ennå ikke støtt på problemer da jeg implementerte Exchange AD split permissions-modellen og tilpasningen fra denne artikkelen hos våre kunder.

Jeg håper Microsoft vil implementere en innebygd måte å oppnå denne granulære, OU-baserte tilnærmingen på, i stedet for dagens alt-eller-ingenting, slik at den kan bli tatt bredt i bruk.

Ettersom AD Tiering ligger meg tungt på hjertet: I tillegg bør du ikke logge på Exchange-servere med Domain Admin (eller andre Tier0-kontoer), men behandle dem som Tier1 fra nå av og innføre AD Tiering så snart som mulig. Som et første steg anbefaler jeg verktøy som PingCastle eller Purple Knight for å vurdere din AD Security og Control Paths.

Lignende innlegg