Mavi takımda bir süre çalışınca şu sorunla karşılaşırsınız: Splunk için yazdığınız tespit kuralı, kurum Elastic'e geçince çöpe gidiyor. Her SIEM'in kendi sorgu dili var ve kurallarınız o dile kilitleniyor. İşte Sigma tam da bu sorunu çözmek için var. Bu rehberde Sigma'yı sıfırdan, pratik bir kural yazarak anlatıyorum.
Konuda anlatılacaklar
- Sigma nedir, neden gerekli?
- Bir Sigma kuralının anatomisi
- İlk kuralı yazmak
- sigma-cli ile dönüştürme
- İyi kural yazmanın ilkeleri
- Kaynaklar ve pratik
- Yasal/operasyonel not
Sigma Nedir?
Sigma, log tabanlı tespit kuralları için genel ve SIEM'den bağımsız bir formattır. YAML ile yazılır. Mantık şudur: kuralı bir kez Sigma formatında yazarsınız, sonra bir dönüştürücüyle (converter) Splunk SPL, Elastic KQL, Microsoft Sentinel, QRadar gibi hedeflerin diline çevirirsiniz. Yani "tespit mantığının ortak dili". IOC'ler için nasıl ki STIX varsa, tespit kuralları için de Sigma odur.
Bir Sigma Kuralının Anatomisi
Temel alanlar:
- title / id / status: Kuralın adı, benzersiz kimliği ve olgunluğu.
- logsource: Hangi log kaynağı (ör. windows / process_creation).
- detection: Asıl mantık; selection blokları ve condition.
- level: Önem derecesi (low/medium/high/critical).
- falsepositives: Bilinen yanlış alarm senaryoları.
İlk Kuralı Yazmak
Örnek: whoami komutunun bir web sunucusu süreci tarafından çalıştırılması çoğu zaman şüphelidir (web shell sonrası keşif). Basit bir Sigma kuralı:
Kod:
title: Web Sunucusu Tarafindan whoami Calistirilmasi
id: 7b2a1f4c-1111-2222-3333-444455556666
status: experimental
description: Web sunucusu surecinin alt surec olarak whoami calistirmasi
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith:
- '\w3wp.exe'
- '\httpd.exe'
- '\nginx.exe'
Image|endswith: '\whoami.exe'
condition: selection
falsepositives:
- Yoneticinin elle yaptigi mesru kontroller
level: high
tags:
- attack.discovery
- attack.t1033Buradaki mantık: ebeveyn süreç bir web sunucusu ve çalışan komut whoami ise alarm üret. MITRE ATT&CK etiketi (T1033) ile de tekniği işaretledik.
sigma-cli ile Dönüştürme
Resmi araç sigma-cli (pySigma tabanlı) kuralı hedef SIEM diline çevirir:
Kod:
pipx install sigma-cli
# veya: pip install sigma-cli
# Splunk hedefi icin backend kur
sigma plugin install splunk
# Donusturme
sigma convert -t splunk kural.ymlAynı kuralı -t ile farklı hedeflere (ör. elasticsearch, loki) çevirebilirsiniz. Böylece tek kaynak, çok SIEM.
İyi Kural Yazmanın İlkeleri
- Davranışa odaklan: Tek bir dosya adına değil, tekniğin değişmez davranışına kural yazın (ör. "hangi ebeveyn hangi çocuğu çalıştırdı").
- Yanlış alarmı en baştan düşün: falsepositives alanını doldurmak, kuralın üretime alınabilirliğini belirler.
- ATT&CK ile etiketle: Kapsamınızı (coverage) ölçebilmek için her kuralı tekniğe bağlayın.
- Önce test: Kuralı üretime almadan önce bilinen bir örnek olayla (ör. Atomic Red Team) tetikleyip doğrulayın.
- Gürültüyü yönet: Çok geniş kural, analisti alarm yorgunluğuna sürükler; dar ve anlamlı tutun.
Kaynaklar ve Pratik
- SigmaHQ deposu: binlerce hazır topluluk kuralı; okuyarak kalıpları öğrenin.
- Atomic Red Team: kurallarınızı güvenle tetikleyip test etmek için.
- Kendi Windows lab'ınızda Sysmon + bir SIEM (Wazuh/Elastic) kurup uçtan uca deneyin: olay üret, logla, Sigma yaz, dönüştür, alarmı gör.
Sonuç
Sigma, tespit mühendisliğini "bir SIEM'e kilitli uğraş" olmaktan çıkarıp taşınabilir, paylaşılabilir ve ölçülebilir bir disipline dönüştürüyor. Tek bir basit kuralla başlayın, SigmaHQ'daki örnekleri okuyun, kendi lab'ınızda test edin. Siz hangi SIEM backend'ini kullanıyorsunuz ve Sigma dönüşümünde takıldığınız yerler neler, yorumlarda paylaşın.
Yasal/Operasyonel Not
Bu rehberdeki tüm pratikler kendi lab ortamınızda veya yönettiğiniz/izinli sistemlerde yapılmalıdır. Test amaçlı saldırı simülasyonları (Atomic Red Team vb.) yalnızca kendi makinelerinizde çalıştırılmalıdır.
Görsel: TurkTeam özgün kapak görseli
assRole ile aşırı geniş rol geçişi, yetki yükseltmeye yol açar.
ql gibi kalıplar).