Korelasyon Senaryoları – Bölüm II (Sık Sorulan Sorular)

Sık Sorulan Sorular 

Herkese kolay gelsin. Ankara'nın kuru, sert ve güneşli havasını yaşadığımız bu günlerde blog yazmamak elde değildi. Geçen blog yazımız olan "Korelasyon Senaryoları - Bölüm I" bölümünde tanımlardan bahsetmiştik. Bu yazımızda vitesi artırıp SIEM hakkında sık sorulan sorulara yanıt arayacağız. Bir konuya hakim olabilmek doğru ve kaliteli soru sormaktan başlar. Doğru ve kaliteli sorular sorduktan sonra cevaplar kendiliğinden gelecektir. Siz de yorumlar bölümüne sorularınızı iliştirebilirsiniz. Dilimiz döndüğünce hep beraber yanıtlar arayalım. Blog yazımızın sonunda da efsane film Matrix'ten bir sorumuz var. Mavi hap mı kırmızı hap mı sorusu olmayacak :)) Hazırsanız bağlanıyoruz Matrix'e, çalan bir telefon olmayacak operatörü arama hakkınızı kullanabilirsiniz :)) Ödül filanda yok sadece matrix severler topluluğu olarak efsane filmi tekrar yad etmiş olacaz ehh yeter de artar bize :) Tabiki efsane serinin birinci bölümündeki bitiş müziği eşliğinde yazımızı okuyabilirsiniz. Eeee biraz moda girelim. Bağlantıyı hemencecik aşağıya bırakıyorum.

################> The Matrix end credits by Rage Against the Machine <##################

Şekil 1 - Enter The Matrix (Akıyor Maşallah)

Güvenlik bilgileri ve olay yönetim sistemlerinde korelasyon yaklaşımlarında farklılıklar olabilmektedir. Aşağıda genel geçer sorular ve CRYPTOSIM için cevapları verilmiştir.

İlişkilendirme (korelasyon) nasıl yapılıyor? Korelasyon motoru (ilişkilendirme modülü) modüler midir? 
Korelasyon hafızada (in-memory) yapılmaktadır. CRYPTOSIM üzerindeki korelasyon servisi ayrı bir modül olarak çalışabilmektedir. Şartlara uyan log satırları bellekte belirli adet ve sayıda saklanarak üzerinde hesaplama yapılmaktadır. Bu hesaplama neticesinde riskli olaylar için uyarı/aksiyon alınabilmektedir. Geçmişe yönelik ilişkilendirme sayesinde mevcut bulunan veya yeni yazılan korelasyon kurallarının indeks ve ham veri üzerindeki sorgusu ile anormallikler tespit edilebilmektedir.

Kurallar yazılırken ne tür şart ve operatörler desteklenmektedir?
Olayları yakalamak şartların çeşitliliği ile mümkündür. Bu nedenle CRYPTOSIM kurallarını yazarken farklı tipte şartlar kullanılabilmektedir. = (Eşittir), !=(Esit Degil), (Metin icinde ara), (Liste [,]), (Liste [,]) (Metin icinde ara), (Listede olmayanlar [,]), (Listede olmayanlar [,]) (Metin icinde ara), > (Büyüktür String), >= (Büyük Eşittir String), < (Küçüktür String), <= (Küçük Eşittir String), (Başlıyorsa), (Bitiyorsa), (Başlıyorsa, liste), (Bitiyorsa, liste), (Başlamıyorsa, liste), (Bitmiyorsa, liste), > (Sayı), >= (Sayı), < (Sayı), <= (Sayı), Düzenli İfade(Regex), Referans (Kod) Tablosunda Bulunuyorsa/Bulunmuyorsa operatörleri desteklenmektedir. Metin içinde ara operatörleri büyük/küçük harf duyarsızdır.

Senaryolar arası ilişkilendirme ve bağlantılar hangi parametreler üzerinden yapılabiliyor?
A, B, C olayları arası ilişkiler kurulurken A'daki kullanıcı adı, B'deki kullanıcı adı ile eşleşirse ve A'daki kaynak IP ile C'deki kaynak IP farklı ise şeklinde karşılaştırmalar yapılabilmelidir. CRYPTOSIM korelasyon kurallarında ilişkilendirmeler öntanımlı olarak Kaynak IP, Kaynak Port, Hedef IP, Hedef Port, Olay Numarası ve dinamik olarak belirtilen üç alan üzerinden karşılaştırmalar yapılabilmektedir. Dinamik alanlar log kaynağı içindeki ayrıştırılmış her alan olabilmektedir.

