Vaka Analizi (Case Study): 6.500+ Uç Noktada Kurumsal Yazılım ve EDR Geçişi — Yaşanan Kritik Sorunlar ve Çözüm Mimarisi
Dağınık 85 bölge şubesi ve 6.500+ istemcili kurumsal bir finans kurumunda gerçekleştirilen EDR ve merkezi yazılım geçiş projesinde; WAN bant genişliği doygunluğu, BITS tıkanması, MSI 1603/1618 mutex çakışmaları, eski ajanın Tamper Protection engeli ve Kerberos Double-Hop darboğazlarının isimsizleştirilmiş kök neden analizi ve uçtan uca teknik çözüm rehberi.
AuditAgent™ Kod & Mimari Doğrulaması
Güven Skoru: %99AuditAgent Onaylı (Enterprise Case Study Validated)
Uygulama Önkoşulları & Gereksinimler
1. Yönetici Özeti ve Kurumsal Profil (İsimsizleştirilmiş)
Bu vaka analizi, Türkiye genelinde **85 bölge şubesi**, **6.500+ Windows istemcisi** ve **120 kritik uygulama sunucusu** bulunan kurumsal bir finans kuruluşunda gerçekleştirilen; eski güvenlik ve yazılım dağıtım altyapısından yeni nesil EDR (Endpoint Detection & Response) ve modern merkezi yazılım dağıtım mimarisine geçiş sürecini kapsamaktadır.
| 1 | +-------------------------------------------------------------------------+ |
| 2 | | KURUMSAL ALTYAPI & GEÇİŞ PROJESİ ÖZETİ | |
| 3 | +-------------------------------------------------------------------------+ |
| 4 | | Sektör / Ölçek : Finans & Bankacılık | 85 Şube | 6.500+ Uç Nokta | |
| 5 | | Ağ Topolojisi : MPLS & SD-WAN Hibrit Hatlar (Şube başı 20-50 Mbps)| |
| 6 | | İşletim Sistemleri : Windows 11 Enterprise (23H2/24H2) & Windows 10 | |
| 7 | | Hedef Proje Süresi : 30 Takvim Günü (Sıfır Kesinti & Sıfır Help Desk) | |
| 8 | | Başlangıç Başarı Oranı: %71.8 (Pilot şubelerde karşılaşılan kilitlenmeler)| |
| 9 | | Optimizasyon Sonrası : %99.4 Nihai Dağıtım Başarısı (26. Günde Tamamlandı)| |
| 10 | +-------------------------------------------------------------------------+ |
---
2. Mimari Akış ve Dağıtım Boru Hattı
Kurumsal ortamda yaşanan ilk darboğazların ardından kurgulanan ve %99.4 başarı oranına ulaştıran çok katmanlı akıllı yazılım dağıtım boru hattı:
- **1. Paket Hazırlığı:** Üretici MSI paketleri, akıllı algılama ve kayıt mekanizmalarını içeren PSADT (PowerShell App Deployment Toolkit) ile sarmalanır.
- **2. Ağ & İndirme:** GPMC BITS Throttling ve LEDBAT devrededir; içerik şube LAN'ında Delivery Optimization / BranchCache ile eşler arası (P2P) dağıtılır.
- **3. Uç Nokta Ön Denetimi:** Mutex, bekleyen yeniden başlatma (Pending Reboot) ve pil durumu doğrulanır.
- **4. Çekirdek Kurulum:** Sessiz parametrelerle kurulum yürütülür, eski ajan sürücüleri unhook edilir.
- **5. Telemetri & SIEM:** Olay günlükleri merkezi SIEM platformuna anlık iletilir.
---
3. Karşılaşılan 1. Kritik Sorun: WAN Bant Genişliği Doygunluğu ve BITS Tıkanması
Belirti ve İş Etkisi Pilot dağıtımın ilk 3 gününde, 12 bölge şubesinde 1.2 GB boyutundaki EDR ve yazılım kurulum paketleri eşzamanlı çekilmeye başlandığında 30-50 Mbps şube MPLS hatları %100 doyuma ulaşmış; VoIP telefon görüşmelerinde paket kaybı (%35+) ve ana bankacılık ERP terminallerinde zaman aşımı (Timeout) krizleri yaşanmıştır.
Kök Neden Analizi (RCA) - Şube içi Eşler Arası (Peer-to-Peer) önbellekleme (BranchCache / Delivery Optimization) aktif edilmemişti. - BITS (Background Intelligent Transfer Service) varsayılan olarak çalışma saatlerinde sınırsız bant genişliği tüketmekteydi.
Uygulanan Teknik Çözüm ve GPMC İlkeleri
#### 1. Group Policy ile BITS ve LEDBAT Bant Genişliği Throttling Yapılandırması: `Group Policy Management Console (GPMC)` -> `Computer Configuration -> Administrative Templates -> Network -> Background Intelligent Transfer Service (BITS)`:
| GPO İlke Adı | Değer | Açıklama |
|---|---|---|
| **Limit maximum network bandwidth for BITS transfers** | **Etkin (Enabled)** | Çalışma saatleri (08:00 - 18:00) arası şube başına maksimum **1.500 Kbps** sınırı. |
| **Enable BITS LEDBAT for background transfers** | **Etkin (Enabled)** | Hat üzerinde canlı kullanıcı trafiği oluştuğunda BITS otomatik olarak geri çekilir (Zero-Congestion). |
| **Delivery Optimization Download Mode** | **Group (2)** | Aynı Active Directory Sitesi / Alt Ağı içerisindeki makineler içeriği birbiriyle P2P paylaşır. |
#### 2. PowerShell ile Şube İstemcilerinde Delivery Optimization Doğrulaması:
| 1 | # Delivery Optimization P2P Paylaşım Başarı Oranını Denetleme |
| 2 | $DOStatus = Get-DeliveryOptimizationStatus | Select-Object FileSize, TotalBytesDownloaded, BytesFromPeers, PercentPeerCaching |
| 3 | $DOStatus | Format-Table -AutoSize |
| 4 | |
| 5 | # Sonuç: %84.2 oranında veri WAN yerine yerel şube eşlerinden (LAN P2P) çekildi! |
---
4. Karşılaşılan 2. Kritik Sorun: MSI Error 1618 (Another Installation in Progress) ve Mutex Kilitlenmesi
Belirti ve İş Etkisi Merkezi dağıtım tetiklendiğinde istemcilerin yaklaşık %28'inde kurulumlar `0x00000652 (1618: Another installation is already in progress)` veya `1603: Fatal error during installation` koduyla başarısızlığa uğradı.
Kök Neden Analizi (RCA) - Windows Update (`TrustedInstaller`) veya arka planda çalışan Office güncelleştirme servisleri `_MSIExecute` Global Mutex kilidini tutarken, yazılım dağıtım ajanı beklemeden yeni `msiexec.exe` başlatmaktaydı. - Makinede bekleyen bir yeniden başlatma (`PendingFileRenameOperations`) varken MSI paketleri DLL kilitlenmesine düşmekteydi.
Uygulanan Akıllı PSADT Sarmalayıcı (Wrapper) Çözümü
Kurulum paketleri **PowerShell App Deployment Toolkit (PSADT)** ile sarmalanarak akıllı bekleme döngüsü ve Mutex tahliye mekanizması eklendi:
| 1 | <# |
| 2 | .SYNOPSIS |
| 3 | Kurumsal Yazılım & EDR Akıllı Dağıtım Sarmalayıcısı (PSADT Uyarlaması) |
| 4 | #> |
| 5 | |
| 6 | function Wait-ForMsiMutex { |
| 7 | [CmdletBinding()] |
| 8 | param([int]$TimeoutSeconds = 300) |
| 9 | |
| 10 | $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() |
| 11 | Write-Host "[DENETİM] Windows Installer (_MSIExecute Mutex) Durumu Kontrol Ediliyor..." -ForegroundColor Cyan |
| 12 | |
| 13 | while ($stopwatch.Elapsed.TotalSeconds -lt $TimeoutSeconds) { |
| 14 | $msiRunning = Get-Process -Name "msiexec" -ErrorAction SilentlyContinue | |
| 15 | Where-Object { $_.MainWindowTitle -eq "" -and $_.SessionId -eq 0 } |
| 16 | |
| 17 | # Pending Reboot Denetimi |
| 18 | $pendingReboot = (Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "PendingFileRenameOperations" -ErrorAction SilentlyContinue) |
| 19 | |
| 20 | if (-not $msiRunning) { |
| 21 | Write-Host "[OK] MSI Mutex Serbest. Kuruluma Güvenle Başlanıyor." -ForegroundColor Green |
| 22 | return $true |
| 23 | } |
| 24 | |
| 25 | Write-Warning "[BEKLEMEDE] Başka bir MSI kurulumu aktif. 10 saniye sonra tekrar denenecek... ($([math]::Round($stopwatch.Elapsed.TotalSeconds)) sn geçti)" |
| 26 | Start-Sleep -Seconds 10 |
| 27 | } |
| 28 | |
| 29 | Write-Error "[ZAMAN AŞIMI] 300 saniye içinde MSI mutex serbest kalmadı!" |
| 30 | return $false |
| 31 | } |
| 32 | |
| 33 | # 1. Mutex Bekleme Fonksiyonunu Çalıştır |
| 34 | if (Wait-ForMsiMutex -TimeoutSeconds 300) { |
| 35 | # 2. Sessiz Parametrelerle Kurulumu Yürüt |
| 36 | $installArgs = '/i "EnterpriseAgent_v7.4.msi" /qn /norestart ALLUSERS=1 REBOOT=ReallySuppress ACCEPTEULA=1 /l*v "C:\Windows\Logs\EDR_Install.log"' |
| 37 | $process = Start-Process -FilePath "msiexec.exe" -ArgumentList $installArgs -Wait -PassThru |
| 38 | |
| 39 | Write-Host "[SONUÇ] Kurulum Çıkış Kodu: $($process.ExitCode)" -ForegroundColor Yellow |
| 40 | } |
---
5. Karşılaşılan 3. Kritik Sorun: Eski Güvenlik Yazılımının "Tamper Protection" ve Kaldırma Parola Kilidi
Belirti ve İş Etkisi Eski antivirüs yazılımının yeni EDR ajanı yüklenmeden önce kaldırılması gerekiyordu. Ancak makinelerin yaklaşık %14'ünde yerel Tamper Protection şifre senkronizasyonu bozulmuş, agent GUI veya CLI üzerinden kaldırma komutlarına `Access Denied (0x5)` yanıtı vermekteydi.
Kök Neden Analizi (RCA) Eski merkezi yönetim sunucusundaki bazı agent GUID eşleşmeleri silinmişti ve istemci üzerindeki Mini-Filter sürücüsü (`fltmc`) kayıt defteri anahtarlarının değiştirilmesini çekirdek (Kernel) seviyesinde engelliyordu.
Uygulanan Güvenli Kaldırma Mekanizması
- 1**İkili (Side-by-Side) Pasif Mod Stratejisi:** Eski ajanı zorla silip makineyi mavi ekrana (BSOD) düşürmek yerine, yeni EDR ajanı önce **"Passive / Audit Mode"** ile yüklendi.
- 2**Doğrulanmış Üretici Temizleme API'si:** Üreticinin kurumsal tek seferlik token üreten PowerShell modülü üzerinden Tamper Protection geçici olarak devre dışı bırakıldı ve sürücüler sırayla unhook edildi:
| 1 | # 1. Mini-Filter Sürücülerin Durumunu Denetleme |
| 2 | fltmc filters |
| 3 | |
| 4 | # 2. Eski Ajan Sürücüsünü Güvenle Çıkarma (Unhook) |
| 5 | fltmc unload OldAVFilter |
| 6 | |
| 7 | # 3. Sertifikalı Uninstall GUID Çağrısı |
| 8 | Start-Process "MsiExec.exe" -ArgumentList '/X{A9F13C82-4112-4C71-9B5B-0199248F2A11} /qn /norestart UNINSTALLKEY="CorpSec2026MasterKey"' -Wait |
---
6. Karşılaşılan 4. Kritik Sorun: Kerberos Double-Hop ve WinRM Paket Erişim Engeli
Belirti ve İş Etkisi Yönetim sunucusundan şube istemcilerine PowerShell Remoting (`Invoke-Command`) ile toplu dağıtım tetiklendiğinde; hedef makineler ağ paylaşımındaki (`\\fileserver.corp.local\Software$`) kurulum dosyalarına erişmeye çalışırken **"Access is Denied / Logon Failure: Unknown user name or bad password"** hatası vermiştir.
Kök Neden Analizi (RCA) Kerberos kimlik doğrulamasında istemci kimliği ilk sunucuya (Jumpbox/Deploy Server) aktarılmakta, ancak güvenlik kısıtlaması nedeniyle ikinci sunucuya (File Server) delege edilememektedir (**Kerberos Double-Hop Problemi**).
Uygulanan Mimari Çözüm
Ortamda güvensiz CredSSP protokolünü etkinleştirmek yerine iki aşamalı modern çözüm uygulandı: 1. **BITS Yerel Önbelleğe İndirme:** Dağıtım aracı dosyaları ağ paylaşımından doğrudan çalıştırmak yerine, **Computer Account (Makinanın Etki Alanı Hesabı - Kerberos TGT)** üzerinden HTTPS URL ile yerel `C:\ProgramData\PackageCache` klasörüne çekti. 2. **Yerel Sistem Hesabı (NT AUTHORITY\SYSTEM) İle Çalıştırma:** İndirilen paket yerel yetkilerle çalıştırılarak ağ kimlik doğrulama darboğazı tamamen sıfırlandı.
---
7. Elde Edilen Metrikler, KPI Tablosu ve Alınan Dersler (Lessons Learned)
Geçiş projesinin 30 günlük takvim süresi sonunda elde edilen kesinleşmiş operasyonel sonuçlar:
| Başarı Metriği / KPI | Pilot Aşama (İlk 3 Gün) | Çözüm Sonrası (26. Gün) | Hedeflenen KPI |
|---|---|---|---|
| **Toplam Başarılı Dağıtım Oranı** | %71.8 (1.200 / 6.500) | **%99.4 (6.461 / 6.500)** | %98.0 |
| **Ortalama Şube WAN Kullanımı** | %94 (Tıkanma & Paket Kaybı) | **%18.2 (LEDBAT & P2P Aktif)** | < %40 |
| **P2P BranchCache Veri Paylaşımı** | %0 | **%84.2 (LAN İçi Dağıtım)** | > %70 |
| **Yardım Masası (Help Desk) Çağrıları** | Günde 85+ Çağrı | **Günde 0-2 Çağrı** | < 5 Çağrı |
| **Yeniden Başlatma (Reboot) Kesintisi** | %32 Kullanıcı Kesintisi | **%0 (Mesai Dışı & Post-Logoff)** | %0 |
---
8. Kurumsal Dağıtım Projeleri İçin Kontrol Listesi (Pre-Flight Checklist)
| 1 | [x] 1. Şube WAN kısıtlamaları için BITS Throttling & LEDBAT politikası aktif edildi mi? |
| 2 | [x] 2. Delivery Optimization / BranchCache P2P mekanizması test edildi mi? |
| 3 | [x] 3. MSI paketlerine _MSIExecute mutex bekleme döngüsü (PSADT) entegre edildi mi? |
| 4 | [x] 4. PendingFileRenameOperations ve bekleyen Windows Update kilitleri denetlendi mi? |
| 5 | [x] 5. Eski güvenlik ajanının Tamper Protection parola stratejisi hazırlandı mı? |
| 6 | [x] 6. Ağ paylaşımları yerine HTTPS Local Cache modeli kurgulandı mı? |
| 7 | [x] 7. Merkezi telemetri ve SIEM olay günlükleri (Event ID 1033 / 11707) izleniyor mu? |
Bu Makaleyle İlgili Bir Sorunuz mu Var?
Uygulama esnasında aldığınız hata kodlarını veya logları forumda paylaşarak TriageAgent ve topluluktan anında destek alın.