
Windows üzerinde gerçekleşen olayları analiz etmek siber güvenlik uzmanları için kritik öneme sahiptir. Ancak işletim sisteminin sunduğu varsayılan loglar (Security, System, Application) çoğu zaman yetersiz ve yüzeysel kalır. Özellikle gelişmiş saldırılar, zararlı yazılımlar veya iç tehditler söz konusu olduğunda daha ayrıntılı görünürlüğe ihtiyaç duyulur.
İşte burada Sysmon (System Monitor) devreye girer. Sysmon, Microsoft’un Sysinternals Suite içerisinde yer alan sistemde meydana gelen aktiviteleri derinlemesine izleyen ve kaydeden bir araçtır.
Kurulduktan sonra Windows servisleri arasına yerleşir ve sistem yeniden başlatılsa bile aktif kalır. Tüm etkinlikleri Windows Event Log üzerinden kaydeder ve bu loglar SIEM çözümleri (Splunk, Sentinel, ELK vb.) veya Windows Event Collector (WEC) aracılığıyla toplanıp analiz edilebilir.
Sysmon, kurulduktan sonra:
- İşlem oluşturma (Process Creation) bilgilerini parent-child ilişkisi ve komut satırı parametreleriyle birlikte kaydeder,
- Dosya hash değerlerini (SHA1, SHA256, MD5, IMPHASH) hesaplar,
- Ağ bağlantılarını (kaynak/ hedef IP, port, hostname) kayıt altına alır,
- DLL yüklemeleri, sürücü yüklemeleri, kayıt defteri değişiklikleri, WMI aktiviteleri gibi pek çok kritik olayı raporlar.
Siber saldırganlar genellikle zararlı aktivitelerini gizlemek için meşru Windows process’lerini taklit eder veya “living off the land” teknikleri uygular. Varsayılan loglar bunları kolayca gözden kaçırabilir. Sysmon ise bu aktiviteleri düşük seviyede izleyerek saldırganın izlerini ortaya çıkarır.
Önemli Not:
Sysmon yalnızca olayları kaydeder, bunları analiz etmez veya saldırgandan gizlenmeye çalışmaz. Analizi, SIEM sistemleri veya güvenlik uzmanları yapmalıdır.
Sysmon Özellikleri
- Process Creation (Event ID 1): İşlem ve üst işlem bilgileri, tam komut satırı, kullanıcı, hash değerleri
- GUID ile eşleme: Process GUID ve Session GUID sayesinde loglar arasındaki ilişki korunur
- Hash algoritmaları: Aynı anda birden fazla hash kullanılabilir (SHA1, SHA256, MD5, IMPHASH)
- DLL & Driver Load: Yüklenen sürücülerin ve DLL’lerin hash + imza bilgilerini kaydeder
- Network Connect (Event ID 3): Kaynak process, IP, port, hostname bilgilerini içerir
- File Creation Time Change (Event ID 2): Dosya zaman damgası manipülasyonunu yakalar
- Registry Event: Anahtar/değer oluşturma, silme, değiştirme ve yeniden adlandırma
- DNS Queries (Event ID 22): Tüm DNS sorgularını loglar
- Clipboard Event (Event ID 24): Pano içeriği değişikliklerini izler
- WMI Event (19,20,21): WMI tabanlı persistence ve zararlı aktiviteleri yakalar
- File Delete (23, 26): Dosya silinmesini veya arşivlenmiş kopyalarını loglar
- Process Tampering (25): Hollowing ve injection tekniklerini raporlar
- Pipe Events (17,18): Named pipe aktiviteleri
- Blocking Events (27,28,29): Zararlı dosya yürütülmesini engelleyebilir
Tüm Event ID listesini ve detaylarını Microsoft Sysinternals Docs sayfasından inceleyebilirsiniz.
Sysmon Kurulumu
Sysmon’u Microsoft’un resmi sayfasından indirin Sysmon Download
Varsayılan kurulum (hash = SHA1, network log kapalı):
sysmon64.exe -accepteula -i
Config Dosyası ile Kurulum
Daha kapsamlı kullanım için config dosyası önerilir. Örneğin SwiftOnSecurity’nin config’i toplulukta yaygın kullanılır.
sysmon64.exe -accepteula -i sysmonconfig.xml
Config Güncelleme
Yeni bir config uygulamak için:
sysmon64.exe -c sysmonconfig.xml
Config’i varsayılana döndürmek için:
sysmon64.exe -c --
Kaldırma
Sysmon’u sistemden kaldırmak için:
sysmon64.exe -u
Zorla kaldırmak için:
sysmon64.exe -u force
Logların Takibi
Kurulum sonrası loglar şu dizinde bulunur:Event Viewer → Applications and Services Logs → Microsoft → Windows → Sysmon → Operational
Windows 7 ve önceki sürümlerde loglar System altında tutulur.
Tüm zaman damgaları UTC formatında kaydedilir.
Sysmon Event ID’leri ve Açıklamaları
Sysmon toplamda 29 ana event ID üretir. Aşağıda bunları detaylarıyla bulabilirsiniz:
Event ID 1: ProcessCreate
Yeni bir işlem oluşturulduğunda tetiklenir. Komut satırı, Process GUID, parent-child ilişkisi ve hash bilgileri kaydedilir.
➡ Av için kritik: PowerShell, cmd, rundll32 gibi araçların parametreleri.
Event ID 2: FileCreateTimeChanged
Bir dosyanın oluşturulma zamanı değiştirilirse loglanır.
➡ Zararlı yazılımlar bu tekniği “eski dosya gibi görünmek” için kullanır.
Event ID 3: NetworkConnect
TCP/UDP bağlantılarını kaydeder. Process ID, kaynak/hedef IP ve port bilgilerini içerir.
➡ Exfiltration veya C2 bağlantılarını yakalamak için kritik.
Event ID 4: SysmonServiceStateChanged
Sysmon servisinin başlatılması/durdurulması.
➡ Sysmon’un saldırgan tarafından devre dışı bırakılıp bırakılmadığını görürsünüz.
Event ID 5: ProcessTerminate
Bir işlem sonlandığında tetiklenir. Process GUID ile diğer loglarla bağlanabilir.
Event ID 6: DriverLoad
Yeni bir sürücü yüklendiğinde loglanır. Hash + imza bilgileri içerir.
➡ Kernel-level rootkit girişimlerini yakalamak için önemli.
Event ID 7: ImageLoad
Bir DLL/EXE başka bir process’e yüklendiğinde kaydedilir. Varsayılan olarak devre dışıdır.
➡ DLL injection avı için kullanılır.
Event ID 8: CreateRemoteThread
Bir işlemin başka bir işlemde thread oluşturduğunu algılar.
➡ Process injection tekniğinin doğrudan göstergesi.
Event ID 9: RawAccessRead
Process bir disk/driver’a doğrudan okuma yapıyorsa tetiklenir.
➡ AV atlatma ve veri sızdırma tekniklerini yakalayabilir.
Event ID 10: ProcessAccess
Bir işlem başka bir işlemi açar ve bellek erişimi yapar.
➡ Mimikatz gibi araçların Lsass.exe’den credential dump ettiği anları yakalamak için kritik.
Event ID 11: FileCreate
Yeni dosya oluşturulduğunda veya üzerine yazıldığında tetiklenir.
➡ Temp, Downloads ve Startup klasörlerinde hunting için çok değerlidir.
Event ID 12–14: RegistryEvent
- 12: Registry anahtar/ değer oluşturma & silme
- 13: Registry değer değişiklikleri
- 14: Registry anahtar veya değer yeniden adlandırma
➡ Persistence girişimlerini yakalamak için kritik.
Event ID 15: FileCreateStreamHash
Alternate Data Streams (ADS) oluşturulduğunda loglanır.
➡ Malware, tarayıcı indirmelerine gizli veri bırakırken ADS kullanabilir.
Event ID 16: ServiceConfigurationChange
Sysmon config dosyası değiştirildiğinde tetiklenir.
Event ID 17–18: PipeEvent
Named pipe oluşturulduğunda (17) ve bağlandığında (18).
➡ Malware’ler IPC (inter-process communication) için sık kullanır.
Event ID 19–21: WmiEvent
- 19: WMI Filter oluşturuldu
- 20: WMI Consumer kaydedildi
- 21: Filter ↔ Consumer bağlandı
➡ Persistence için kullanılan WMI tabanlı saldırıları görünür kılar.
Event ID 22: DNSQuery
Tüm DNS sorgularını kaydeder.
➡ Anormal domain sorguları → C2 veya malware call-home girişimlerini yakalayabilirsiniz.
Event ID 23 & 26: FileDelete
- 23: Dosya silindi + arşivlendi
- 26: Dosya silindi (arşiv olmadan)
Event ID 24: ClipboardChange
Panodaki içerik değiştiğinde tetiklenir.
➡ Veri sızıntısı veya keylogger tarzı araçlar için avlanabilir.
Event ID 25: ProcessTampering
Hollowing veya herpaderp gibi işlem gizleme tekniklerini raporlar.
Event ID 27–29: File Blocking Events
- 27: Yürütülebilir dosya oluşturma engellendi
- 28: Dosya shredding engellendi
- 29: Yeni yürütülebilir dosya algılandı
Event ID 255: Hata
Sysmon’da hata meydana geldiğinde üretilir.
Sysmon Yapılandırma Girdileri ve Olay Filtreleme
Sysmon’un asıl gücü sadece yüklenmesinden değil doğru yapılandırma ile elde edilen esnekliğinden gelir. Yapılandırma dosyaları (XML) sayesinde:
- Hangi olayların toplanacağını belirleyebilir,
- Gereksiz logları hariç tutarak performansı artırabilir,
- Belirli olayları özel kurallarla filtreleyebilirsiniz.
Kurulum sırasında -i <configfile> veya sonradan -c <configfile> parametresi ile uygulanır.
Yapılandırma Girdileri
Aşağıda Sysmon yapılandırma dosyasında kullanılabilecek temel girişler (inputs) yer alıyor:
| Giriş | Value | Açıklama |
|---|---|---|
| ArchiveDirectory | String | Silinen dosyaların kopyalandığı dizin. Varsayılan: C:\Sysmon. Erişim için özel izinler gerekir. |
| CheckRevocation | Boolean | İmza iptal denetimlerini kontrol eder. Varsayılan: True. |
| CopyOnDeletePE | Boolean | Silinen yürütülebilir (PE) dosyalarını arşivler. Varsayılan: False. |
| CopyOnDeleteSIDs | String[] | Hangi kullanıcı SID’leri için silinen dosyalar saklanacak. |
| CopyOnDeleteExtensions | String[] | Belirli uzantılı dosyalar silindiğinde saklanır. |
| CopyOnDeleteProcesses | String[] | Belirli process’ler tarafından silinen dosyalar saklanır. |
| DnsLookup | Boolean | Ters DNS sorgularını kaydeder. Varsayılan: True. |
| DriverName | String | Yüklenen sürücülerin Sysmon’da görünecek adı. |
| HashAlgorithms | String[] | Kullanılacak hash algoritmaları. MD5, SHA1, SHA256, IMPHASH, * (hepsi). Varsayılan: None. |
Örnek:
<HashAlgorithms>*</HashAlgorithms>
<ArchiveDirectory>C:\SysmonArchive</ArchiveDirectory>
<CopyOnDeletePE>True</CopyOnDeletePE>
Olay Filtreleme
Sysmon, varsayılan kurulumda çok fazla log üretebilir.
Özellikle SIEM sistemlerine aktarılırken bu logların bir kısmı “noise” (gereksiz) olabilir.
Bunu önlemek için EventFiltering bölümü kullanılır.
Temel Mantık
- onmatch=”include” → Yalnızca eşleşen olayları dahil et.
- onmatch=”exclude” → Eşleşen olayları hariç tut.
- Aynı alan için birden fazla kural → OR ilişkisi
- Farklı alanlar için kurallar → AND ilişkisi
Örneğin:
<NetworkConnect onmatch="exclude">
<Image condition="contains">iexplore.exe</Image>
</NetworkConnect>
➡ Internet Explorer’ın yaptığı ağ bağlantılarını loglama, diğerlerini kaydet.
Event Filtering Etiketleri
Her Sysmon event ID için ayrı bir filtre etiketi bulunur.
| Kimlik | Etiket | Açıklama |
|---|---|---|
| 1 | ProcessCreate | İşlem oluşturma |
| 2 | FileCreateTime | Dosya oluşturma zamanı |
| 3 | NetworkConnect | Ağ bağlantısı |
| 4 | Yok | Sysmon hizmet durumu (filtrelenemez) |
| 5 | ProcessTerminate | İşlem sonlandırma |
| 6 | DriverLoad | Sürücü yükleme |
| 7 | ImageLoad | DLL / modül yükleme |
| 8 | CreateRemoteThread | Remote thread oluşturma |
| 9 | RawAccessRead | Ham disk okuma |
| 10 | ProcessAccess | Process belleğine erişim |
| 11 | FileCreate | Dosya oluşturma |
| 12–14 | RegistryEvent | Registry ekleme, değiştirme, silme |
| 15 | FileCreateStreamHash | Alternate Data Stream oluşturma |
| 16 | Yok | Sysmon config değişikliği (filtrelenemez) |
| 17–18 | PipeEvent | Named pipe oluşturma / bağlanma |
| 19–21 | WmiEvent | WMI persistence olayları |
| 22 | DNSQuery | DNS sorgusu |
| 23 | FileDelete | Dosya silme (arşivli) |
| 24 | ClipboardChange | Panodaki içerik değişikliği |
| 25 | ProcessTampering | İşlem görüntüsü değişikliği |
| 26 | FileDeleteDetected | Dosya silme (sadece log) |
| 27–29 | FileBlock… | Dosya bloklama olayları |
Filtreleme Koşulları
Filtreler, alanlara uygulanır. Desteklenen koşullar:
- is → eşittir
- is not → eşit değildir
- contains → içerir
- exclude → içermez
- startswith / endswith → başlangıç / bitiş kontrolü
- greater/less → sayısal karşılaştırma
- image → process yolunu kontrol eder
Örnek:
<ProcessCreate onmatch="include">
<Image condition="is">C:\Windows\System32\cmd.exe</Image>
</ProcessCreate>
➡ Sadece cmd.exe çalıştırıldığında log üret.
RuleGroup ile Gelişmiş Filtreleme
Birden fazla koşulun AND / OR kombinasyonları için RuleGroup kullanılabilir.
Örnek:
<EventFiltering>
<RuleGroup name="group 1" groupRelation="and">
<ProcessCreate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<CommandLine condition="contains">100</CommandLine>
</ProcessCreate>
</RuleGroup>
<RuleGroup groupRelation="or">
<ProcessTerminate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<Image condition="contains">ping.exe</Image>
</ProcessTerminate>
</RuleGroup>
<ImageLoad onmatch="include"/>
</EventFiltering>
➡ Burada:
timeout.exeyalnızca parametresi100olduğunda loglanır.timeout.exeveyaping.exesonlandığında loglanır.- Tüm DLL yüklemeleri loglanır.
- Config dosyaları, Sysmon’u “ham log üreten bir araç” olmaktan çıkarıp siber tehdit avcılığına uygun bir sensör haline getirir.
- Doğru yapılandırma ile:
- Gereksiz loglardan kurtulursunuz,
- Kritik olayları görünür hale getirirsiniz,
- SIEM maliyetini azaltırsınız.
Özetle: Sysmon’un en güçlü yönü config dosyalarıdır. Yanlış yapılandırma → log seli. Doğru yapılandırma → saldırganın izini yakalama.