Kuralların sadece belirli zamanlarda çalışması destekleniyor mu?
CRYPTOSIM'de her kural için çalışacağı zaman aralıklarını gün bazında belirtebilirsiniz.

Şekil 2 - Saat Aralığı

Korelasyon sırasında işlenen log sayısında kısıtlama bulunmakta mıdır?
Mimariye göre cevap değişir. Korelasyon sırasında Kafka aktif edilirse Hayır, sadece bellek üzerinde ilişkilendirme yapılıyorsa Evet. Kafka kuyruk yapısında korelasyon şartına uyan veriler için yaşam süresi verilirken, bellekte log sayısı sınırı senaryo bazlı atanabilmektedir. Bellek kullanım oranını optimum kullanmak için bu değer korelasyon kuralında özelleştirilebilmektedir. Tüm veriyi bellekte tutup ilişkilendirmek yerine korelasyon kuralı içindeki şartları anlamlandırarak sadece ilgili kayıtları belleğe almak gerekir.

Senaryolarda kural ve şart sayısında bir sınır var mıdır?
CRYPTOSIM korelasyon senaryolarında iç içe sınırsız sayıda kural eklenebilir. Kural ağacında ve/veya bağlaçları kullanılabilmektedir. Kural içinde kullanılan şartlarda da herhangi bir kısıtlama bulunmamaktadır.

Her kurala özel süre/adet tanımlamaları yapılabilmekte midir?
Evet, senaryo içindeki zaman aşımı ve adet değerleri her kural özelinde yapılabilmektedir. Örneğin A olayı olduktan sonra 10 dakika içinde B olayı olduğunda, B olayı olduktan sonra 20 dakika içerisinde A olayı içindeki IP adresi ile aynı ve A olayı içindeki kullanıcı adından farklı C olayı olursa alarm üret ve aksiyon al denilebilmektedir.

Risk değerlendirmesi her alt olay için yapılabilmekte midir?
CRYPTOSIM kurallarının her birinin risk derecesi bulunmaktadır. Risk skoru senaryonun öncelik değeri, alt kuralın güvenilirlik değeri ve varsa varlık değeri üzerinden hesaplanmaktadır.

Farklı üretici ve platformlardan gelen aynı tipte kayıtlar için korelasyon kuralı yazılabiliyor mu?
Sınıflandırma sayesinde yapılabilmektedir. Örneğin Windows işletim sisteminde başarısız giriş denemesi 4625 kimlik numarası ile kayıt altına alınıyor. Linux işletim sisteminde "login unsuccessful" diye kayıt atıyor. Güvenlik duvarı yönetim paneli/ssh erişimleri farklı veri ile kayıt tutuyor. Log toplama sırasında bu verilere göre Taksonomi çalışarak etiketlenmektedir. Taksonomi ağacındaki her yapı için korelasyon çalıştırılabilmektedir.

Kişisel Verileri Korunması Kanunu (KVKK) ve General Data Protection Regulation (GDPR) uyumluluğu için yapılanlar nelerdir?
Toplanan kayıtların belirli alanlarını maskeli veya şifreli olarak saklayabilmektedir. Kişisel veri olarak işaretlenmiş alanlar sorgularda maskelenmiş şekilde gösterilebilmektedir. Toplanan günlük kayıtları içerisinde kişisel veri olabilecek ve belirli formatı olan TC Kimlik No, Kredi Kartı, Cinsiyet gibi alanlar olması durumunda uyarı üretilebilmektedir.

Korelasyon olayları sonucunda otomatik aksiyon alınabilmekte midir?
Kurallarda yakalanan olaylar akabinde Bash, Python, Batch, Powershell, VB, C# betik/program çalıştırılabilmektedir. CRYPTOSIM üzerinde hazır yazılmış Active Directory, CheckPoint ve PaloAlto için aksiyonlar bulunmaktadır. Bunun dışında API desteği olan ürünler özelleştirmeler yapılabilmektedir. 

Korelasyon sonucunda dinamik listeler oluşturulabilmekte midir?
Aktif listeler özelliği sayesinde korelasyon ile yakalanan olaylara ait kayıtlar içindeki veriler dinamik olarak güncellenebilmektedir. Aktif listeler tekrar korelasyon, arama, rapor şartlarında kullanabilmektedir. 

Kullanıcı davranış analizi yapılabilmekte midir?
Evet kullanıcı davranış analizi yapılabilmektedir. Loglar içerisinde kullanıcılara ait aktiviteler izlenebilmektedir. Anormallikler, takip edilmesi gereken durumlar korelasyon kuralları sayesinde yakalanabilmektedir. Örneğin 5 defa başarısız oturum açma girşiminden sonra 1 defa başarılı oturum açma girşimi olduğunda bunu gerçekleştiren IP otamatik olarak varlık olarak eklenebilmektedir. Varlık listesine eklenen IP tüm korelasyon kurallarında diğer IP’lerden farklı değerlendirelecektir. UBA (User Behaviour Analytics) ürünler daha çok istemci tarafına özel geliştirilmiş ajanlardan beslenirken, SIEM ürünler sistemlerin ürettiği logları incelerler.

