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şValueAçıklama
ArchiveDirectoryStringSilinen dosyaların kopyalandığı dizin. Varsayılan: C:\Sysmon. Erişim için özel izinler gerekir.
CheckRevocationBooleanİmza iptal denetimlerini kontrol eder. Varsayılan: True.
CopyOnDeletePEBooleanSilinen yürütülebilir (PE) dosyalarını arşivler. Varsayılan: False.
CopyOnDeleteSIDsString[]Hangi kullanıcı SID’leri için silinen dosyalar saklanacak.
CopyOnDeleteExtensionsString[]Belirli uzantılı dosyalar silindiğinde saklanır.
CopyOnDeleteProcessesString[]Belirli process’ler tarafından silinen dosyalar saklanır.
DnsLookupBooleanTers DNS sorgularını kaydeder. Varsayılan: True.
DriverNameStringYüklenen sürücülerin Sysmon’da görünecek adı.
HashAlgorithmsString[]Kullanılacak hash algoritmaları. MD5, SHA1, SHA256, IMPHASH, * (hepsi). Varsayılan: None.

Örnek:

&lt;HashAlgorithms>*&lt;/HashAlgorithms>
&lt;ArchiveDirectory>C:\SysmonArchive&lt;/ArchiveDirectory>
&lt;CopyOnDeletePE>True&lt;/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:

&lt;NetworkConnect onmatch="exclude">
  &lt;Image condition="contains">iexplore.exe&lt;/Image>
&lt;/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.

KimlikEtiketAçıklama
1ProcessCreateİşlem oluşturma
2FileCreateTimeDosya oluşturma zamanı
3NetworkConnectAğ bağlantısı
4YokSysmon hizmet durumu (filtrelenemez)
5ProcessTerminateİşlem sonlandırma
6DriverLoadSürücü yükleme
7ImageLoadDLL / modül yükleme
8CreateRemoteThreadRemote thread oluşturma
9RawAccessReadHam disk okuma
10ProcessAccessProcess belleğine erişim
11FileCreateDosya oluşturma
12–14RegistryEventRegistry ekleme, değiştirme, silme
15FileCreateStreamHashAlternate Data Stream oluşturma
16YokSysmon config değişikliği (filtrelenemez)
17–18PipeEventNamed pipe oluşturma / bağlanma
19–21WmiEventWMI persistence olayları
22DNSQueryDNS sorgusu
23FileDeleteDosya silme (arşivli)
24ClipboardChangePanodaki içerik değişikliği
25ProcessTamperingİşlem görüntüsü değişikliği
26FileDeleteDetectedDosya silme (sadece log)
27–29FileBlock…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:

&lt;ProcessCreate onmatch="include">
  &lt;Image condition="is">C:\Windows\System32\cmd.exe&lt;/Image>
&lt;/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:

&lt;EventFiltering>
  &lt;RuleGroup name="group 1" groupRelation="and">
    &lt;ProcessCreate onmatch="include">
      &lt;Image condition="contains">timeout.exe&lt;/Image>
      &lt;CommandLine condition="contains">100&lt;/CommandLine>
    &lt;/ProcessCreate>
  &lt;/RuleGroup>
  &lt;RuleGroup groupRelation="or">
    &lt;ProcessTerminate onmatch="include">
      &lt;Image condition="contains">timeout.exe&lt;/Image>
      &lt;Image condition="contains">ping.exe&lt;/Image>
    &lt;/ProcessTerminate>        
  &lt;/RuleGroup>
  &lt;ImageLoad onmatch="include"/>
&lt;/EventFiltering>

➡ Burada:

  • timeout.exe yalnızca parametresi 100 olduğunda loglanır.
  • timeout.exe veya ping.exe sonlandığı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.