Exchange AD Split Permissions ilman katumusta
On-premises-Exchange-asennukset ovat yhä yleisiä myös organisaatioissa, jotka ovat siirtäneet kaikki postilaatikot pilveen. Lisäksi niillä on edelleen erittäin laajat oikeudet Active Directoryssa, joten useimmiten on olemassa vahva hyökkäysreitti, jonka kautta koko AD ja sen myötä yleensä suuri osa yrityksen IT:stä voidaan vallata. Siirtyminen niin kutsuttuihin „AD Split permissions“ -oikeuksiin poistaa kriittiset oikeudet, ja olen rakentanut ratkaisun, joka poistaa ne haittapuolet, jotka yleensä estivät käyttöönoton.
TLDR: entä jos poistamme haittapuolet?
Löysin tavan myöntää AD- ja RBAC-oikeudet uudelleen niissä paikoissa, joissa Exchange-käyttäjät, -ryhmät, -kontaktit ja niin edelleen sijaitsevat. Näin ylläpitäjien tai identiteetinhallintajärjestelmien ei tarvitse muuttaa toimintatapojaan, mikä oli kokemukseni mukaan useimmille yrityksille este käyttöönotolle. Ja silti saamme tietoturvahyödyn lateraalista liikkumista ja toimialueen valtausta vastaan.

Se onnistuu kolmessa vaiheessa:
- Ota käyttöön AD split permission -malli
- Myönnä Exchange-palvelimille menetetyt AD-oikeudet, mutta vain relevanteissa OU:issa
- Myönnä Exchange RBAC ottaaksesi puuttuvat PowerShell-cmdletit uudelleen käyttöön
Kaikki tehdään Microsoftin ohjeiden, AD ACL:ien tai Exchange RBAC -määritysten avulla.
Miksi tämä on tärkeää (nyt)?
Se on suurelta osin jäänyt huomiotta tai sivuutettu siitä lähtien, kun se esiteltiin Exchange 2010 SP1:n myötä. Mutta oletusarvoinen jaettujen oikeuksien malli on suuri tietoturvariski, joka mahdollistaa Active Directoryn valtaamisen. Kun tähän yhdistetään se, että Exchange on viime vuosina ollut pahamaineinen etähyökkäyksistä, on aika toimia.
Ongelma juontaa juurensa oikeuksista, jotka on myönnetty toimialueen juureen ja jotka periytyvät läpi koko toimialueen.
- muokata käyttäjien ja ryhmien oikeuksia (käytännössä täysi käyttöoikeus)
- muokata ryhmien jäseniä
- nollata käyttäjien salasanoja
- luoda ja poistaa käyttäjiä ja ryhmiä

