CyberFlow Logo CyberFlow BLOG
Soc L2 Threat Hunting Hipotez

Tehdit Avı için Query Geliştirme: KQL ve SPL ile Başarılı Analiz

✍️ Ahmet BİRKAN 📂 Soc L2 Threat Hunting Hipotez

Tehdit avı için KQL ve SPL dilleri ile etkili query'ler geliştirin. Bu yazıda temel bilgileri keşfedin.

Tehdit Avı için Query Geliştirme: KQL ve SPL ile Başarılı Analiz

Tehdit avı sürecinde, KQL ve SPL dilleri kullanarak etkili query'ler oluşturmak, veri analizi ve tehdit tespitinde kritik öneme sahiptir. Detaylar için yazımıza göz atın.

Giriş ve Konumlandırma

Siber güvenlik alanında tehdit avı (Threat Hunting), kritik önem taşıyan bir faaliyet olarak karşımıza çıkmaktadır. Bu bağlamda, tehdit avı işlemleri için kullanılan sorgular (queries), güvenlik bilgi ve olay yönetimi (SIEM) sistemleri üzerinde gerçekleştirilen analizlerin temel taşlarını oluşturur. Bu yazıda, tehdit avı için sorgu geliştirme süreçlerini Kusto Query Language (KQL) ve Search Processing Language (SPL) gibi iki popüler dil üzerinden ele alacağız.

Tehdit Avı Nedir?

Tehdit avı, potansiyel siber saldırıları proaktif bir şekilde tespit etmek amacıyla güvenlik ekipleri tarafından gerçekleştirilen bir süreçtir. Bu süreç, bilinmeyen ya da henüz tespit edilmemiş tehditlerin bulunmasını, analiz edilmesini ve bunlara karşı önlemler geliştirilmesini içerir. Tehdit avcılarının kullandığı analiz yöntemlerinden biri, sistem kayıtları ve log verileri üzerinde yapılan sorgulardır. Bu sorgular, güvenlik ekiplerine büyük veri setleri içerisinde anlamlı bilgiler çıkarma olanağı sağlar.

Neden Önemlidir?

Tehdit avına dair yapılan çalışmalar, kuruluşların siber güvenlik pozisyonlarını güçlendirmekte ve daha etkili savunma mekanizmaları geliştirmelerine yardımcı olmaktadır. Siber tehditlerin karmaşık ve sofistike doğası nedeniyle, geleneksel güvenlik araçları bazen yetersiz kalabilir. Dolayısıyla, proaktif bir yaklaşım benimsemek ve olayları daha meydana gelmeden önlemek, etkili bir siber savunmanın olmazsa olmazıdır.

KQL ve SPL: Temel Diller

Tehdit avında sıkça kullanılan KQL ve SPL, güvenlik analistlerinin veri üzerinde kapsamlı analizler yapmalarına olanak tanır. KQL, Microsoft'un Azure platformunda yaygın olarak kullanılan bir sorgulama dilidir. Kullanımı kolay, ancak güçlü bir dil olarak dikkat çeker. Diğer yandan, SPL, Splunk platformu üzerinde çalışan bir pipeline dilidir ve log verilerinde gelişmiş analizler yapma yeteneği sunar. Her iki dil de, uygun biçimde kullanıldıklarında tehdit avı sürecini hızlandırmak ve kolaylaştırmak için etkili araçlardır.

Temel Operatörler ve Kullanımları

Sorgu dili geliştirme süreci, temel operatörlerin anlaşılmasıyla başlar. Bu operatörler arama, filtreleme, istatistik oluşturma ve veri projeksiyonu gibi işlevleri yerine getirir. Örneğin, KQL kullanarak belirli bir ip adresine ait log kayıtlarını filtrelemek için aşağıdaki gibi bir sorgu yazılabilir:

SecurityEvent
| where IpAddress == "192.168.1.10"
| project TimeGenerated, Account, EventID

Bu sorgu, belirli bir IP adresine ait güvenlik olaylarını filtreler ve zaman, hesap ve olay kimliği gibi alanları projekte eder.

