Kod Olarak Tespit İlkeleri
Tespitleri yazılım gibi ele alma.
Kod Olarak Tespit İlkeleri, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 1. 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.
Kod Olarak Tespit Neden Kullanılır
Kod Olarak Tespit (DaC), yazılım mühendisliği disiplinini güvenlik tespitlerine uygular. Analistlerin SIEM konsolunda kuralları elle düzenlemesi yerine tespitler, sürüm denetimindeki metin dosyalarında tutulur ve bir işlem hattı üzerinden yayımlanır.
Faydaları somuttur:
- Çekme istekleri üzerinden incelenebilir değişiklikler
- Ortamlar arasında yeniden üretilebilir dağıtımlar
- Üretime ulaşmadan önce sınanabilir mantık
- Kimin neyi neden değiştirdiğini gösteren denetlenebilir geçmiş
Bir tespit, diğer tüm kodlar gibi farklarını karşılaştırabileceğiniz, geri alabileceğiniz ve mantığını değerlendirebileceğiniz bir ürüne dönüşür.
Sürümlemeli Dosyalarda Tespitler
Her tespit, genellikle YAML veya üreticiye özgü bir sorgu dili kullanılan bağımsız bir dosya olarak saklanır ve bir Git deposuna kaydedilir. Depo yapısı, kapsama alanınızı nasıl düzenlediğinizi yansıtır.
Yaygın bir yapı, kuralları platforma ve taktiğe göre ayırır:
detections/
windows/
credential_access/
lsass_memory_dump.yml
execution/
suspicious_powershell.yml
cloud/
aws/
root_account_usage.yml
tests/
windows/
lsass_memory_dump_test.ymlÇekme İsteği İncelemesi
Her yeni veya değiştirilmiş tespit bir çekme isteğinden geçer. İkinci bir mühendis, birleştirilmeden önce mantığı, yanlış pozitif riskini ve ATT&CK eşlemesini inceler.
İnceleyenler şunları sorar:
- Mantık, açıklanan tehditle örtüşüyor mu?
- Hangi meşru etkinlik bunu tetikleyebilir?
- Önem derecesi ve ATT&CK başvurusu doğru mu?
- Doğru ve yanlış pozitifleri kapsayan sınamalar var mı?
Bu yaklaşım, gece saat 2'de SIEM'i düzenleyen tek bir analistin gözden kaçıracağı hataları yakalar.
Sürekli Tümleştirme Doğrulaması
Bir sürekli tümleştirme işlem hattı her gönderimde otomatik olarak çalışır. Bir kural birleştirilemeden önce kalite kapılarını uygular.
Sigma tabanlı bir depo için tipik sürekli tümleştirme aşamaları:
# .github/workflows/validate.yml (excerpt)
steps:
- name: Lint Sigma syntax
run: sigma check ./detections
- name: Validate against schema
run: sigma check --validators all ./detections
- name: Run unit tests
run: pytest tests/Otomatik Dağıtım
Birleştirildikten sonra bir dağıtım işi, taşınabilir kuralları hedef sorgu diline dönüştürür ve bunları API aracılığıyla SIEM veya EDR'ye gönderir.
Sigma için genellikle platformunuzla eşleşen bir arka uçla sigma convert gibi bir dönüştürücü çalıştırırsınız (Splunk, Elastic, Microsoft Sentinel). Ardından işlem hattı, oluşturulan kaydedilmiş aramaları veya analitik kuralları yükler.
Hiç kimse sorguları bir konsola elle yapıştırmaz. Dağıtılmış durum her zaman main içinde bulunanla eşleşir.
sigma convert -t splunk -p splunk_windows \
detections/windows/execution/suspicious_powershell.ymlTespitleri Sınama
Sınamaları olmayan bir tespit tahminden ibarettir. DaC, her kuralı sınama verileriyle eşleştirir: onu tetiklemesi gereken günlük örnekleri (doğru pozitifler) ve onu tetiklememesi gereken zararsız örnekler (yanlış pozitifler).
Sınamalar CI'da çalışır; bu nedenle kapsamı bozan veya gürültüyü yeniden oluşturan bir değişiklik, birleştirilmeden önce derlemeyi başarısız kılar. Kuralları büyük ölçekte yeniden düzenlerken güvenin açık ara en büyük kaynağı budur.
test:
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 javascript:...' }
expected: match
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 shell32.dll,Control_RunDLL' }
expected: no_matchKural Üst Verileri ve Yaşam Döngüsü
Üst verileri birinci sınıf bilgi olarak ele alın. Her tespit, yaşam döngüsünde olgunlaşırken durumunu kaydeder:
experimental— yeni yazılmış, yakından izlenirtest— çalışıyor ancak uyarı üretmek için henüz güvenilir değilstable— kanıtlanmış, yanlış pozitif oranı düşükdeprecated— yerini başkasına bırakmış veya kullanımdan kaldırılmış
Durumu dosyada izlemek, eski mantığın üretimde sürüklenmesine izin vermek yerine kuralları bilinçli biçimde üst seviyeye çıkarmanızı, alt seviyeye indirmenizi ve kullanımdan kaldırmanızı sağlar.
Arka Uçlar Arasında Taşınabilirlik
DaC'nin temel kazanımlarından biri, tespit mantığını üreticiden bağımsız bir biçimde bir kez yazıp birçok arka uç için derleyebilmektir. Sigma, günlük tabanlı tespitler için fiilî standarttır.
Aynı kural dosyası, işlem hattına özgü alan eşlemeleri aracılığıyla Splunk SPL, Elastic Lucene/EQL, Microsoft Sentinel KQL ve diğerlerini hedefleyebilir. Aynı fikri beş kez yeniden yazmaktan ve üretici bağımlılığından kaçınırsınız.
sigma convert -t elasticsearch rule.yml
sigma convert -t microsoft365defender rule.yml
sigma convert -t splunk rule.ymlAlan Eşleme İşlem Hatları
Farklı günlük kaynakları aynı veriyi farklı adlandırır. Bir Sysmon işlem oluşturma olayı Image alanını kullanırken bir Windows Güvenlik günlüğü NewProcessName alanını kullanabilir. İşleme işlem hatları bu farkı kapatır.
İşlem hatları, genel Sigma alan adlarını verilerinizin kullandığı tam alanlara dönüştürür; böylece tek bir mantıksal kural, SIEM'in aldığı şema ne olursa olsun düzgün biçimde eşlenir. İşlem hatlarını merkezi olarak sürdürmek, bir şema değişikliğinin kural başına değil, yalnızca bir kez düzeltilmesini sağlar.
sigma convert -t splunk -p sysmon rule.ymlOrtamlar ve Üst Ortama Alma
Uygulama kodu gibi tespitler de üretime ulaşmadan önce ortamlardan geçer. Tipik akış, geliştirme ortamından hazırlık ortamına, oradan da üretim ortamına ilerler.
- Geliştirme — CI'da birim sınamalarını oluşturma ve çalıştırma
- Hazırlık — gerçek telemetrinin bir kopyası üzerinde denetim modunda dağıtma
- Üretim — yanlış pozitif oranı kabul edilebilir olduğunda üst ortama alma
Üst ortama alma, birleştirmenin tesadüfi sonucu değil, kuralın yaşam döngüsü durumuna bağlı, bilinçli ve incelenmiş bir adımdır. Bu aşamalı dağıtım, satır içi tespitlerde kullanılan önce uyar, sonra engelle disiplinini yansıtır.
Kapsam ve Ölçümler
Tespitler kod olduğundan kapsamı program aracılığıyla ölçebilirsiniz. Her kuralı MITRE ATT&CK teknikleriyle ilişkilendirin ve neleri kapsayıp neleri kapsamadığınızı gösteren bir ısı haritası oluşturun.
Zaman içinde izlenebilecek yararlı ölçümler:
- Tehdit modelinizde kapsanan tekniklerin toplam teknik sayısına oranı
- Kural başına yanlış pozitif oranı
- Kural fikrinden üretime geçişe kadar geçen ortalama süre
- Her yaşam döngüsü durumundaki kural sayısı
Bu sayılar, tespit mühendisliğini kişisel gözlemlerden çıkarıp yönetilen bir programa dönüştürür.
Hızlı Kontrol
Kod Olarak Tespit temellerini anlayıp anlamadığınızı sınayın.
Özet
Kod Olarak Tespit, tespitlere yazılım mühendisliği titizliği kazandırır:
- Kurallar Git'te sürümlendirilmiş dosyalar olarak tutulur
- Değişiklikler çekme isteği incelemesinden geçer
- CI, kod biçimi denetimini yapar, doğrular ve testleri otomatik olarak çalıştırır
- Birleştirilen kurallar, üretim ortamını ana dalla eşzamanlı tutacak şekilde işlem hattı aracılığıyla dağıtılır
- Testler, yanlış pozitiflere ve gerilemelere karşı koruma sağlar
- Taşınabilirlik (Sigma + işlem hatları), tek bir kuralın birçok arka ucu hedeflemesini sağlar
- Meta veriler, yaşam döngüsü ve ölçümler, tespiti yönetilen bir programa dönüştürür
Sonraki adımda, taşınabilir kuralların kendisini Sigma ile yazacaksınız.
Sıkça Sorulan Sorular
“Kod Olarak Tespit İlkeleri” dersi ücretsiz mi?
Evet — “Kod Olarak Tespit İlkeleri” 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.
“Kod Olarak Tespit İlkeleri” dersinde ne öğreneceğim?
Tespitleri yazılım gibi ele alma. 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 1. dersidir.
“Kod Olarak Tespit İlkeleri” 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