Vain tietyt korkeat Tier0-käyttäjät ja -ryhmät ovat suojattuja AdminSDHolder-prosessin kautta (attribuutti admincount=1), ja monissa ympäristöissä on suojaamattomia käyttäjiä tai ryhmiä, jotka voivat mahdollistaa toimialueen ja/tai metsän valtaamisen tai ainakin aiheuttaa vakavia vaikutuksia.
Tunnettuja esimerkkejä:
- Entra Connect Sync -tili PWHashSyncia käytettäessä
- Oletusryhmät
- Allowed RODC Password Replication Group yhdessä EntraConnect-tilin kanssa (jos oikea Windows RODC on olemassa)
- Katso myös Untrustworthy Trust Builders: Account Operators Replicating Trust Attack (AORTA) - SpecterOps, joka esittelee lisää reittejä (Account Operators -ryhmä on samankaltainen uhka)
- Protected Users -ryhmän tyhjentäminen luo hyökkäysvektoreita poistamalla suojauksia
- Suojaamattomat mukautetut ryhmät tai admin-/palvelutilit
- Kirjoitusoikeus GPO:ihin (jotka koskevat toimialueen ohjauskonetta)
- Käyttöoikeuksien hallinta AD-varmuuskopioihin, varmuuskopiopalvelimeen, PKI-malleihin, hypervisoriin, ...
On erittäin vaikeaa jälkikäteen rajata kaikkia näitä nykyisiä ja tulevia mahdollisia reittejä. _ADM-mukautetun OU:n osalta voisit poistaa ACL-periytymisen käytöstä, mutta useimpia oletusobjekteja ei voi siirtää oletusarvoisesta Builtin-OU:sta tai Users-säiliöstä, joten ne pysyvät haavoittuvina.
On paljon parempi poistaa laajat oikeudet juuresta, mikä tehdään ottamalla käyttöön Active Directory split permissions -malli. Configure Exchange Server for split permissions | Microsoft Learn
Ja Microsoft on samaa mieltä: „…encouraged to implement Active Directory split permissions“ Active Directory Hardening Series - Part 7 – Implementing Least Privilege | Microsoft Community Hub
Mutta miksi kukaan ei tee sitä?
Koska split permissions ei ollut saatavilla ennen Exchange 2010 SP1:tä, kaikki olivat siihen mennessä hyväksyneet tilanteen, ja näyttää siltä, että tietoturvatiimit eivät onnistuneet viemään asiaa läpi sen jälkeen kun ominaisuus oli olemassa.
Ja se olisi pakottanut muutoksia ylläpito- ja IDM-prosesseihin, kuten käyttäjien tai jakelulistojen luomisen ensin AD:hen ja vasta sen jälkeen niiden „mail enable“ -toiminnon tekemiseen Exchangessa.
Cmdletit, jotka eivät enää ole saatavilla tai toimi: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
Esimerkkejä toimintatapojen muutoksista:
- New-Mailbox (jossa Exchange kirjoittaa AD:hen) olisi:
- New-ADUser (jossa adm.jdoe kirjoittaa AD:hen)
- Enable-Mailbox
- Add-ADPermission SendAs-oikeuksia varten pitäisi tehdä AD Users and Computers -työkalun suojausvälilehdellä, ja se vaatii usein lisää AD-oikeuksia tavallisille ylläpitäjille.
Näytä minulle tämä huoleton vaihtoehto
Vastuuvapauslauseke: Lue ja ymmärrä seuraavat linkit ja artikkelit kokonaan, tee toimenpiteet ensin testiympäristössä ja varmista, että AD-varmuuskopiot ovat ajan tasalla ja palautuskäytännöt on määritetty.
Auditoi nykyinen käyttö
Tarkista ensin, mitä kyseessä olevista cmdleteistä käytetään ja missä OU:issa.$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
Kutsujan ja cmdlettien pika-analyysi:$CSVs=Import-Csv -Path $CsvPath -Delimiter ";"$CSVs|group Caller$CSVs|group CmdletNameAnalysoi CSV:stä, missä AD-oikeuksia tarvitaan. Optimoi mahdollisesti siirtämällä kaikki Exchangelle relevantit ryhmät erillisiin OU:ihin.
Ota split permissions -malli käyttöön
Seuraa ohjeita kohdassa „Switch to Active Directory split permissions“ osoitteessa Configure Exchange Server for split permissions | Microsoft Learn (EI RBAC split permissions)
Käytännössä se poistaa „Exchange Windows Permissions“ -ryhmän vaaralliset oikeudet ja poistaa myös Exchangen ryhmän jäsenyydestä.Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD /ActiveDirectorySplitPermissions:true
Peruuttaaksesi muutoksen käytä vain: /ActiveDirectorySplitPermissions:false
Myönnä AD-oikeudet
Luo mukautettu AD-ryhmä ja lisää Exchange-palvelimet sen jäseniksi.
muokkaa OU-polku ensinNew-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"
käynnistä Exchange-palvelimet uudelleen, jotta ryhmän kautta tulevat oikeudet toimivat
Olen luonut skriptin, joka helpottaa AD-oikeuksien delegointia käyttötapauskohtaisesti.
INFO: Ilman näitä oikeuksia Exchange-palvelin saisi AD:lta virheen
“INSUFF_ACCESS_RIGHTS”.
Lataa Add-ExchangeADSplitPermissionOnOU.ps1 glueckkanjan GitHubista
Se voi myöntää seuraavat PermissionType-arvot:
- CreateUserAndContact
- Users- ja Contacts-objektien luonti/poisto, ResetPassword ja WriteAllProperties
- Exchange-cmdletit: New-Mailbox, New-RemoteMailbox, New-MailUser, New-MailContact ja vastaavat Remove-*
- GroupManage
- Ryhmien luonti/poisto, jäsenten muokkaus
- Exchange-cmdletit: New-DistributionGroup, Remove-DistributionGroup, Add-DistributionGroupMember, Update-DistributionGroupMember, Remove-DistributionGroupMember
- Lisäkäyttötapaukset: käyttäjä hallinnoi omistamiaan DistributionGroup-ryhmiä osoitteen https://
/EAC kautta
- UserSendAs
- AD-oikeuksien muokkaus Users-objekteihin
- Exchange-cmdlet: Add-ADPermission
- GroupSendAs
- AD-oikeuksien muokkaus Groups-objekteihin
- Exchange-cmdlet: Add-ADPermission
Skriptin käyttö:
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU <OU> -PermissionType <GroupManage|UserSendAs|GroupSendAs|CreateUserAndContact> -Trustee "AD_Custom Exchange Split permissions replacement
esim.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"
Myönnä Exchange RBAC
Ota -BypassSecurityGroupManagerCheck-parametri uudelleen käyttöön Add-DistributionGroupMember- ja Remove-DistributionGroupMember-cmdleteille: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:
Muuten saat viestin "-BypassSecurityGroupManagerCheck parameter is not available" tai "You don't have sufficient permissions. This operation can only be performed by a manager of the group"
Ota New-Mailbox-, New-RemoteMailbox-, New-MailContact-, Remove-...-cmdletit uudelleen käyttöön tarvittavilla parametreilla: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"
Johtopäätökset
Toivon, että tämän ohjeistuksen avulla monet muutkin ottavat tämän tärkeän askeleen suojatakseen Active Directorynsa Exchangen kautta tapahtuvalta valtaukselta. En ole vielä törmännyt ongelmiin, kun olen ottanut Exchange AD split permissions -mallin ja tämän artikkelin mukaiset muutokset käyttöön asiakkaillamme.
Toivon, että Microsoft toteuttaa natiivin tavan tämän hienojakoisen, OU-pohjaisen lähestymistavan saavuttamiseksi nykyisen kaikki tai ei mitään -mallin sijaan, jotta se yleistyisi laajasti.
Koska AD Tiering on minulle tärkeä asia: älä myöskään kirjaudu Exchange-palvelimille Domain Admin -tileillä (tai millään Tier0-tilillä), vaan käsittele niitä tästä lähtien Tier1-tasona ja ota AD Tiering käyttöön mahdollisimman pian. Ensimmäisenä askeleena suosittelen työkaluja kuten PingCastle tai Purple Knight AD-tietoturvasi ja hallintapolkujesi arviointiin.














