Sigma Kuralları Yazma
Taşınabilir tespit kuralı söz dizimi.
Sigma Kuralları Yazma, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
Sigma Nedir
Sigma, günlük tabanlı tespitler için genel amaçlı ve tedariciden bağımsız bir imza biçimidir. Tespit mantığını YAML içinde bir kez yazıp ardından bunu Splunk SPL, Elastic sorguları, Sentinel KQL ve daha birçok arka uç biçimine dönüştürebilirsiniz.
Sigma, günlük tespiti için YARA'nın dosya tespiti için olduğu şeydir: taşınabilir bir ortak dil. Ekiplerin kuralları herkese açık biçimde paylaşmasını ve aynı fikri her SIEM için yeniden yazmaktan kaçınmasını sağlar.
Kuralın Yapısı
Bir Sigma kuralı, gerekli ve isteğe bağlı bölümleri olan bir YAML belgesidir. Temel bölümler title, logsource ve detection alanlarıdır.
title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\powershell.exe'
CommandLine|contains: '-enc'
condition: selection
level: highlogsource Bloğu
logsource bloğu, kuralın hangi günlükler için geçerli olduğunu dönüştürücüye bildirir. Verileri doğrudan sorgulamaz; dönüştürme sırasında doğru alan eşlemesini ve dizini seçer.
Yaygın anahtarlar:
product— ör. windows, linux, awscategory— ör. process_creation, network_connection, file_eventservice— ör. sysmon, security, sshd
Verilerinizin desteklediği en özgül birleşimi seçin; böylece işlem hattı alanları doğru şekilde eşleştirir.
Seçimler ve Arama Tanımlayıcıları
detection içinde bir veya daha fazla adlandırılmış arama tanımlayıcısı (seçim) tanımlarsınız. Her biri, alan-değer ölçütlerinden oluşan bir eşlemedir. Tek bir seçimdeki birden çok alan mantıksal AND ile birleştirilir.
Burada selection ile eşleşme olması için her iki koşulun da doğru olması gerekir.
detection:
selection:
EventID: 4688
NewProcessName|endswith: '\\whoami.exe'
condition: selectionAlan Değiştiricileri
Değiştiriciler, bir değerin nasıl eşleştirileceğini ayrıntılandırır. Bir dikey çizgiden sonra alan adına eklenirler.
contains— alt dize eşleşmesistartswith/endswith— sabit noktaya göre eşleşmeall— listedeki her değer mevcut olmalıdırre— düzenli ifadebase64offset|contains— base64 ile kodlanmış alt dizelerle eşleşme
Değiştiriciler soldan sağa zincirlenir ve sırayla uygulanır.
detection:
selection:
CommandLine|contains|all:
- 'Invoke-WebRequest'
- 'DownloadString'
condition: selectionListeler ve Eşlemeler: OR / AND
Bir seçim içindeki mantığı iki kural belirler:
- Tek bir alan altındaki değer listesi OR mantığıyla çalışır — herhangi bir değer eşleşir.
- Birden çok alan içeren eşleme AND mantığıyla çalışır — tüm alanlar eşleşmelidir.
Aşağıda Image iki ikili dosyadan biriyle eşleşir ve User değerinin de SYSTEM olması gerekir.
detection:
selection:
Image|endswith:
- '\\net.exe'
- '\\net1.exe'
User: 'SYSTEM'
condition: selectioncondition İfadesi
condition, adlandırılmış seçimlerinizi Boole mantığıyla birleştirir. Filtreleri ve hariç tutmaları burada ifade edersiniz.
İşleçler arasında and, or, not, parantezler ve count() gibi toplulaştırmalar bulunur. Ayrıca, öneklerine göre tanımlayıcı gruplarına başvurmak için 1 of selection* / all of selection* kullanabilirsiniz.
detection:
selection:
EventID: 4625
timeframe: 5m
condition: selection | count() by SourceIp > 10Gürültüyü Filtreleme
Bilinen ve güvenli etkinlikleri bastırmak için ayrı bir tanımlayıcı oluşturun ve bunu not ile koşuldan çıkarın. Böylece kötü amaçlı mantık okunabilir, hariç tutmalar ise açık olur.
Burada kural, rundll32'nin bir ağ bağlantısı başlatması durumunda tetiklenir; bilinen meşru bir güncelleme işlemi bunun dışındadır.
detection:
selection:
Image|endswith: '\\rundll32.exe'
filter_legit:
ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
condition: selection and not filter_legitÖnceliklendirme için Meta Veriler
İyi kurallar, mantığın ötesinde, müdahale ekiplerinin hızla harekete geçmesine ve mühendislerin kapsamı korumasına yardımcı olan meta verileri de taşır.
level— bilgilendirici, düşük, orta, yüksek, kritiktags— ATT&CK teknikleri, ör. attack.t1059.001falsepositives— bilinen zararsız tetikleyicilerreferences— tehdit raporları veya belgelerauthorvedate
Bu alanları yazmak dakikalar sürer, ancak bir olay sırasında saatler kazandırır.
Korelasyon Kuralları
Tek olaylı kurallar, birden çok adımlı saldırıları ifade edemez. Sigma korelasyon kuralları, dizileri ve örüntüleri yakalamak için zaman içinde birden çok temel kuralı birleştirir.
Desteklenen türler arasında event_count (bir zaman aralığında N eşleşme), value_count (birbirinden farklı değerler, ör. çok sayıda başarısız giriş yapan kullanıcı) ve temporal (önce A kuralı, ardından B kuralı) bulunur. Bu sayede, örneğin bir dizi başarısız girişin hemen ardından gerçekleşen başarılı bir girişi tespit edebilirsiniz.
name: bruteforce_then_success
correlation:
type: temporal
rules: [failed_logins, successful_login]
group-by: [SourceIp, TargetUser]
timespan: 10mBir Arka Uca Dönüştürme
sigma-cli ile bir kuralı hedef sorgu dilinize dönüştürürsünüz. Bir işlem hattı, Sigma alan adlarını gerçek şemanızla eşleştirir.
Çıktı, kopyalayıp yapıştırabileceğiniz veya API aracılığıyla gönderebileceğiniz, dağıtıma hazır bir sorgudur.
sigma convert -t splunk -p sysmon \
-f default rule.yml
# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"Hızlı Kontrol
Sigma tespit mantığını ne ölçüde kavradığınızı kontrol edin.
Özet
Artık taşınabilir Sigma kuralları yazabilirsiniz:
logsource, hangi günlüklerin ve alan eşlemelerinin geçerli olduğunu seçer- Seçimler, adlandırılmış alan-değer ölçütleridir (alanlar = AND, değer listeleri = OR)
- Değiştiriciler (içerir, ile biter, tümü, düzenli ifade gibi) eşleştirmeyi ayrıntılandırır
condition, seçimleri and/or/not, filtreler ve toplulaştırmalarla birleştirir- Ayrı filtre tanımlayıcıları, bilinen güvenli gürültüyü çıkarır
- Meta veriler (level, tags, falsepositives), önceliklendirmeyi hızlandırır
sigma convert, kuralı SIEM arka ucunuz için derler
Sonraki adımda, bu kuralları MITRE ATT&CK ile saldırgan tekniklerine bağlayacaksınız.
Sıkça Sorulan Sorular
“Sigma Kuralları Yazma” dersi ücretsiz mi?
Evet — “Sigma Kuralları Yazma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“Sigma Kuralları Yazma” dersinde ne öğreneceğim?
Taşınabilir tespit kuralı söz dizimi. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Sigma Kuralları Yazma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kod Olarak Tespit İlkeleri
- Sigma Kuralları Yazma
- MITRE ATT&CK ile Eşleme
- Tespitleri Test Etme ve Ayarlama