Architektura i Eksperymenty
Ostatnia aktualizacja: 2026-05-27
Architektura systemu
Opis ogólny
System UEBA (User and Entity Behavior Analytics) oparty na Behavioral Probability Profile (BPP) — formalnie zdefiniowanym rozkładzie prawdopodobieństwa P(a|u,t) nad przestrzenią akcji użytkownika, budowanym z wieloźródłowej telemetrii (auth logs + workspace: Git, Jira, Calendar). Główny wkład: empiryczna walidacja multi-source BPP dla ATO detection, nowa metryka odporności MMC, oraz privacy-preserving FL+DP-SGD dla środowiska regulacyjnego UE.
Komponenty główne
| Komponent | Opis | Technologia |
|---|---|---|
| M1 – Telemetry Collector | Auth logs (LANL) + symulowane workspace events (Git/Jira/Calendar) | Python, synthetic generator |
| M2 – BPP Builder | Estymacja rozkładu P(a|u,t) per użytkownik per czas dnia | LSTM Autoencoder, Deep SVDD |
| M3 – Anomaly Detector | Isolation Forest (baseline) + One-Class SVM + LSTM Autoencoder | scikit-learn, PyTorch |
| M4 – Fusion Engine | Early fusion (concat features) vs late fusion (ensemble scores) | sklearn, custom |
| M5 – MMC Calculator | Minimalne KL-divergence do obniżenia TPR poniżej progu | scipy.stats, custom |
| M6 – FL+DP Aggregator | FedAvg + DP-SGD (Opacus) na partycjach LANL | Flower, Opacus |
Przepływ danych
flowchart TD LANL([LANL Auth logs]) --> M1[M1 Telemetry Collector] SYN([Synthetic workspace\nGit / Jira / Calendar]) --> M1 M1 --> FEAT([Feature vectors per event]) FEAT --> M2[M2 BPP Builder\nP-a-u-t per user] M2 --> HIST([Rozkład historyczny użytkownika]) HIST --> M3[M3 Anomaly Detector\nIsolation Forest / LSTM AE] M3 --> SCORE([Anomaly score per event]) SCORE --> M4[M4 Fusion Engine\nearly concat vs late ensemble] M4 --> ALERT([Alert: ATO detection\nthreshold @ FPR=5%]) ALERT --> M5[M5 MMC Calculator\nkoszt ominięcia per d źródeł] M5 --> MMC([Krzywa MMC-d]) M4 --> M6[M6 FL+DP Aggregator\nFedAvg + DP-SGD ε=1.0\n10 organizacji] M6 --> PRIV([Privacy-preserving BPP])
Stack technologiczny
| Warstwa | Technologia | Uzasadnienie |
|---|---|---|
| Język | Python 3.11+ | standard ML |
| ML framework | PyTorch 2.x | LSTM Autoencoder, Deep SVDD |
| Classic ML | scikit-learn | Isolation Forest, One-Class SVM |
| Federated | Flower (flwr) | FedAvg symulacja |
| DP | Opacus (PyTorch) | DP-SGD implementacja |
| Dane | LANL dataset (12K users, 58 dni) | publiczny benchmark UEBA |
| Pomiar / eval | AUC, FPR@TPR=0.8, MMC | odporność + skuteczność |
Eksperymenty
BSU-EXP-1: BPP dla ATO Detection — Workplace Telemetry jako Uzupełnienie Auth Logs
Status: planned
Priorytet: high
Powiązany pomysł: BSU-1
Dodano: 2026-05-27
Hipoteza: Klasyfikator BPP z fuzją auth logs + workspace telemetry (Git/Jira/Calendar) osiąga AUC ≥ 0.85 i FPR ≤ 5% przy TPR=80% na LANL dataset — istotnie wyższy (DeLong test, p<0.05) niż model auth-only (aktualny standard w literaturze).
Dane:
- Dataset: LANL Comprehensive Multi-Source Cyber-Security Events (12K użytkowników, 58 dni, ~15M eventów)
- Podział: pierwsze 45 dni trenowania, ostatnie 13 dni test; własna symulacja workspace jako dodatkowe źródło
- Preprocessing: agregacja eventów do okien 1h per użytkownik, ekstrakcja cech per źródło
Metoda:
- Implementacja auth-only baseline: Isolation Forest na cechach LANL (IP delta, device, session time, failed logins)
- Symulacja workspace telemetry dla użytkowników LANL: Git (czas commitów), Jira (tematy TF-IDF), Calendar (godziny spotkań)
- BPP estimation: LSTM Autoencoder (reconstruction error jako anomaly score) per źródło
- Fuzja early (concat) vs late (ensemble): grid search na val set
- Porównanie: auth-only vs BPP-multi-source (DeLong test)
Modele / Baseline:
| Model | Opis |
|---|---|
| Isolation Forest (auth-only) | standard UEBA baseline |
| One-Class SVM (auth-only) | drugi baseline |
| LSTM Autoencoder (auth-only) | deep baseline |
| BPP (auth + Git + Jira) | 3 źródła |
| BPP (auth + Git + Jira + Calendar) | pełne 4 źródła |
Metryki:
- Główna: AUC (próg sukcesu: ≥0.85 multi-source vs auth-only)
- Dodatkowe: FPR@TPR=0.8, AP (Average Precision), DeLong p-value
- Test statystyczny: DeLong test (multi-source vs auth-only, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | AUC | [email protected] | AP |
|---|
Wnioski: (do wypełnienia po wykonaniu)
BSU-EXP-2: MMC — Ile Kosztuje Ominięcie BPP?
Status: planned
Priorytet: high
Powiązany pomysł: BSU-2
Dodano: 2026-05-27
Hipoteza: Minimum Mimicry Cost MMC(d) — minimalne KL-divergence między profilem behawioralnym atakującego a profilem ofiary wymagane do obniżenia TPR poniżego 80% — rośnie monotonicznie z liczbą wymiarów telemetrii d ∈ {1, 2, 3, 4}, wykazując że każde dodatkowe źródło danych zwiększa barierę dla atakującego.
Dane:
- Dataset: LANL + syntetyczna symulacja workspace (z BSU-EXP-1)
- Podział: modele wytrenowane w BSU-EXP-1; MMC obliczany na test set
- Preprocessing: profile behawioralne P_user jako rozkłady empiryczne per użytkownik
Metoda:
- Definicja: MMC = min{ KL(P_attacker || P_victim) : TPR < 0.8 } per d źródeł
- Trzy strategie atakującego: blind (losowe zachowanie), informed (zna rozkład ofiary), adaptive (gradient-based evasion)
- Obliczenie MMC dla d ∈ {1, 2, 3, 4}: kolejno dodawaj źródła auth → +Git → +Jira → +Calendar
- Symulacja: generuj 1000 profili atakujących per strategia per d, szukaj min KL dla TPR<0.8
- Krzywa MMC(d): oczekiwana monotonicznie rosnąca
Modele / Baseline:
| Model | Opis |
|---|---|
| Blind attacker | dolna granica MMC (losowe) |
| Informed attacker | zna rozkład ofiary z danych publicznych |
| Adaptive attacker | gradient-based evasion (górna granica wysiłku) |
Metryki:
- Główna: MMC(d) per d (próg: monotoniczne ↑, DeLong/KS test monotoniczności)
- Dodatkowe: MMC per strategia atakującego, percentyle 5/50/95
- Test statystyczny: Page’s Trend Test na krzywą MMC(1..4) (α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| d (źródła) | MMC blind | MMC informed | MMC adaptive |
|---|---|---|---|
| 1 (auth only) | |||
| 2 (+Git) | |||
| 3 (+Jira) | |||
| 4 (+Calendar) |
Wnioski: (do wypełnienia po wykonaniu)
BSU-EXP-3: Privacy-Preserving BPP — FL + DP-SGD na LANL
Status: planned
Priorytet: high
Powiązany pomysł: BSU-3
Dodano: 2026-05-27
Hipoteza: FedAvg + DP-SGD (ε=1.0, δ=10⁻⁵) osiąga AUC ≥ 0.95 × AUC_centralny przy symulacji 10 organizacji jako klientów FL na LANL — oraz MMC modelu FL+DP nie jest istotnie niższy od MMC modelu centralnego (jednostronny t-test, α=0.05), wykazując że prywatność i odporność na ataki mogą koexistować.
Dane:
- Dataset: LANL (z BSU-EXP-1), podzielony na 10 partycji wg IP-subnet (symulacja 10 organizacji)
- Podział: 10 × (70% local train, 30% local test); globalny test set = połączony
- Preprocessing: jak w BSU-EXP-1, per-partition normalizacja
Metoda:
- Centralny model BPP (LSTM Autoencoder): upper bound AUC (z BSU-EXP-1)
- FedAvg bez DP: 50 rund, 10 klientów (Flower framework)
- FedAvg + DP-SGD (Opacus): ε ∈ {0.1, 0.5, 1.0, 5.0, ∞} × 50 rund
- Porównanie: AUC, FPR@TPR=0.8, komunikacja (MB/runda) per konfiguracja ε
- MMC: oblicz MMC dla każdej konfiguracji FL+DP → czy DP degraduje odporność na ataki?
- Analiza regulacyjna: GDPR Art. 22, AI Act Annex III, RODO Art. 32
Modele / Baseline:
| Model | Opis |
|---|---|
| Centralny (no privacy) | upper bound |
| FedAvg (no DP) | prywatność przez rozproszenie |
| FedAvg + DP (ε=1.0) | target konfiguracja |
| FedAvg + DP (ε=0.1) | wysokie DP, test degradacji |
| FedAvg + DP (ε=5.0) | słabe DP, bliskie centralnego |
Metryki:
- Główna: AUC (próg: FL+DP ≥ 0.95 × AUC_centralny)
- Dodatkowe: MMC per ε, komunikacja [MB/runda], konwergencja (#rund)
- Test statystyczny: DeLong test (FL+DP(ε=1) vs centralny, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | AUC | AUC/AUC_central | MMC (informed) | Comm [MB/r] |
|---|
Wnioski: (do wypełnienia po wykonaniu)
Pipeline danych
LANL dataset: publiczny (~3.5GB, CSV), zawiera auth, proc, flow, dns, red team events. Tylko auth.csv używany jako primary; pozostałe jako dodatkowe źródła. Symulacja workspace: deterministyczny generator (seed=42) tworzący Git/Jira/Calendar eventy spójne z profilem czasowym LANL per użytkownik. Red team eventy LANL jako ground truth ATO labels.
Wymagania techniczne
Środowisko
Python: 3.11+
GPU: opcjonalnie (LSTM Autoencoder; szybki nawet na CPU)
RAM: min. 16 GB (LANL dataset in memory)
Dysk: ~10 GB (LANL raw data)
Kluczowe biblioteki
# requirements-research.txt
torch>=2.0
opacus>=1.4 # DP-SGD
flwr>=1.7 # Flower federated
scikit-learn>=1.3
scipy>=1.11 # KL-divergence, DeLong
numpy>=1.25
pandas>=2.0