Veri Ön İşleme ve Normalizasyon Teknikleri
Veri ön işleme, ham log verisini analiz edilebilir hale getirmenin ilk adımıdır. Python pandas ile eksik değer temizleme işlemi şu şekilde yapılır: df.dropna(subset=['src_ip', 'dst_ip', 'action'], inplace=True) print(df.shape)
Giris ve Temel Akis
Veri ön işleme, ham log verisini analiz edilebilir hale getirmenin ilk adımıdır. Python pandas ile eksik değer temizleme işlemi şu şekilde yapılır: df.dropna(subset=['src_ip', 'dst_ip', 'action'], inplace=True) print(df.shape)
Bu bölümün pratik akışı şu sırayla ilerler:
- import pandas as pd
- df = pd.read_csv('firewall.log')
- df.dropna(subset=['src_ip'])
- df['timestamp'] = pd.to_datetime(df['timestamp'])
- df = df[df['src_ip'].str.match(r'^\d+.\d+.\d+.\d+$')]
Temel Kavram Eslesmeleri
Veri ön işlemede kullanılan teknikler verinin kalitesine ve analiz amacına göre seçilir. Yanlış teknik seçimi model performansını doğrudan düşürür. Örnek: Bir firewall logunda %30 oranında null dst_port değeri varsa bu alan için imputation yerine dropping tercih edilmelidir.
- Dropping: Kritik alanı null olan satırları kaldırır
- Imputation: Eksik sayısal değeri ortalama ile doldurur
- Deduplication: Tekrar eden log satırlarını teke indirir
- Outlier removal: İstatistiksel olarak aşırı değerleri filtreler
Ilk Cekirdek Kavram
Bu bölümde öne çıkan çekirdek kavram UTC olarak verilir. Timestamp normalizasyonu SOC analizinde kritik öneme sahiptir. Farklı timezone'lardan gelen loglar UTC'ye dönüştürülmezse korelasyon hataları oluşur. import pandas as pd df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True) df['timestamp'] = df['timestamp'].dt.tz_convert('UTC') Bu işlem tüm log kaynaklarının ortak zaman ekseninde hizalanmasını sağlar.
Arac, Komut veya Inceleme Akisi
IP adresi normalizasyonu ve zenginleştirme SOC veri ön işlemesinin temel adımlarındandır. Python ile IP coğrafi konum ve ASN bilgisi ekleme: import pandas as pd try: except: return None print(external['src_ip'].value_counts().head(10))
Bu bölümün pratik akışı şu sırayla ilerler:
- import ipaddress
- def is_private(ip):
- return ipaddress.ip_address(ip).is_private
- df['is_private'] = df['src_ip'].apply(is_private)
- external = df[df['is_private'] == False]
- print(external['src_ip'].value_counts())
Kanit ve Bilesen Iliskileri
Splunk'ta veri normalizasyonu için CIM (Common Information Model) kullanılır. CIM, farklı veri kaynaklarını ortak alan adlarıyla standartlaştırır. Örnek CIM eşleştirmesi: Palo Alto src → CIM src_ip Windows EventID 4624 → CIM Authentication datamodel Cisco ASA action → CIM action (allowed/blocked)
- Authentication: Oturum açma başarı/başarısızlık olayları
- Network Traffic: Firewall ve akış kayıtları
- Endpoint: Süreç oluşturma ve dosya sistemi olayları
- Intrusion Detection: IDS/IPS uyarı ve imza olayları
Ikincil Odak Noktasi
Bu bölümde öne çıkan çekirdek kavram 0-1 olarak verilir. Makine öğrenmesi modellerine veri beslemeden önce sayısal normalizasyon uygulanır. Min-max scaling en yaygın yöntemdir: from sklearn.preprocessing import MinMaxScaler import pandas as pd scaler = MinMaxScaler() df[['bytes_in','bytes_out','duration']] = scaler.fit_transform( df[['bytes_in','bytes_out','duration']] ) Bu işlem tüm sayısal değerleri 0-1 aralığına sıkıştırır.
Operasyonel Dogrulama ve Raporlama
Kategorik verilerin makine öğrenmesi modellerine aktarılması için encoding işlemi gerekir. SOC loglarındaki action, protocol gibi alanlar one-hot encoding ile sayısala dönüştürülür: df = pd.get_dummies(df, columns=['action', 'protocol'])
Çıktı: action_BLOCK, action_ALLOW, protocol_TCP, protocol_UDP
Alternatif olarak Label Encoding kullanılır:
Bu bölümün pratik akışı şu sırayla ilerler:
- import pandas as pd
- from sklearn.preprocessing import LabelEncoder
- le = LabelEncoder()
- df['action_enc'] = le.fit_transform(df['action'])
- print(df['action_enc'].value_counts())
Cikti ve Kullanım Amaci
Veri ön işleme hatalarının makine öğrenmesi modeline etkisi doğrudan ve kritiktir. Bu hatalar SOC'ta yanlış alarm veya gözden kaçan tehdit olarak yansır. Örnek: Eğitim verisinde normalizasyon yapılıp test verisinde yapılmazsa model tahminleri tamamen hatalı olur — bu data leakage olarak adlandırılır.
- Timezone tutarsızlığı: Korelasyon kuralları yanlış tetiklenir
- Normalizasyon atlanması: Büyük değerli özellikler modeli domine eder
- Duplicate kayıtlar: Model belirli örüntülere aşırı öğrenir
- Data leakage: Test performansı gerçeği yansıtmaz
Son Kavram ve Cikis
Bu bölümde öne çıkan çekirdek kavram geoip olarak verilir. Elastic Stack'te ingest pipeline ile veri ön işleme otomatikleştirilebilir: PUT _ingest/pipeline/soc_normalize { "processors": [ { "date": { "field": "timestamp", "target_field": "@timestamp", "formats": ["ISO8601"] } }, { "geoip": { "field": "src_ip" } }, { "uppercase": { "field": "action" } }, { "remove": { "field": "raw_message" } } ] } Bu pipeline timestamp dönüşümü, GeoIP zenginleştirme ve alan temizleme işlemlerini otomatik uygular.
Bu Egitimden Ne Kazanirsiniz?
Bu icerik, Veri Ön İşleme ve Normalizasyon Teknikleri konusunu SOC L3 - İleri Tehdit Avcılığı - Veri Madenciliği ve Modelleme baglaminda parcali degil, butunlu bir ogrenme akisina donusturur. Yalnizca kavramlari ezberlemek yerine surec sirasini, bilesenler arasi iliskiyi ve hangi kanitin neden onemli oldugunu kavramayi hedefler.
Ozet
Bu ders kapsaminda one cikan basliklar: Dropping, Imputation, Deduplication, Outlier removal, Authentication, Network Traffic, Endpoint, Intrusion Detection, Timezone tutarsızlığı, Normalizasyon atlanması. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.