Muhtemelen Bilmediğiniz 5 Ücretsiz Exchange Güvenlik Aracı


Exchange e-posta güvenliği, savunulması gereken büyük bir cephedir. Artık o kadar çok saldırı yüzeyi var ki, nasıl başlayacağınıza karar vermek zor olabilir. Exchange altyapısı güvenlik kurulumunuzu düşünürken göz önünde bulundurmak isteyebileceğiniz birkaç noktayı burada bulabilirsiniz.

Bu kesinlikle tam bir liste değildir.

1. Tam Erişim ve Farklı Gönderme İzinleri

Exchange'in mükemmel bir özelliği, kullanıcılara başkalarının posta kutularına erişim izni verme yeteneğidir. Bunu, posta kutusunun sahibiyle etkili bir şekilde aynı hakları veren "Tam Erişim" iznini kullanarak veya yalnızca "Farklı Gönder" iznini vererek, yalnızca "posta kutusunun sahibiyle" değiştirme izinlerini vererek yapabilirsiniz. From” alanından belirli bir kullanıcıya.

Tam erişim vermek için aşağıdaki gibi bir PowerShell komutunu kullanabilirsiniz:

Get-Mailbox “MailboxToView” | Add-ADPermission -User “PersonWhoNeedsPermission” -ExtendedRights “Full Access”

Exchange 2013 ve sonraki sürümlerde, 'Etki Alanı Yöneticileri'nin herhangi bir üyesinin diğer kullanıcıların posta kutularını görüntüleyemediğini unutmayın.

Posta kutusuna kimin erişimi olduğunu öğrenmek için aşağıdaki PowerShell komutunu çalıştırabilirsiniz:

Get-Mailbox | Get-MailboxPermission | Where { $_.AccessRights -eq “FullAccess” -and $_.User.ToString() -ne “NT AUTHORITYSYSTEM” -and $_.User.ToString() -ne “NT AUTHORITYSELF”} | Select Identity, User | fl

Bu size, onlara erişebilecek kullanıcı ve grupların bulunduğu posta kutularının bir listesini verecektir.

Not: Bu işlemin birçok posta kutusunda çalışması biraz zaman alabilir!

2. Taşıma Kuralları

Exchange'in en sık gözden kaçan güvenlik noktalarından biri mütevazi taşıma kuralıdır. Kötü niyetli bir yöneticiniz varsa, yalnızca bir aktarım kuralı ayarlayarak potansiyel olarak herkesin e-postasını görüntüleyebilir.

Birisinin, şirketten ayrılan her e-postada karbonu kör edecek şekilde varsayılan imza taşıma kuralını değiştirdiği bir organizasyon biliyorum. Başka bir sistem yöneticisinden imzayı değiştirmesi istendiğinde bunu fark etmeleri tesadüfen oldu.

Bu tür davranışları tespit etmek oldukça zordur ancak basit bir PowerShell komutu şunu ortaya çıkarabilirdi:

Get-TransportRule | Where {$_.BlindCopyTo -ne $null} | fl Name, BlindCopyTo

Kötü niyetli amaçlarla kullanılabilecek diğer eylemler şunlardır:

Get-TransportRule | Where {$_.ModerateMessageByUser -ne $null} | fl Name, ModerateMessageByUser

Bu komut, mesaj teslim edilmeden önce onayın gerekli olduğu kuralları listeleyecektir.

Get-TransportRule | Where {$_.DeleteMessage -eq $true} | fl Name

Bu komut, mesajı silen tüm kuralları listeleyecektir.

3. Değişim Rolleri

Microsoft, Exchange 2010'dan bu yana Rol Tabanlı Erişim Denetimi modelini (RBAC) kullanıyor ve Exchange 2013 ve sonrasında bu model daha da ön plana çıktı. Temel olarak, kullanıcılara ve gruplara eylemleri ve görevleri gerçekleştirme izinlerini "kim, ne, nerede" yöntemini kullanarak atarsınız.

