CyberFlow Logo CyberFlow BLOG
Soc L1 Izleme Gorunurluk Sorgu

Veri Gürültüsünü Temizleme: `where` ve `filter` Teknikleri

✍️ Ahmet BİRKAN 📂 Soc L1 Izleme Gorunurluk Sorgu

`where` ve `filter` operatörleri ile veri gürültüsünü nasıl temizleyeceğinizi keşfedin. Siber güvenlikte verimli filtreleme stratejileri için rehberiniz.

Veri Gürültüsünü Temizleme: where ve filter Teknikleri

where ve filter operatörleri, siber güvenlikte veri gürültüsünü temizlemek için kritik araçlardır. Bu yazıda, bu iki operatörün nasıl etkili kullanıldığını öğrenin.

Giriş ve Konumlandırma

Veri analizi ve siber güvenlik alanlarında, veri kalitesi, elde edilen sonuçların geçerliliği için kritik öneme sahiptir. Bu nedenle, "Veri Gürültüsünü Temizleme" kavramı, siber güvenlik uzmanları ve pentesterlar için vazgeçilmez bir teknik olarak öne çıkmaktadır. Veriler, sayısız kaynak ve formatta gelmekte ve bu da analiz sürecini karmaşık hale getirmektedir. Bu karmaşayı gidermek ve anlamlı içgörüler elde etmek için verilerin temizlenmesi ve iyileştirilmesi gerekmektedir. İşte bu noktada, where ve filter operatörleri devreye girmektedir.

Veri Yargıcı

Veri yargısı, gelen verilerin belirli kriterlere göre süzülmesi ve gereksiz bilgilerin elenmesine dayanmaktadır. Sisteme giren verilerin büyüklüğü veya karmaşıklığı, analiz süreçlerini ciddi anlamda yavaşlatabilir. Dolayısıyla, bu verilerin önceden süzülmesi, sadece ihtiyaç duyulan bilgilere odaklanmayı sağlar. KQL (Kusto Query Language) kullanarak çalıştığımızda, where ve filter gibi yöntemlerin etkin bir şekilde kullanılması, sorgu performansını artırırken, veri gürültüsünü azaltmaktadır.

Erken Eleme Stratejisi

Büyük veri setlerinde filtreleme işlemlerini sona bırakmak, sistemin gereksiz yere tüm veriyi belleğe almasına neden olabilir. Bu durum, analiz süresini uzatarak sonucun geçerliliğini de tehlikeye atar. Doğru strateji, mümkün olan en erken aşamada veriyi elemektir. Örneğin, where operatörünü kullanarak veri girişi aşamasında belirli kriterlere göre süzgeç uygulamak, sadece gerekli bilgilerin analize dahil edilmesini sağlar.

| where EventID == 4625 and TargetAccount != "SYSTEM"

Yukarıdaki KQL örneğinde, kullanıcı hatalarının ayrıştırılması sağlanırken, sistem hataları otomatik olarak elenmiştir. Bu sayede daha derinlemesine bir analiz için uygun veriler elde edilmiş olur.

Kriter Belirleme

Filtreleme işlemi için belirli kriterlerin tanımlanması en önemli adımdır. where operatörü, mantıksal ifadelerin ve koşulların bir arada kullanılmasına olanak tanır. Bu sayede, karmaşık veri setlerinde anlamlı ilişkiler kurmak mümkündür. Mantıksal operatörler, birden fazla koşulu bir aradayken test edebilmemizi sağlar.

| where EventID in (4625, 4688, 4634)

Yukarıdaki ifade, bir kullanıcının hem giriş hatalarını hem de belirli oturum açma etkinliklerini yakalamakta kullanılabilir. Verilerin bu şekilde incelenmesi, siber güvenlik tehditlerinin takibi açısından oldukça önemlidir.

Toplu Tarama

