# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

Azure AD Security Defaults: Küçük ve Orta Ölçekli İşletmeler İçin Kritik Güvenlik Kalkanı

Azure AD Security Defaults: Küçük ve Orta Ölçekli İşletmeler İçin Kritik Güvenlik Kalkanı

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.

⚠️ Önemli: Tüm kullanıcılar için Multi-Factor Authentication (MFA) zorunlu olacaktır.

Yapmanız Gerekenler:

  1.  
  2. Microsoft Authenticator uygulamasını telefonunuza indirin
  3.  
  4. aka.ms/mfasetup adresinden MFA kaydınızı tamamlayın
  5.  
  6. Test girişi yaparak kurulumun doğru olduğundan emin olun
  7.  

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


    
$($metrics.MFACoverage)%
MFA Coverage

    
$($metrics.FailedSignIns24h)
Failed Sign-ins (24h)



"@

$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:

  1. Hemen kontrol edin: Azure Portal'da Security Defaults durumunuzu kontrol edin
  2. Risk değerlendirmesi yapın: Legacy application kullanımınızı tespit edin
  3. Kullanıcıları bilgilendirin: MFA kaydı için eğitim materyalleri hazırlayın
  4. Test edin: Pilot grupta uygulayarak sorunları önceden tespit edin
  5. 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.