Örnek olarak, SampleCo'nun Londra ofisinin bir şube müdürünü (kim) ele alalım. Yönetim, şube yöneticisinin kendi şubesi (nerede) için ofis dışında yanıtlarını (ne) değiştirebilmesini istiyor.

Exchange rolü güvenliği, özel bir rol grubu oluşturarak bunu yapmamıza olanak tanır:

New-RoleGroup -Name ExampleCo_London -Roles (See Later) -Members BranchMgr1

Bu, kapsamın uygulanmadığı bir rol grubu oluşturacaktır; "nerede" bilgisi yoktur, yani BranchMgr1, kendisini destekleyen tüm Exchange nesnelerinde izinlerini kullanabilecektir.

-Members'ı atlayıp bunun yerine -RecipientOrganizationalUnitScope sağlayarak kapsamı tek bir kuruluş birimiyle sınırlandırabiliriz:

New-RoleGroup -Name ExampleCo_London -Roles (See Later) -RecipientOrganizationalUnitScope “LondonOU”

BranchMgr1'in ofis dışı yanıtlarını değiştirmesine izin verme hedefimize ulaşmak için onlara "Yardım Masası" yerleşik rolünü atayabiliriz:

New-RoleGroup -Name ExampleCo_London -Roles “Help Desk”

Ayrıca özel bir izin kümesiyle kendi rollerinizi de oluşturabilirsiniz.

Yakın zamanda Exchange sunucularımızdan birindeki aktarım kuralını kimin değiştirdiğini bulmamız gereken bir durumla karşılaştık; Neyse ki, bir posta kutusunu veya sunucuyu değiştirme iznine sahip olanları görüntülemek için kolay bir PowerShell komutu vardır:

Get-ManagementRoleAssignment -Role “Transport Rules” -WritableServer Exchange -GetEffectiveUsers

Bunu ortamımızda çalıştırmak, bu görevi gerçekleştirebilecek grupların bir listesini verdi:

4. Exchange Uç Sunucuları

Exchange Edge sunucusuna sahip olmanın ne kadar önemli olduğunu yeterince vurgulayamıyorum. Bunlar, yalnızca 25 numaralı bağlantı noktasını (SMTP) dış dünyaya maruz bırakan oldukça kesilmiş sunuculardır. Bu, saldırı yüzeylerini önemli ölçüde daraltır ve spam ve antivirüs işlemlerini başka bir (sanal) sunucuya aktarır.

Edge sunucuları, aktif dizin etki alanınızın üyesi değildir, dolayısıyla yönetici hesapları arasında şifre paylaşmadığınız sürece (değilsiniz, değil mi?), bu durumda kontrolü ele geçirmeyi başaran bir saldırgan olur Edge Sunucunuzun pek bir dayanağı yok.

Örneğin, erken alıcı reddi için kullanılan Active Directory'den gerekli bilgiler, tek yönlü bir Edge Sync işlemi aracılığıyla gönderilir.

5. Hibrit Yapılandırmalar

Dikkatinizi Office 365 ve Hibrit yapılandırmalarına çekerek bitireceğim. Şirket içi konfigürasyonların çoğunu Exchange konfigürasyonunuzun bulut veya hibrit kısmına uygulamanız mümkündür.

Exchange Online sunucularına bağlantı kurmak için aşağıdaki komutu kullanabilirsiniz:

$creds = Get-Credential
 $eonlinesession = New-PSSession – ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $creds -Authentication Basic -AllowRedirection
 Import-PsSession $eonlinesession

get-mailbox gibi bir komut göndererek başarılı bir şekilde bağlanıp bağlanmadığınızı kontrol edin ve site dışında olduğunu bildiğiniz posta kutularını döndürüp döndürmediğine bakın.

İşiniz bittiğinde bağlantıyı kesmeyi unutmayın; aksi takdirde, daha sonra kullanıcınız için mevcut tüm PowerShell oturumlarını kullandığınızda sorunlarla karşılaşabilirsiniz (daha sonra zaman aşımına uğramalarını beklemeniz gerekir ki bu da eğlenceli değildir).

Remove-PsSession $eonlinesession

İlgili makaleler