Veri analizi sırasında, geniş veri setlerinin tek bir sorgu ile taranması ihtiyaç duyulabilir. Bu tür durumlarda in veya has_any gibi operatörler kullanarak çok sayıda değer üzerinde kontrol sağlamaktadır.

| where IPAddress has_any (["192.168.1.1", "192.168.1.2", "10.0.0.1"])

Elimizde bir IOC (Indicator of Compromise - Kompromitasyon Göstergesi) listesi varsa, bu listeyi taramak ve belirli tehditleri hızlıca tanımlamak için has_any operatörü oldukça kullanışlıdır.

Hassas Filtreleme

Veri filtreleme işlemlerinde hassasiyet, doğru sonucu bulmak açısından son derece önemlidir. KQL'de contains ve has gibi operatörler kullanılarak, metin bazlı arama işlemleri gerçekleştirilebilir. has operatörü tam kelime eşleşmeleriyle, genel arama yöntemlerine göre daha etkin sonuçlar verir.

| where Message contains "attack"

Bu sorgu, belirli bir mesaj içeriği aramakta kullanılırken, has kelime araması daha performanslı bir alternatif sunar.

Sonuç olarak, veri gürültüsünü temizleme süreci, siber güvenlik tehditlerinin daha etkili bir şekilde analiz edilebilmesi için zorunludur. where ve filter teknikleri, bu sürecin temel yapı taşlarını oluşturarak anlamlı verilerin elde edilmesine ve potansiyel tehditlerin belirlenmesine katkı sağlamaktadır. Bu tekniklerin derinlemesine analizi, hem veri yönetimi hem de siber güvenlik stratejileri açısından kritik bir adım olacaktır.

Teknik Analiz ve Uygulama

Veri Gürültüsünü Temizleme: where ve filter Teknikleri

Veri analizi sürecinde gürültü, gereksiz veya hatalı verilerin varlığı olarak tanımlanır. Bu gürültü, organizasyonların siber güvenlik üzerine yapacakları incelemeleri olumsuz etkileyebilir. Bu nedenle, verileri etkili bir şekilde filtrelemek önemlidir. where ve filter operatörleri, veri filtreleme sürecinde kritik bir rol oynamaktadır. Bu bölümde, bu operatörlerin nasıl kullanıldığını ve veri analizi sürecindeki etkilerini teknikte derinlemesine inceleyeceğiz.

Veri Yargıcı

KQL (Kusto Query Language) içerisinde, where operatörü veri yargılayıcı olarak görev yapar. Bu operatör, belirli mantıksal kriterlere göre veri setinin süzülmesini sağlar. Örneğin, kötü niyetli etkinlikleri tespit etmek için kullanacağımız bir sorgu oluştururken, belirli bir olay kimliğine dayanarak filtreleme gerçekleştirebiliriz. Aşağıdaki örnek, belirli bir EventID'ye göre nasıl filtreleme yapacağımızı göstermektedir:

EventLog
| where EventID == 4625

Yukarıdaki sorgu, EventID'si 4625 olan tüm olayları getirir. Ancak, sistemin kendi hatalarını hariç tutmak istiyorsak, TargetAccount kolonu üzerinde ek bir koşul daha ekleyebiliriz:

EventLog
| where EventID == 4625 and TargetAccount != "SYSTEM"

Bu şekilde, gereksiz verileri elemiş oluruz.

Erken Eleme Stratejisi

Büyük veri setlerinde filtreleme işlemini son aşamada yapmak, sistemin tüm veriyi belleğe almasına neden olabilir. Dolayısıyla erken eleme stratejisi benimsemek gerekir. where operatörünün sorgunun başında kullanılması, gereksiz verilerin işlenmesini engelleyerek sorgunun performansını artırır. Örnek vermek gerekirse:

EventLog
| where EventTime > ago(1d)
| where EventID in (4625, 4634)

Bu sorgu, yalnızca son 24 saat içindeki spesifik EventID'lere odaklanarak daha az veri ile işlem yapmamızı sağlar.