Tehditleri Tespit Etme ve Analiz Süreci

Tehdit avı sorgularının amacı, büyük veri setlerinden anlamlı içgörüler çıkarmaktır. Bu süreç genel olarak aşağıdaki adımları içerir:

  1. Hipotez Tanımlama: Öngörülen tehditlere dair hipotezlerin belirlenmesi.
  2. Veri Toplama: İlgili log verilerinin toplanması ve organize edilmesi.
  3. Sorgu Yazma: Belirlenen hipotezlere göre sorguların geliştirilmesi.
  4. Sonuçları Analiz Etme: Elde edilen bulguların değerlendirilmesi ve gerektiğinde yeni önlemler alınması.

Her bir adım, tehdit avı sürecinin başarısı için kritik öneme sahiptir ve dikkatle yürütülmelidir.

Zorluklar ve Çözümler

Tehdit avı, bazı zorluklar içermektedir. Örneğin, büyük veri setleri üzerinde yapılan analizlerde, yanlış pozitiflerin ortaya çıkması ve karmaşık sözdizimlerinin doğru bir şekilde kullanılmasını zorlaştırması gibi problemler yaşanabilir. Bu noktada, sorgu geliştirirken dikkatli ve metodolojik bir yaklaşım benimsemek, sorunların üstesinden gelmek için gereklidir.

Son olarak, SOC L2 analistleri, sorgu yazarak log verilerini analiz eder ve tehditleri tespit etmek için yoğun çaba harcarlar. Teknolojik gelişmelerin ve saldırganların yöntemlerinin sürekli değiştiği bir ortamda, etkili sorgu yazımı ve tehdit avı, siber güvenlik alanında kritik bir yer tutmaktadır.

Teknik Analiz ve Uygulama

Query Tanımı

Siber güvenlik uygulamalarında, "query" terimi, log verileri üzerinde arama ve analiz yapmak için kullanılan ifade veya komut kümelerini tanımlar. Bu ifadeler, veri setlerinde belirli kalıpları, anormallikleri veya güvenlik tehditlerini araştırmak amacıyla oluşturulur. Verilerin anlamlı hale getirilmesi ve potansiyel tehditlerin tespiti için doğru ve etkili query'ler geliştirmek kritik öneme sahiptir.

KQL Nedir?

KQL (Kusto Query Language), Microsoft'un Azure platformu ve diğer Microsoft sistemleri için özel olarak geliştirilmiş bir sorgulama dilidir. KQL, büyük veri kümeleri üzerinde hızlı ve etkili bir veri analizi sağlamak amacıyla tasarlanmıştır. Kullanıcılar, verileri sorgulamak, filtrelemek ve analiz etmek için KQL komutlarını kullanabilir.

KQL Temel Kullanımı

KQL kullanarak veri sorgulamak için temel bir yapı aşağıdaki gibi olabilir:

TableName
| where Condition
| project Column1, Column2

Bu örnekte, TableName verilerin bulunduğu tablodur, Condition belirli bir filtredir ve Column1, Column2 ise sonuç kümesinde görmek istediğimiz sütunlardır.

SPL Nedir?

SPL (Search Processing Language), Splunk platformu üzerinde kullanılan bir sorgulama ve analiz dilidir. SPL, kullanıcıların veri analiz süreçlerini hızlandırmalarını ve derinlemesine içgörüler elde etmelerini sağlar. SPL’in temel özelliği, kullanıcının verileri hızlıca analiz etmesine olanak tanıyan bir dizi değişik operatör ve fonksiyon sunmasıdır.

SPL Temel Kullanımı

SPL kullanarak veri sorgulamak için genel yapı aşağıdaki gibidir:

index=your_index
| search your_search_term
| stats count by your_grouping_field

Bu örnekte, your_index sorgulama yapacağımız indeks, your_search_term aradığımız terim ve your_grouping_field ile sonuçları grupladığımız alanı ifade eder.

Temel Operatörler

