Windows Event ID ile IOC Tespiti
Efe Körün · @KorvNN
Giriş
Bir Windows sistemine yapılan saldırı geride log bırakır. Ama tek bir event kaydı çoğu zaman hiçbir şey söylemez: 4625 (başarısız oturum açma) yanlış yazılmış bir paroladan da gelebilir, brute-force denemesinden de.
Fark korelasyonda ortaya çıkar. Aynı kaynaktan kısa sürede onlarca 4625, ardından tek bir 4624 geldiğinde tablo değişir.
Bu yazıda Windows Event ID'lerin ne olduğuna, bir event kaydının hangi alanlardan oluştuğuna ve bu kayıtların Cyber Kill Chain aşamalarına göre nasıl IOC'ye dönüştüğüne bakıyoruz.
1. Windows Event ID Nedir?
Windows Event ID, işletim sistemi üzerinde gerçekleşen belirli bir olay türünü temsil eden sabit bir kimlik numarasıdır.
Bu numara olayın ne olduğunu ifade eder; olayın kim tarafından, ne zaman, hangi sistemde ve hangi bağlamda gerçekleştiği ise kaydın detaylarında tutulur.
Bir kullanıcı oturum açtığında, bir işlem başlatıldığında veya sistem yapılandırmasında bir değişiklik yapıldığında ilgili bileşen bu olayı kendi Event ID'si ile kayda alır. Numaralar sabit olduğu için aynı tür olaylar farklı sistemlerde tutarlı ve karşılaştırılabilir şekilde izlenebilir; loglar arasında filtreleme, korelasyon ve davranış analizi bu sayede mümkün olur.
2. Event ID Kaynakları
Event ID'ler, sistemi oluşturan bileşenler ve servisler tarafından üretilir. Bu bileşenlere genel olarak Event Provider denir.
| Kaynak | Kapsam | Örnekler |
|---|---|---|
| Sistem Bileşenleri | Kernel, sürücüler ve Windows servisleri | Disk yönetimi, ağ adaptörü olayları, güç yönetimi |
| Windows Servisleri | İşletim sisteminde çalışan servisler | Active Directory, Task Scheduler, Windows Update |
| Uygulamalar | Kullanıcı uygulamalarından üretilen loglar | SQL Server, IIS, Office uygulamaları |
| Security Auditing | Kullanıcı girişleri ve yetki değişiklikleri | Oturum açma, başarısız giriş denemeleri, grup üyeliği değişiklikleri |
3. Bir Event Kaydının Yapısı
Windows'ta tutulan her event sadece bir numaradan ibaret değildir. Kaydı doğru yorumlayabilmek için birden fazla alan gerekir.
| Alan | Ne söyler |
|---|---|
| Event ID | Olayın ne tür bir olay olduğunu belirtir |
| Event Provider | Olayı üreten bileşeni gösterir |
| Log Channel | Olayın hangi log altında tutulduğunu belirtir |
| Level (Severity) | Olayın önem derecesini ifade eder |
| Time Stamp | Olayın gerçekleştiği zamanı gösterir; olay zinciri çıkarmak için kritiktir |
| User / Account | Olayın hangi kullanıcı bağlamında gerçekleştiğini gösterir |
| Computer / Hostname | Olayın hangi sistemde üretildiğini belirtir |
Korelasyonu mümkün kılan alanlar Time Stamp, User ve Computer'dır. Event ID olayın türünü verir; zinciri kuran ise bu üç alandır.
4. Event ID'den IOC'ye
Event ID'leri tek tek ele almak çoğu zaman yalnızca normal sistem aktivitesini gösterir ve saldırıyı ortaya çıkarmaz. Bu event'leri zaman, kullanıcı, host ve işlem bağlamında korele ederek analiz ettiğimizde ise saldırganın bıraktığı kritik izler görünür hâle gelir.
IOC (Indicator of Compromise) tam bu noktada devreye girer: sistemde gerçekleşmiş veya hâlâ aktif olan saldırı izlerini gösteren somut göstergelerdir. Çoğu zaman tek bir event değil, birden fazla Event ID'nin ve davranış zincirinin bir araya gelmesiyle oluşur.
Başarısız ve başarılı oturum açma denemeleri, yeni process oluşumları, zamanlanmış görev değişiklikleri ve yetkili işlem aktiviteleri korelasyonla birleştirildiğinde saldırının hangi aşamada olduğu ve sistem üzerindeki etkisi net şekilde görülebilir.
Bu event'lerin çoğu varsayılan olarak kapalıdır
Aşağıdaki tablolarda geçen bazı kayıtlar, denetim politikası açılmadan hiç üretilmez. 4688 için process oluşturma denetimi (komut satırını da görmek istiyorsanız ayrıca "Include command line in process creation events"), 4104 için PowerShell Script Block Logging etkinleştirilmelidir. Politika açılmadan loglarda bu kayıtları aramak sonuçsuz kalır.
5. Logon Type'lar
4624 ve 4625 kayıtlarındaki Logon Type alanı, oturumun nasıl açıldığını söyler. Aynı Event ID'nin anlamı bu alana göre tamamen değişir.
| Type | Adı | Anlamı |
|---|---|---|
| 0 | System | İşletim sisteminin kendi başlattığı oturumlar |
| 2 | Interactive | Fiziksel olarak klavye/ekran üzerinden yapılan girişler |
| 3 | Network | Ağ üzerinden yapılan erişimler (SMB, paylaşımlar, servis bağlantıları) |
| 4 | Batch | Zamanlanmış görevler tarafından yapılan girişler |
| 5 | Service | Servis hesapları tarafından yapılan girişler |
| 7 | Unlock | Kilitli bir oturumun açılması |
| 8 | NetworkCleartext | Açık metin kimlik bilgisiyle ağ erişimi |
| 10 | RemoteInteractive | Uzak Masaüstü (RDP) |
| 11 | CachedInteractive | Domain bağlantısı yokken yapılan girişler |
6. Kill Chain Aşamalarına Göre Kritik Event ID'ler
6.1 Reconnaissance ve Initial Access
| Event ID | Ne gösterir | IOC açısından |
|---|---|---|
| 4625 | Başarısız kimlik doğrulama girişimleri | Brute-force tespitinin temel göstergesi: kısa sürede tekrar, aynı kaynaktan çok kullanıcı, aynı kullanıcıya çok deneme |
| 4624 | Başarılı girişler | Daha önce görülmeyen kullanıcı, alışılmadık saat, ağ veya uzak erişim üzerinden giriş |
| 4768 / 4769 | Kerberos ticket talepleri | Domain ortamında kullanıcı ve servis keşfi; alışılmadık servis talepleri, normal dışı kaynaklardan gelen istekler |
| 4776 | NTLM tabanlı kimlik doğrulama denemeleri | Pass-the-Hash senaryoları |
| 4648 | Açık kimlik bilgisiyle yapılan oturum açma | Daha önce görülmeyen kullanıcı, alışılmadık saat, uzak erişim üzerinden giriş |
6.2 Delivery
| Event ID | Ne gösterir | IOC açısından |
|---|---|---|
| 4656 | Bir dosya veya nesneye erişim talebi | Dosya yazımı öncesi erişim denemeleri, şüpheli süreçlerin açtığı dosya handle'ları |
| 5156 | İzin verilen ağ bağlantısı | Web üzerinden payload indirme, alışılmadık IP veya portlara bağlantı |
| 4663 | Dosya oluşturma, yazma veya değiştirme | Kullanıcı dizinlerine yeni dosya yazımı, e-posta eki veya web üzerinden gelen dosyalar, kısa sürede çok sayıda dosya oluşturulması |
| 5145 | Ağ paylaşımı dosya erişim kontrolü | SMB üzerinden dosya kopyalama, normalde erişilmeyen paylaşımlara denemeler |
| 5158 | Bir uygulamanın porta bağlanma girişimi | Downloader veya proxy benzeri davranışlar, beklenmeyen port kullanımı |
6.3 Exploitation
| Event ID | Ne gösterir | IOC açısından |
|---|---|---|
| 4688 | Exploit sonrası ilk süreç veya payload çalıştırılması | Beklenmeyen parent–child process ilişkileri; Office, tarayıcı veya servis süreçlerinden shell açılması; cmd.exe, powershell.exe, mshta.exe |
| 4672 | Yüksek ayrıcalıkların atanması | Exploit ile SYSTEM veya admin yetkisi kazanımı, normal kullanıcıdan beklenmeyen ayrıcalıklar |
| 4104 | PowerShell Script Block Logging | Obfuscation içeren kodlar, bellek içi payload çalıştırma (Invoke-Expression, DownloadString) |
| 4624 | Exploit sonrası oluşan oturumlar | Servis veya ağ tabanlı beklenmeyen girişler |
6.4 Installation
| Event ID | Ne gösterir | IOC açısından |
|---|---|---|
| 4698 | Yeni zamanlanmış görev oluşturulması | Beklenmeyen görevler, kullanıcı oturumundan bağımsız çalışan task'lar, şüpheli komut veya script çağrıları |
| 4700 | Mevcut zamanlanmış görevin değiştirilmesi | Meşru görevlerin kötüye kullanılması; komut, tetikleyici veya çalıştırılan dosyanın değiştirilmesi |
| 7045 | Sisteme yeni servis eklenmesi | Meşru olmayan servis adları, kullanıcı dizinlerinden çalışan servisler, SYSTEM yetkisiyle kalıcılık |
| 4720 | Yeni kullanıcı hesabı oluşturulması | Belgesiz hesap oluşturulması, servis veya yönetici amaçlı adlandırmalar, mesai dışı saatlerde açılan hesaplar |
| 4657 | Registry anahtar veya değer değişikliği | Run, RunOnce, Services anahtarları; başlangıçta çalışan persistence mekanizmaları |
6.5 Command & Control
| Event ID | Ne gösterir | IOC açısından |
|---|---|---|
| 5156 | Bir uygulamanın ağ bağlantısına izin verilmesi | Dış IP'lere düzenli ve periyodik bağlantılar (beaconing), alışılmadık portlar veya ülkeler, kullanıcı etkileşimi olmadan yapılan outbound trafik |
| 5158 | Bir uygulamanın belirli bir porta bağlanması | C2 ajanlarının yerel port dinlemesi, reverse shell veya tünelleme senaryoları |
| 4688 | C2 ile ilişkili süreçlerin çalıştırılması | Ağ bağlantısı kuran beklenmeyen binary'ler, parent–child ilişkisinde anormallikler |
| 4104 | C2 üzerinden alınan komutların PowerShell ile yürütülmesi | Sürekli çalışan veya loop içeren script'ler, encode/obfuscation içeren komutlar |
Weaponization neden yok?
Cyber Kill Chain'in yedi aşamasından Weaponization, saldırganın kendi tarafında gerçekleşir; hedef sistemde bir iz bırakmadığı için Windows event loglarında karşılığı yoktur. Son aşama olan Actions on Objectives ise saldırganın amacına göre değiştiğinden sabit bir Event ID kümesine indirgenemez; veri sızdırma senaryosunda 4663 ve 5156, imha senaryosunda ise farklı kayıtlar öne çıkar.