Kriter Belirleme

Filtreleme işlemlerinde, belirli kriterlerin belirlenmesi oldukça kritiktir. KQL içinde yer alan çeşitli karşılaştırma ifadeleri (==, !=, in) kullanıcıya esneklik sağlar. Örneğin, birden fazla kritere göre filtreleme yapmak için mantıksal operatörleri bir arada kullanabiliriz:

EventLog
| where EventID in (4625, 4634) and User !in ("admin", "system")

Yukarıdaki sorgu, hem EventID'leri hem de kullanıcıları ayıklayarak daha hassas bir filtreleme sağlar.

Toplu Tarama

Veri analizi sırasında, elinizde bir IOC (Indicator of Compromise) listesi varsa, bu listeyi sorgulamak için in operatörünü kullanabiliriz. Örneğin, zararlı IP adreslerinin bulunduğu bir liste üzerinden sorgulama yapmak için:

EventLog
| where SourceIP in ("192.168.1.1", "10.0.0.5", "173.194.222.113")

Bu, belirli bir liste içindeki IP'leri filtreler ve yalnızca bu IP'lerin yer aldığı kayıtları getirir.

Hassas Filtreleme

KQL içinde yer alan contains ve has operatörleri, metin aramalarında önemli bir rol oynar. contains operatörü, verilen bir metin parçasını içeren tüm kayıtları getirirken, has operatörü yalnızca tam kelime eşleşmelerine odaklanır. Aşağıdaki örnek, bu iki operatörün nasıl kullanılacağını gösterir:

EventLog
| where Message contains "failed login"
| where Message has "Unauthorized"

İlk satır, 'failed login' kelimesini içeren herhangi bir mesajı getirirken, ikinci satır yalnızca 'Unauthorized' kelimesini tam olarak içerenleri alır.

Performanslı Arama

Veri setinizi filtrelerken, sorgularınızın performansını artırmak üzere belirli teknikler kullanmak önemlidir. Örneğin, where operatörünün gereksiz verileri elimine eden bir şekilde gerektiğinde zincirleme kullanılmasının performans üzerindeki olumlu etkilerini göz önünde bulundurmalıyız. Aşağıda, birden fazla filtre kullanımını gösteren bir örnek yer almaktadır:

EventLog
| where EventID == 4625
| where TargetAccount !has "guest"

Bu sorgu, yalnızca sistem hata raporlarını hedefleyerek, 'guest' hesabına ait verileri hariç tutar.

Sonuç

Bu bölümde, where ve filter operatörlerinin siber güvenlik alanındaki uygulanabilirliğini detaylı bir şekilde inceledik. Gürültüyü temizlemek ve analiz sürecinde daha net sonuçlar elde etmek için bu tekniklerin önemi göz ardı edilemez. KQL içindeki bu operatörleri etkili bir şekilde kullanarak, veri setimizi daraltarak daha anlamlı ve hedef odaklı analizler gerçekleştirebiliriz.

Risk, Yorumlama ve Savunma

Veri Yargıcı

Siber güvenlik analizinde, elde edilen verilerin doğruluğu ve güvenilirliği kritik öneme sahiptir. Bu nedenle, doğru veri yargılaması yapmak, güvenlik tehditlerini belirlemek ve savunma stratejilerini oluşturmak için ilk adımdır. Veri salamı işlemi, olayların saptanmasında ve risklerin değerlendirilmesinde kullanılırken, yorumlama süreci de bu verilerin anlamlandırılmasına yardımcı olur.

Veri yargılama aşamasında where ve filter gibi tekniklerin rolü büyüktür. Bu komutlar, verilerin daha anlamlı ve yönetilebilir bir hale getirilmesine olanak sağlar. Yanlış yapılandırma durumlarında ise risksizlik veya yanılgılar, güvenlik açıklarına yol açabilir. Örneğin, yanlış bir where sorgusu, saldırıya uğramış bir sistemin detaylarını gizleyebilir.