Olmama şartı (Negative Condition) desteklenmekte midir?
Evet desteklenmektedir. "A olayından sonra 15 dk içinde B olayı gerçekleşmezse" kuralı tanımlanabilmektedir. Girilen şartların hepsi için değil (olumsuz) alınabilmektedir. Bu durum “tanımlanan şartın gerçekleşmemesi durumunu” ifade etmektedir.

Korelasyon servisi dağıtık olarak çalışabilmekte midir?
Korelasyon servisi CRYPTTECH tarafından geliştirilmiş Piranha dağıtık mimarisinde çalışabilmektedir. Örneğin Master sunucu Korelayon servislerini Slave 1, Slave 3 ve Slave 5 sunucularında bir ya da birden den çok servis ile çalıştırabilmektedir. Kafka konuları üzerinden kuyruklamaya alınan dağtılımış veriler üzerinde ilişkilendirme kuralları çalışmaktadır.
Korelasyon servisi yeniden başlatılması, kural güncellenmesi, yeni kural girişi durumunda nasıl davranmaktadır?
Dağıtık mimaride çalışan CRYPTOSIM korelasyon sırasında Kafka üzerinde ilişkilendirme yapmaktadır. Kafka kuyruk yapısında olduğu için korelasyon servisinin yeniden başlaması, yeni kural girişi ya da kural güncellenmesi adımlarında sadece ilgili kural değişiklikleri yapılmaktadır. Tekli mimaride bellek üzerinde ilişkilendirme yapılıyorsa korelasyon servisi yeniden başlatılmaktadır.

Korelasyon sonucunda oluşan uyarılar başka bir korelasyon kuralında kullanılabilir mi?
Evet korelasyon sonucunda oluşan bilgiler sentetik log olarak kullanılarak başka bir korelasyonda kullanılabilmektedir. Ayrıca korelasyon sonucu oluşan istenen bilgiler Aktif Listeye eklenerek başka bir kurala girdi olabilmektedir.

Yeni yazılan korelasyon kuralı geçmişteki veriler üzerinde koşturulabilir mi?
Evet, yeni yazılan korelasyon kuralı geçmişteki veriler üzerinde koşturulabilir. Geçmişe yönelik korelasyon özelliği ile istenen birden çok korelasyon kuralı istenen tarih aralığına göre birden çok log kaynağına uygulanabilmektedir. İndekslenmiş ve ham veri üzerindeki ilişkisel sorgu olarak çalıştırılmaktadır.

Farklı CRYPTOSIM sunucuları için merkezi bir yönetim yapılabilmekte midir?
Evet CRYPTOSIM alt siem özelliği ile merkezi olarak SIEM’lerin yönetimi imkanı sağlamaktadır. Alt SIEM’den Merkezi SIEM aşağıdaki istenen veriler gönderilebilmektedir.

  1. Kaynak kullanımı (Disk, Disk Okuma / Yazma, CPU, RAM)
  2. Saniyede işlenen olay (EPS) bilgileri
  3. Sistem uyarıları
  4. Korelasyon uyarıları
  5. Korelasyon logları
  6. CRYPTOSIM ajan gönderimi
  7. Sistem logları
  8. Sadece hata logları

Ayrıca Merkezi SIEM’den alt SIEM içim aşağıdaki veriler güncellenebilmektedir.
  1. CRYPTOSIM güncellemesi
  2. Korelasyon tanımı
  3. Log kaynağı
  4. Rapor şablonları
  5. Kod tablosu
Gelelim Matrix hakkındaki sorumuza film içerisindeki korelasyon senaryolarına örnek verebilir misiniz? İpucu şekil 3'tedir.

Şekil 3 - Uyanmacalar

Şimdilik Bölüm II'yi burada sonlandırıyorum. Gelecek bölümlerde yavaş yavaş korelasyon senaryolarına giriş yapacağız. Herkese false-positive'siz günler diliyorum.

Fatih ÜNLÜ
@SOC

Yorumlar

Bu blogdaki popüler yayınlar

1. Geleneksel Stajyer CTF Soru ve Cevapları

B*-Tree (BTree, BPlusTree) Veri Yapısı ile Veri İndeksleme

2. Geleneksel Stajyer CTF Soru ve Cevapları - 2017