Denetimli Öğrenme ile Saldırı Sınıflandırması
Denetimli öğrenmede model, etiketli veri üzerinde eğitilir. Güvenlik verisinde etiketler genellikle 'malicious' / 'benign' şeklindedir. Scikit-learn ile temel sınıflandırma pipeline'ı: import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import classification_report X = df[['bytes','duration','unique_ports','failed_logins']] y = df['label'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = RandomForestClassifier(n_estimators=100, random_state=42)
Giris ve Temel Akis
Denetimli öğrenmede model, etiketli veri üzerinde eğitilir. Güvenlik verisinde etiketler genellikle 'malicious' / 'benign' şeklindedir. Scikit-learn ile temel sınıflandırma pipeline'ı: import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import classification_report X = df[['bytes','duration','unique_ports','failed_logins']] y = df['label'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = RandomForestClassifier(n_estimators=100, random_state=42)
Bu bölümün pratik akışı şu sırayla ilerler:
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
- model = RandomForestClassifier(n_estimators=100)
- model.fit(X_train, y_train)
- print(classification_report(y_test, model.predict(X_test)))
Temel Kavram Eslesmeleri
Denetimli öğrenmede kullanılan algoritmalar farklı veri yapılarına ve problem tiplerine göre seçilir. Güvenlik verisinin yüksek boyutlu ve dengesiz yapısı algoritma seçimini doğrudan etkiler. Örnek karşılaştırma: - Logistic Regression: hızlı, yorumlanabilir, lineer sınırlar - Random Forest: yüksek doğruluk, feature importance sunar - XGBoost: dengesiz veri için güçlü, CTF analizinde yaygın - SVM: yüksek boyutlu veride etkili, yavaş eğitim
- Random Forest: Feature importance ile yorumlanabilir tehdit tespiti
- XGBoost: Dengesiz etiket dağılımında yüksek performans
- Logistic Regression: Hızlı baseline model ve yorumlanabilirlik
- SVM: Yüksek boyutlu özellik uzayında sınır belirleme
Ilk Cekirdek Kavram
Bu bölümde öne çıkan çekirdek kavram recall olarak verilir. Confusion matrix sınıflandırma modelinin performansını dört metrik üzerinden gösterir. SOC bağlamında en kritik metrik recall'dur çünkü gerçek saldırıların kaçırılmaması önceliklidir: from sklearn.metrics import confusion_matrix, classification_report import numpy as np cm = confusion_matrix(y_test, y_pred) TN, FP, FN, TP = cm.ravel() precision = TP / (TP + FP) recall = TP / (TP + FN) f1 = 2 * (precision * recall) / (precision + recall) print(f'Precision: {precision:.3f}') print(f'Recall: {recall:.3f}') print(f'F1: {f1:.3f}')
Arac, Komut veya Inceleme Akisi
XGBoost güvenlik verisindeki dengesiz sınıf dağılımı için scale_pos_weight parametresiyle optimize edilir. SHAP değerleri model kararlarını açıklamak için kullanılır: import xgboost as xgb import shap model = xgb.XGBClassifier( scale_pos_weight=scale, n_estimators=200, max_depth=6, learning_rate=0.1 ) shap_values = explainer.shap_values(X_test) shap.summary_plot(shap_values, X_test)
Bu bölümün pratik akışı şu sırayla ilerler:
- neg_count = (y_train == 0).sum()
- pos_count = (y_train == 1).sum()
- scale = neg_count / pos_count
- model = xgb.XGBClassifier(scale_pos_weight=scale)
- model.fit(X_train, y_train)
- explainer = shap.TreeExplainer(model)
Kanit ve Bilesen Iliskileri
Model değerlendirme metrikleri farklı hata tiplerini ölçer. Güvenlik modellerinde hangi hatanın daha kabul edilebilir olduğu kullanım senaryosuna göre değişir. Örnek senaryo: - IDS kuralı: düşük FP toleransı, analist yorgunluğu riski - Threat hunting modeli: düşük FN toleransı, gözden kaçan APT riski - Otomatik bloklama: çok düşük FP, iş sürekliliği riski
- Precision: Pozitif tahminlerin gerçekte pozitif olma oranı
- Recall: Gerçek pozitiflerin tespit edilme oranı
- F1 Score: Precision ve recall harmonik ortalaması
- ROC-AUC: Tüm eşik değerlerinde model ayrım gücü
Ikincil Odak Noktasi
Bu bölümde öne çıkan çekirdek kavram dengesiz olarak verilir. Cross-validation overfitting riskini azaltır ve modelin gerçek performansını daha güvenilir ölçer. Güvenlik modellerinde StratifiedKFold kullanılır çünkü dengesiz veri dağılımını korur: from sklearn.model_selection import StratifiedKFold, cross_val_score from sklearn.ensemble import RandomForestClassifier skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42) model = RandomForestClassifier(n_estimators=100) scores = cross_val_score(model, X, y, cv=skf, scoring='f1') print(f'F1 scores: {scores}') print(f'Mean F1: {scores.mean():.3f} +/- {scores.std():.3f}')
Operasyonel Dogrulama ve Raporlama
Hyperparameter tuning model performansını optimize eder. GridSearchCV ile Random Forest için en iyi parametre kombinasyonu bulunur: from sklearn.model_selection import GridSearchCV from sklearn.ensemble import RandomForestClassifier param_grid = { 'n_estimators': [100, 200, 300], 'max_depth': [5, 10, None], 'min_samples_split': [2, 5, 10] } grid_search = GridSearchCV( RandomForestClassifier(), param_grid, cv=5, scoring='f1', n_jobs=-1 )
Bu bölümün pratik akışı şu sırayla ilerler:
- param_grid = {'n_estimators': [100,200], 'max_depth': [5,10]}
- grid_search = GridSearchCV(RandomForestClassifier(), param_grid, cv=5, scoring='f1')
- grid_search.fit(X_train, y_train)
- print(f'Best params: {grid_search.best_params_}')
- print(f'Best F1: {grid_search.best_score_:.3f}')
Cikti ve Kullanım Amaci
Denetimli öğrenme modellerinin üretim ortamına alınması (model deployment) SOC süreçlerine entegrasyon gerektirir. Model çıktıları SIEM uyarılarıyla ilişkilendirilir. Örnek entegrasyon akışı: SIEM log → Feature extraction → Model predict → Score > 0.85 → Otomatik ticket aç → L2 analistine ilet
- Model registry: Versiyon kontrolü ve model yaşam döngüsü yönetimi
- Feature store: Eğitim ve servis özelliklerini tutarlı tutar
- Prediction threshold: FP/FN dengesini belirleyen karar sınırı
- Model drift monitor: Üretimdeki performans bozulmasını izler
Son Kavram ve Cikis
Bu bölümde öne çıkan çekirdek kavram apply olarak verilir. Splunk MLTK (Machine Learning Toolkit) ile denetimli öğrenme modeli doğrudan SPL içinde uygulanabilir: | inputlookup network_traffic.csv | fit RandomForestClassifier bytes duration unique_ports failed_logins INTO attack_classifier | score attack_classifier Model kaydedildikten sonra yeni veri üzerinde tahmin: index=network earliest=-1h | fields bytes, duration, unique_ports, failed_logins | apply attack_classifier | where predicted_label="malicious" AND probability > 0.85 | table src_ip, predicted_label, probability | sort -probability
Bu Egitimden Ne Kazanirsiniz?
Bu icerik, Denetimli Öğrenme ile Saldırı Sınıflandırması 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: Random Forest, XGBoost, Logistic Regression, SVM, Precision, Recall, F1 Score, ROC-AUC, Model registry, Feature store. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.