Erken Eleme Stratejisi

Veri gürültüsünü temizlemek için en etkili yol, verileri kaynağında süzmektir. KQL'de where operatörünü kullanarak, olay kayıtlarını belirli kriterlere göre elemek mümkündür. Aksi takdirde, sistem gereksiz verileri belleğinde tutarak performans kaybına neden olur. Erken eleme stratejisi, daha sonraki analiz aşamalarında kullanılacak veri setinin kalitesini artırır.

Örneğin, bir log kayıtları setinden yalnızca başarısız girişim kayıtlarını değerlendirmek istiyorsak şu şekilde bir sorgulama yapabiliriz:

| where EventID == 4625

Bu sorgu, kullanıcı hatalarını filtreleyerek sadece kritik bilgileri ortaya çıkarır ve yanlış yapılandırmaların tespitini kolaylaştırır.

Kriter Belirleme

Kriter belirleme, veri yorumlamayı daha etkili hale getirir. Veriler belirli parametrelere göre filtrelendiğinde, zararlı etkinliklerin saptanması kolaylaşır. Örneğin, in operatörü kullanarak belirli bir zararlı IP listesi ile karşılaştırma yapabiliriz:

| where SourceIP in ("192.168.1.1", "192.168.1.2", "10.0.0.1")

Bu tür bir sorgulama, yalnızca belirlenen IP adresleri ile ilgili verileri analiz ederek olası tehditleri öne çıkarır.

Toplu Tarama

Toplu tarama işlemi, belirli bir veri setini analiz ederken belirtilen kriterlere göre kapsamlı bir değerlendirme yapılmasını sağlar. Bu sayede, daha geniş ve kapsamlı bir doğrulama süreci yürütülür. where operatörünün birden fazla koşul ile birleşimi sonucu daha hedeflenmiş ve rafine bir sonuç elde edilir.

Örneğin:

| where EventID == 4625 and TargetAccount != "SYSTEM"

Bu sorgu, sistemin hatalarını eleyerek yalnızca kullanıcı hatalarına odaklanır, dolayısıyla anlamlı verileri ortaya çıkarır.

Hassas Filtreleme

Hassas filtreleme, veri setinin belirli özelliklere göre daraltılması sayesinde kritik bilgilerin ön plana çıkmasını sağlar. Bu noktada, contains ve has gibi operatörler oldukça kullanışlıdır. has operatörü, kelime içindeki tam eşleşmelere odaklanır ve bu da performansı artırır.

| where Message has "failed" 

Bu sorgu, belirli bir mesaj içeriğini hedef alarak güvenlik ihlalleri ve olumsuz olayları tespit eder.

Performanslı Arama

Performans, bir veri analizi sisteminin etkinliğini belirleyen en önemli faktörlerden biridir. KQL'de where operatörünün performans dostu kullanımı, gereksiz verilerin işlenmesini önler. Bu, araştırma sürecini hızlandırır ve daha verimli bir sonuç elde edilmesini sağlar.

| where AccountStatus == "locked"

Bu tür vurgular, sistem üzerindeki yükü azaltarak daha hızlı analiz yapılmasını sağlar.

Sonuç

Veri gürültüsünü temizlemek, siber güvenlik alanında dikkat edilmesi gereken önemli bir süreçtir. where ve filter teknikleri, elde edilen verilerin sağlığını ve anlamını artırarak, risk değerlendirmesi ve savunma stratejilerinin oluşturulmasına yardımcı olur. Erken eleme stratejisi, kriter belirleme, toplu tarama ve hassas filtreleme gibi yaklaşımlar, güvenlik ihlallerinin zamanında tespit edilmesini sağlar. Bu nedenle, bu tekniklerin etkin bir şekilde kullanımı, siber güvenlik uygulamalarının başarısı açısından kritik öneme sahiptir.