Her iki dilde de kullanılan bazı temel operatörler bulunmaktadır. Bu operatörler, query'lerin etkili bir şekilde oluşturulmasını sağlar:

  • Filter: Verileri belirli bir kritere göre daraltır.
  • Project: Sonuç kümesinde hangi sütunların gösterileceğini belirler.
  • Join: İki veya daha fazla veri kümesi arasında ilişki kurar.
  • Stats: İstatistiksel analiz yapmayı sağlar.

Örneğin, KQL'de bir filtre uygulamak için şu komut kullanılabilir:

TableName
| where ColumnName == "Value"

SPL’de ise benzer bir filtre aşağıdaki gibi yazılabilir:

index=your_index
| search ColumnName="Value"

Query Amacı

Tehdit avı query'lerinin amacı, büyük veri içerisinden anlamlı ve yararlı bilgiler çıkarmaktır. Kuruluşlar, bu bilgiler üzerinden potansiyel tehditleri tespit edebilmekte ve gerekli önlemleri alabilmektedir. İyi yazılmış query'ler, siber güvenlik analistlerine tehditleri hızlı ve doğru bir şekilde tespit etmede yardımcı olur.

Query Süreci

Query geliştirme süreci genellikle birkaç aşamadan oluşur:

  1. Hipotez Belirleme: Olabilecek tehditleri tespit etmek için bir hipotez oluşturulur.
  2. Veri Toplama: İlgili veriler toplanır ve analiz için hazırlanır.
  3. Query Yazma: Verilere dayalı olarak sorgu yazılır.
  4. Sonuçları Analiz Etme: Elde edilen sonuçlar incelenir ve analiz edilir.

Bu süreç, analistleri tehdit avında daha öngörülü hale getirir.

Query Türleri

Tehdit avı sorguları çeşitli türlerde olabilir. Örneğin, bazıları anormal davranışları tespit ederken, bazıları belirli bir güvenlik olayı hakkında daha fazla bilgi toplamak amacıyla kullanılır.

Anormal Davranış Tespiti

Bu tür sorgular, izlenmeyen ya da beklenmedik sistem davranışlarını tanımlamak için kullanılır. Örnek bir KQL sorgusu:

SecurityEvents
| where EventID == 4625  // Giriş başarısız olayları
| summarize Count = count() by AccountName

Burada, başarısız giriş denemeleri ile ilgili veriler toplamak amacıyla EventID filtresi kullanılmaktadır.

Avantaj ve Zorluklar

İyi hazırlanmış sorgular, tehditleri hızlı ve etkili bir biçimde tespit edebilme yeteneği sağlar. Ancak, yüksek hacimli veri ile çalışırken bazı zorluklarla karşılaşmak kaçınılmazdır.

Zorluklar

  • Karmaşık Söz Dizimi: Hem KQL hem de SPL’in sözdizimi karmaşık olabilir.
  • Büyük Veri İşleme: Veri hacmi arttıkça, analiz süreci daha da zorlaşabilir.
  • Yanlış Pozitifler: Hatalı ya da yanıltıcı sonuçlar elde etme olasılığı.

Analistlerin bu zorluklarla başa çıkabilmeleri için sürekli eğitim ve pratik yapmaları gerekmektedir.

Tehdit avında başarılı olmak için doğru araçlar ve uygulamalarla donanmak, siber güvenlik profesyonellerinin en önemli sorumluluklarından biridir. Bu bağlamda KQL ve SPL gibi diller, analistlere etkili ve doğru sonuçlar elde etme konusunda büyük avantajlar sunar.

Risk, Yorumlama ve Savunma

Risk Analizi ve Yorumlama

Siber güvenlik alanında tehdit avı yapan analistlerin en önemli görevlerinden biri, elde edilen bulguları güvenlik açısından anlamlandırmak ve bu bulguların potansiyel etkilerini değerlendirmektir. Kullanılan sorgular (queries), sistem üzerindeki etkinlikleri analiz etmek ve anormal davranışları tespit etmek için kritik öneme sahiptir. Özellikle KQL (Kusto Query Language) ve SPL (Search Processing Language) dilleri, log verilerini anlamlı bilgiler elde etmek için işlemek üzere yaygın olarak kullanılır.

