Bu makalede, Microsoft 365 Yönetim alanınızda Güvenlik Varsayılanlarını nasıl etkinleştirip devre dışı bırakacağınızı göstereceğiz
Bu makalede, Microsoft 365 Yönetim alanınızda Güvenlik Varsayılanlarını nasıl etkinleştirip devre dışı bırakacağınızı göstereceğiz. Microsoft 365'teki Güvenlik Varsayılanları, çok faktörlü kimlik doğrulamayı uygulayarak ve eski kimlik doğrulama yöntemlerini engelleyerek hesap korumasını artıran önceden yapılandırılmış ayarlardır – tüm kullanıcılar için temel ve etkili güvenlik sağlar.
Microsoft Azure Active Directory'nin sunduğu Security Defaults (Güvenlik Varsayılanları) özelliği, modern siber tehdit ortamında organizasyonların temel güvenlik ihtiyaçlarını karşılayan kritik bir koruma katmanıdır. Özellikle Premium lisanslara sahip olmayan küçük ve orta ölçekli işletmeler için tasarlanan bu özellik, ekranınızda gördüğünüz gibi tek bir düğmeyle aktifleştirilebilen, ancak arkasında güçlü güvenlik mekanizmaları barındıran bir çözümdür.
Security Defaults Nedir ve Neden Kritik?
Görselde dikkat çeken kırmızı çerçeveli alan, organizasyonunuzun güvenlik durumunu gösteren en kritik noktadır. "Enabled (recommended)" seçeneği, Microsoft'un tüm organizasyonlara şiddetle tavsiye ettiği güvenlik seviyesini temsil eder. Eğer bu ayar "Disabled" durumundaysa, organizasyonunuz %99.9 oranında engellenebilecek güvenlik tehditlerine karşı savunmasız durumdadır.
Microsoft'un İstatistiklerine Göre Kritik Gerçekler
Microsoft'un güvenlik raporlarına göre:
- %99.9 oranında hesap güvenliği ihlali MFA ile önlenebilir
- %80 oranında veri sızıntısı zayıf veya çalınan kimlik bilgileri nedeniyle gerçekleşir
- Legacy authentication kullanan sistemler %67 daha fazla saldırıya maruz kalır
Microsoft 365 için Güvenlik Varsayılanlarını Nasıl Etkinleştirir veya Devre Dışı Bırakılır
Security Defaults'un Sağladığı Koruma Katmanları
1. Evrensel Multi-Factor Authentication (MFA) Zorunluluğu
Security Defaults etkinleştirildiğinde, tüm kullanıcılar için MFA zorunlu hale gelir. Bu özellik:
# MFA durumunu kontrol etme scripti
Connect-MsolService
Get-MsolUser -All | Select-Object DisplayName, UserPrincipalName,
@{Name="MFA Status"; Expression={
if($_.StrongAuthenticationRequirements.State){
$_.StrongAuthenticationRequirements.State
} else {
"Disabled"
}
}}
Uygulama Senaryoları:
- İlk 14 gün içinde kullanıcılar MFA kayıt sürecini tamamlamalıdır
- Azure Portal, Microsoft 365 Admin Center gibi kritik portallara erişimde anında MFA istenir
- Kullanıcı deneyimini bozmadan güvenlik sağlanır
2. Yönetici Hesapları İçin Katmanlı Güvenlik
Admin hesapları için özel güvenlik gereksinimleri:
| Admin Rolü | MFA Gereksinimi | Ek Güvenlik |
|---|---|---|
| Global Administrator | Her oturumda | Risk tabanlı erişim kontrolü |
| Security Administrator | Her oturumda | Koşullu erişim |
| Exchange Administrator | Her oturumda | Privileged Identity Management önerisi |
| User Administrator | Her oturumda | Just-in-time erişim önerisi |
3. Legacy Authentication'ın Tamamen Engellenmesi
Legacy (Basic) Authentication protokolleri engellendiğinde:
# Legacy authentication kullanımını tespit etme
$startDate = (Get-Date).AddDays(-30)
$endDate = (Get-Date)
Search-UnifiedAuditLog -StartDate $startDate -EndDate $endDate `
-ResultSize 5000 -Operations "UserLoggedIn" |
Where-Object {$_.AuditData -like "*ClientInfoString*"}
Engellenen Protokoller:
- POP3
- IMAP4
- SMTP AUTH
- Exchange ActiveSync (EAS)
- Exchange Web Services (EWS)
- PowerShell without modern auth
4. Riskli Girişlere Karşı Otomatik Koruma
Security Defaults, Azure AD Identity Protection'ın temel özelliklerini içerir:
- Impossible travel detection: Fiziksel olarak imkansız lokasyon değişiklikleri
- Anonymous IP detection: Tor, VPN veya proxy kullanımı
- Malware linked IP: Bilinen kötü amaçlı IP adreslerinden erişim
- Unfamiliar sign-in properties: Alışılmadık cihaz veya lokasyon
Conditional Access vs Security Defaults: Hangisini Seçmeli?
Security Defaults Kullanım Senaryoları
✅ Security Defaults tercih edilmeli:
- Azure AD Free veya Office 365 lisansları kullanıyorsanız
- 500'den az kullanıcınız varsa
- Basit ama etkili güvenlik istiyorsanız
- IT ekibiniz sınırlı kaynaklara sahipse
- Hızlı ve kolay implementasyon gerekiyorsa
Conditional Access'e Geçiş Senaryoları
Conditional Access tercih edilmeli:
- Azure AD Premium P1/P2 lisansınız varsa
- Granüler kontrol gerekiyorsa
- Farklı kullanıcı grupları için farklı politikalar gerekiyorsa
- Özel uygulamalar için spesifik kurallar tanımlamak istiyorsanız
Security Defaults'tan Conditional Access'e Geçiş Yol Haritası
Adım 1: Mevcut Durumu Değerlendirme
# Security Defaults durumunu kontrol et
Connect-AzureAD
$securityDefaults = Get-AzureADDirectorySettingTemplate |
Where-Object {$_.DisplayName -eq "Security Defaults"}
if($securityDefaults){
Write-Host "Security Defaults template found" -ForegroundColor Green
$settings = Get-AzureADDirectorySetting |
Where-Object {$_.DisplayName -eq "Security Defaults"}
$settings.Values
}
Adım 2: Conditional Access Politikalarını Hazırlama
Geçiş öncesinde oluşturulması gereken minimum politikalar:
1. MFA Zorunluluğu Politikası
{
"displayName": "Require MFA for all users",
"state": "enabled",
"conditions": {
"users": {
"includeUsers": ["All"]
},
"applications": {
"includeApplications": ["All"]
}
},
"grantControls": {
"builtInControls": ["mfa"]
}
}
2. Legacy Authentication Engelleme
{
"displayName": "Block legacy authentication",
"state": "enabled",
"conditions": {
"users": {
"includeUsers": ["All"]
},
"clientAppTypes": ["exchangeActiveSync", "other"]
},
"grantControls": {
"builtInControls": ["block"]
}
}
3. Admin Hesapları İçin Ek Güvenlik
# Admin hesapları için Conditional Access politikası
New-AzureADMSConditionalAccessPolicy -DisplayName "Admins require MFA" `
-State "Enabled" `
-Conditions @{
Users = @{
IncludeRoles = @(
"62e90394-69f5-4237-9190-012177145e10", # Global Admin
"194ae4cb-b126-40b2-bd5b-6091b380977d" # Security Admin
)
}
Applicati
IncludeApplicati
}
} `
-GrantControls @{
BuiltInC "CompliantDevice")
Operator = "OR"
}
Adım 3: Test ve Pilot Uygulama
# Pilot grup oluşturma
$pilotGroup = New-AzureADGroup -DisplayName "CA_Pilot_Users" `
-MailEnabled $false `
-SecurityEnabled $true `
-MailNickName "CAPilot"
# Kullanıcıları pilot gruba ekleme
$testUsers = Get-AzureADUser -Top 10
foreach($user in $testUsers){
Add-AzureADGroupMember -ObjectId $pilotGroup.ObjectId `
-RefObjectId $user.ObjectId
}
Adım 4: Security Defaults'u Devre Dışı Bırakma
⚠️ UYARI: Bu adım sadece tüm Conditional Access politikaları test edildikten sonra yapılmalıdır!
# Security Defaults'u devre dışı bırakma
$templateId = (Get-AzureADDirectorySettingTemplate |
Where-Object {$_.DisplayName -eq "Security Defaults"}).Id
$settings = New-Object Microsoft.Open.AzureAD.Model.DirectorySetting
$settings.DisplayName = "Security Defaults"
$settings["IsEnabled"] = "false"
Set-AzureADDirectorySetting -Id $settings.Id -DirectorySetting $settings
Risk Tabanlı Erişim Politikaları Oluşturma
Kullanıcı Risk Politikası
# Yüksek riskli kullanıcılar için parola sıfırlama zorunluluğu
$userRiskPolicy = @{
DisplayName = "High risk users must reset password"
State = "Enabled"
C
UserRiskLevels = @("High")
Users = @{
IncludeUsers = "All"
}
}
GrantC
BuiltInC "Mfa")
Operator = "AND"
}
}
Oturum Risk Politikası
# Riskli oturumlar için MFA zorunluluğu
$signInRiskPolicy = @{
DisplayName = "Medium and high risk sign-ins require MFA"
State = "Enabled"
C
SignInRiskLevels = @("Medium", "High")
Users = @{
IncludeUsers = "All"
}
}
GrantC
BuiltInC
}
}
Password Protection Ayarlarının Optimize Edilmesi
Azure AD Password Protection Yapılandırması
# Özel yasaklı parola listesi oluşturma
$bannedPasswords = @(
"Sirket2024",
"Password123",
"Admin2024",
"Ankara06"
)
# Custom banned password list güncelleme
Set-AzureADPasswordProtectionCustomBannedPasswordList `
-CustomBannedPasswords $bannedPasswords
# Password protection ayarlarını etkinleştirme
$settings = @{
EnableBannedPasswordCheck = $true
EnableBannedPasswordCheck
BannedPasswordCheckMode = "Enforced"
}
Parola Politikası En İyi Uygulamaları
| Politika | Önerilen Değer | Açıklama |
|---|---|---|
| Minimum uzunluk | 12 karakter | NIST 800-63B standardı |
| Karmaşıklık | Devre dışı | Uzunluk ve MFA yeterli |
| Geçerlilik süresi | Sınırsız | Sadece risk durumunda değiştir |
| Geçmiş kontrolü | Son 24 parola | Tekrar kullanımı engelle |
| Account lockout | 10 deneme | Brute force koruması |
İzleme ve Raporlama
Sign-in Logs Analizi
# Son 7 günlük başarısız giriş denemeleri
$startDate = (Get-Date).AddDays(-7).ToString("yyyy-MM-dd")
$failedSignIns = Get-AzureADAuditSignInLogs -Filter "status/errorCode ne 0 and createdDateTime ge $startDate"
$failedSignIns | Group-Object UserPrincipalName |
Select-Object Name, Count |
Sort-Object Count -Descending |
Export-Csv "FailedSignIns_Weekly.csv"
MFA Kullanım Raporu
# MFA registration durumu raporu
Connect-MgGraph -Scopes "Reports.Read.All"
$report = Get-MgReportAuthenticationMethodUserRegistrationDetail
$report | Select-Object UserPrincipalName,
IsMfaCapable,
IsMfaRegistered,
IsPasswordlessCapable |
Export-Excel "MFA_Status_Report.xlsx"
Kullanıcı Eğitimi ve Change Management
Kullanıcı Bilgilendirme E-posta Şablonu
Önemli Güvenlik Güncellemesi
Sayın Çalışanımız,
Kurumsal güvenliğimizi artırmak için Security Defaults özelliğini aktifleştiriyoruz. Bu değişiklik [Tarih] itibarıyla devreye girecektir.
Yapmanız Gerekenler:
- Microsoft Authenticator uygulamasını telefonunuza indirin
- aka.ms/mfasetup adresinden MFA kaydınızı tamamlayın
- Test girişi yaparak kurulumun doğru olduğundan emin olun
Sık Sorulan Sorular:
- MFA her girişte mi istenecek?
Hayır, güvenilir cihazlarda 14 günde bir istenecektir. - Telefonum yoksa ne yapmalıyım?
IT departmanı ile iletişime geçerek alternatif yöntemler hakkında bilgi alın.
Sorularınız için: it-support@sirket.com
Troubleshooting ve Yaygın Sorunlar
Sorun 1: MFA Kaydı Yapamayan Kullanıcılar
# MFA sorunlu kullanıcıları tespit etme
$problemUsers = Get-MgUser -All | Where-Object {
$_.StrongAuthenticationMethods.Count -eq 0
}
# Geçici MFA bypass (sadece acil durumlar için)
$user = Get-AzureADUser -ObjectId "user@domain.com"
Set-MsolUser -UserPrincipalName $user.UserPrincipalName `
-StrongAuthenticationRequirements @()
Sorun 2: Legacy Application Uyumluluk
# Legacy authentication kullanan uygulamaları tespit etme
$legacyApps = Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-30) `
-EndDate (Get-Date) -Operations UserLoggedIn -ResultSize 5000 |
Where-Object {$_.AuditData -match "ClientInfoString.*Outlook/15.0"}
# App password oluşturma (geçici çözüm)
# Not: Security Defaults aktifken app password kullanılamaz
Sorun 3: Conditional Access Çakışmaları
# Çakışan politikaları tespit etme
$policies = Get-AzureADMSConditionalAccessPolicy
$c
foreach($policy in $policies){
if($policy.State -eq "Enabled"){
$conflicts += [PSCustomObject]@{
PolicyName = $policy.DisplayName
Users = $policy.Conditions.Users.IncludeUsers
Apps = $policy.Conditions.Applications.IncludeApplications
C
}
}
}
$conflicts | Format-Table -AutoSize
Performans Metrikleri ve KPI'lar
Güvenlik KPI Dashboard
# Güvenlik metrikleri toplama
function Get-SecurityMetrics {
$metrics = @{
Date = Get-Date
TotalUsers = (Get-AzureADUser -All $true).Count
MFAEnabledUsers = (Get-MsolUser -All | Where-Object {$_.StrongAuthenticationMethods.Count -gt 0}).Count
AdminAccounts = (Get-AzureADDirectoryRole | Get-AzureADDirectoryRoleMember).Count
DisabledLegacyAuth = (Get-AzureADPolicy | Where-Object {$_.DisplayName -like "*Legacy*"}).Count
FailedSignIns24h = (Get-AzureADAuditSignInLogs -Filter "createdDateTime ge $(Get-Date).AddDays(-1) and status/errorCode ne 0").Count
}
# MFA coverage hesaplama
$metrics.MFACoverage = [math]::Round(($metrics.MFAEnabledUsers / $metrics.TotalUsers) * 100, 2)
return $metrics
}
# Dashboard HTML oluşturma
$metrics = Get-SecurityMetrics
$dashboardHTML = @"
Azure AD Security Dashboard
"@
$dashboardHTML | Out-File "SecurityDashboard.html"
Gelecek Planlama ve Yol Haritası
3 Aylık Güvenlik Geliştirme Planı
1. Ay - Temel Güvenlik:
- ✅ Security Defaults aktifleştirme
- ✅ MFA enrollment kampanyası
- ✅ Legacy authentication envanteri
2. Ay - İleri Seviye Koruma:
- ⬜ Conditional Access pilot
- ⬜ Risk-based policies
- ⬜ Privileged Identity Management
3. Ay - Optimizasyon:
- ⬜ Zero Trust modeline geçiş
- ⬜ Passwordless authentication pilot
- ⬜ Advanced threat analytics
Sonuç ve Öneriler
Security Defaults, Microsoft'un sunduğu ücretsiz ancak son derece etkili bir güvenlik çözümüdür. Görselinizdeki "Enabled (recommended)" seçeneği, organizasyonunuzun güvenlik duruşunu anında iyileştirecek kritik bir adımdır.
Acil Aksiyon Önerileri:
- Hemen kontrol edin: Azure Portal'da Security Defaults durumunuzu kontrol edin
- Risk değerlendirmesi yapın: Legacy application kullanımınızı tespit edin
- Kullanıcıları bilgilendirin: MFA kaydı için eğitim materyalleri hazırlayın
- Test edin: Pilot grupta uygulayarak sorunları önceden tespit edin
- Aktifleştirin: Tüm hazırlıklar tamamlandıktan sonra Security Defaults'u etkinleştirin
Unutmayın: %99.9 oranında hesap güvenliği ihlali, Security Defaults ile önlenebilir. Bu basit ama güçlü özelliği kullanmamak, organizasyonunuzu gereksiz risklere maruz bırakmak anlamına gelir.
Bu makale, Azure AD Security Defaults ve Conditional Access özellikleri için hazırlanmıştır. Tüm PowerShell scriptleri test ortamında denenmelidir.