İçindekiler

    Yazıyı Dinle

    Hazır
    Tarayıcınızın yerleşik ses sentezi özelliğini kullanır.

    Yazı Boyutu

    Küçük Aa
    Normal Aa
    Büyük Aa
    Çok Büyük Aa

    Kaydet

    📑

    Bu makaleyi daha sonra okumak için kaydedin

    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ı
    Yazıyı dinlemek için oynat butonuna tıklayın

    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
                )
            }
            Applications = @{
                IncludeApplications = "All"
            }
        } `
        -GrantControls @{
            BuiltInControls = @("Mfa", "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"
        Conditions = @{
            UserRiskLevels = @("High")
            Users = @{
                IncludeUsers = "All"
            }
        }
        GrantControls = @{
            BuiltInControls = @("PasswordChange", "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"
        Conditions = @{
            SignInRiskLevels = @("Medium", "High")
            Users = @{
                IncludeUsers = "All"
            }
        }
        GrantControls = @{
            BuiltInControls = @("Mfa")
        }
    }
    

    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
        EnableBannedPasswordCheckOnPremises = $true
        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
    $conflicts = @()
    
    foreach($policy in $policies){
        if($policy.State -eq "Enabled"){
            $conflicts += [PSCustomObject]@{
                PolicyName = $policy.DisplayName
                Users = $policy.Conditions.Users.IncludeUsers
                Apps = $policy.Conditions.Applications.IncludeApplications
                Controls = $policy.GrantControls.BuiltInControls
            }
        }
    }
    
    $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.

    Önceki Yazı Terminal Sunucularında Kullanılmayan Oturumların Yönetimi: Güvenlik, Performans ve Verimlilik İçin Kritik Önlemler
    Terminal Sunucularında Kullanılmayan Oturumların Yönetimi: Güvenlik, Performans ve Verimlilik İçin Kritik Önlemler

    Terminal Services (TS) veya modern adıyla Remote Desktop Services (RDS), kurums...

    Sonraki Yazı Microsoft 365 için Güvenlik Varsayılanlarını Nasıl Etkinleştirir veya Devre Dışı Bırakılır
    Microsoft 365 için Güvenlik Varsayılanlarını Nasıl Etkinleştirir veya Devre Dışı Bırakılır

    Bu makalede, Microsoft 365 Yönetim alanınızda Güvenlik Varsayı...