Elde Edilen Bulguların Güvenlik Anlamı

Log verileri, birçok açıdan analiz edilebilir ve genellikle aşağıdaki bilgiler bütünü, siber güvenlik durumunu ortaya koyar:

  • Sızan Veri: Hedef sistemlerdeki potansiyel veri sızıntıları, analistin dikkatle incelemesi gereken bir konudur. Örneğin, “sensitif” etiketli dosyaların veya veritabanlarının dışarıya sızma olasılığı, işletme için ciddi riskler oluşturur.

  • Topoloji: Ağın yapısı ve bileşenleri ile ilgili tespitler, siber saldırganların hangi sistemlere erişebileceği konusunda önemli bilgiler sunar. Log verilerindeki anormal bağlantı aktiviteleri, saldırganların hangi noktaları hedeflediğini gösterir.

  • Servis Tespiti: Çalışan hizmetlerin gözden geçirilmesi, beklenmedik veya zararlı hizmetlerin tespit edilmesine yardımcı olur. Özellikle, bir sistemde çalışan üçüncü parti yazılımların analiz edilmesi, potansiyel güvenlik açıklarının ortaya çıkarılmasına olanak tanır.

Bu bulgular, kötü niyetli aktivitelere dair tehditleri tanımlamak için kullanılırken, aynı zamanda işletmenin savunma stratejilerini de şekillendirir.

Yanlış Yapılandırma ve Zafiyetlerin Etkisi

Yanlış yapılandırmalar ve sistem zafiyetleri, siber saldırıların yoğun olarak kullanıldığı alanlardır. Özellikle, yapılandırma hataları analitikte sıklıkla gözden kaçabilir ve ağı ciddi risk altına sokabilir. Örneğin:

  • Açık Uç Noktalar: Yanlış yapılandırılmış bir firewall, ağın açık bir kapı gibi hedef olmasına yol açabilir. Çalışan bir SQL sunucusunun gereksiz yere erişime kapalı bırakılması da veri sızıntılarına sebep olabilir.

  • Zayıf Parolalar: Kullanıcı hesaplarında yaygın olarak kullanılan parolaların, hesapların ele geçirilmesine neden olacak şekilde zayıf olması, bir diğer potansiyel zafiyettir.

search "*login_failed*" 
| summarize count() by src_ip

Yukarıdaki örnek sorgu, başarısız giriş denemelerini göz önünde bulundurarak, hangi IP adreslerinden en çok saldırı yapıldığını tespit eder.

Savunma Stratejileri ve Hardening Önerileri

Elde edilen bulgular ışığında, işletmelerin savunmasını güçlendirmek için çeşitli stratejiler uygulanabilir. Aşağıda bu stratejilerden bazıları yer almaktadır:

  • Güçlü Kimlik Doğrulama Sistemleri: Çok faktörlü kimlik doğrulama (MFA) kullanımı, hesapların güvenliğini artırır.

  • Düzenli Güvenlik Tarama: Yazılımların ve sistemlerin güncellemelerini yaparak potansiyel zafiyetlerin kapatılması gerekir. Otomatik güvenlik tarayıcıları gibi araçlar kullanmak, güvenlik durumu hakkında sürekli güncel bilgi edinmeyi sağlar.

  • Eğitim ve Farkındalık: Çalışanların siber güvenlik konusunda bilinçlendirilmesi, insan hatalarından kaynaklanan tehditleri azaltacaktır.

Sonuç

Tehdit avı süreçlerinin etkili bir şekilde yürütülebilmesi için elde edilen verilerin güvenli bir perspektiften yorumlanması şarttır. Yanlış yapılandırmalar ve sistem zafiyetleri, ciddi sonuçlar doğurabilirken, bu bulguların güvenliği artıracak şekilde yorumlanması ve savunma mekanizmalarının geliştirilmesi büyük önem taşımaktadır. Savunma stratejileri, sürekli bir döngü içinde güncellenmeli ve geliştirilmeli, organizasyonların güvenlik durumu her daim göz önünde bulundurulmalıdır.