Architektura i Eksperymenty

Ostatnia aktualizacja: 2026-05-27


Architektura systemu

Opis ogólny

System badający wpływ stopnia personalizacji OSINT na wykrywalność spear phishingu przez klasyfikatory automatyczne i ludzi. Główny wkład techniczny: formalna kwantyfikacja “personalization cost” przez attack i detection error rate (gradient personalizacji P0→P100), oraz metryka Attack Predictability Score (APS) mierząca ekspozycję OSINT użytkownika.

Komponenty główne

KomponentOpisTechnologia
M1 – OSINT ProfilerZbieranie publicznych profili: LinkedIn, GitHub, Sessionize, HIBPPython crawler (ToS-compliant)
M2 – Email GeneratorGenerowanie emaili phishingowych na 4 poziomach personalizacjiGPT-4 API (red-team)
M3 – Phishing ClassifierAutomatyczna detekcja emaili phishingowychRoBERTa fine-tuned, LightGBM, GPT-4o
M4 – APS CalculatorObliczanie Attack Predictability Score z cech OSINT per profilentropy, linear regression
M5 – Human AnnotatorMTurk annotators jako oracle dla human detection rateMechanical Turk
M6 – Statistical AnalyzerPermutation test, ANOVA, mediation, Spearman ρscipy, R

Przepływ danych

flowchart TD
    PUB([Publiczne profile\nLinkedIn / GitHub / Sessionize]) --> M1[M1 OSINT Profiler]
    M1 --> PROF([200 profili × cechy OSINT])
    PROF --> M4[M4 APS Calculator\nAPS-u = Σ wi · 1-Hi-u]
    M4 --> APS([APS per użytkownik])
    PROF --> M2[M2 Email Generator\nGPT-4 red-team]
    M2 --> EMAILS([4000 emaili\n200 × 4 poziomy × 5])
    EMAILS --> M3[M3 Phishing Classifiers\nRoBERTa / LightGBM / GPT-4o]
    EMAILS --> M5[M5 Human Annotators\nMTurk]
    M3 --> ER([Error rate per P-level])
    M5 --> HD([Human detection rate per P-level])
    ER --> M6[M6 Statistical Analyzer\nANOVA + permutation test]
    HD --> M6
    APS --> CORR[Spearman ρ:\nAPS vs error rate at P100]
    ER --> CORR

Stack technologiczny

WarstwaTechnologiaUzasadnienie
JęzykPython 3.11+crawler + ML
OSINTrequests, BeautifulSoupscraping (ToS-compliant)
Email genOpenAI GPT-4 APIred-team LLM
NLPPyTorch, Hugging Face transformersRoBERTa fine-tuning
Classic MLscikit-learn, LightGBMTF-IDF baseline
MTurkAmazon Mechanical Turk APIhuman annotation
Statystykiscipy, R (permutation test)non-parametric tests
Danewłasny dataset (4000 emaili)publiczny po anonymizacji

Eksperymenty

SP-EXP-1: Personalization Gradient Study — Wpływ Kontekstu OSINT na Wykrywalność

Status: planned Priorytet: high Powiązany pomysł: SP-1 Dodano: 2026-05-27

Hipoteza: Klasyfikatory content-only (RoBERTa fine-tuned) i LLM-only (GPT-4o zero-shot) wykazują monotonicznie rosnący error rate wraz ze wzrostem stopnia personalizacji (P0→P25→P50→P100) — trend jest istotny statystycznie (α=0.05, permutation test per poziom) — wskazując, że personalizacja OSINT systematycznie obniża skuteczność automatycznej detekcji.

Dane:

  • Dataset: własny, 200 profili × 4 poziomy × 5 emaili = 4,000 emaili (GPT-4 red-team)
  • Podział: 80/20 train/test per klasyfikator (stratified per P-level)
  • Preprocessing: tokenizacja (max 512 tokens), usuwanie PII, balancing train set

Metoda:

  1. Zebranie 200 publicznych profili (LinkedIn + GitHub + Sessionize) zgodnie z ToS
  2. Generowanie emaili: GPT-4, prompt z poziomem personalizacji P0/P25/P50/P100
  3. Fine-tuning RoBERTa-base na zbiorze train (phishing/legit emaile z publicznych datasetów)
  4. Ewaluacja: error rate per P-level dla każdego klasyfikatora
  5. Human oracle: MTurk annotators (N=3 per email), majority vote → human error rate per P-level
  6. Trend test: ANOVA + permutation test per P-level transition; linear trend test

Modele / Baseline:

ModelOpis
LightGBM (TF-IDF)szybki baseline
RoBERTa-base fine-tunedcontent-based classifier
GPT-4o zero-shotLLM detector
MTurk human annotatorshuman oracle

Metryki:

  • Główna: error rate per P-level (1 - F1 per P-group); test monotoniczności
  • Dodatkowe: delta error rate P0→P100 per model, human vs auto comparison
  • Test statystyczny: permutation test per (P_i vs P_{i-1}), ANOVA trend, α=0.05

Wyniki: (do wypełnienia po wykonaniu)

ModelError@P0Error@P25Error@P50Error@P100Trend p-value

Wnioski: (do wypełnienia po wykonaniu)


SP-EXP-2: Attack Predictability Score (APS) — Formalna Metryka Epistemic Attack Surface

Status: planned Priorytet: high Powiązany pomysł: SP-2 Dodano: 2026-05-27

Hipoteza: APS(u) = Σ w_i · (1 - H_i(u)) (suma ważona 1 - entropia atrybutu i dla użytkownika u z danych OSINT) koreluje ze Spearman ρ > 0.4 z empirycznym error rate klasyfikatora przy P100 — co oznacza, że ekspozycja OSINT mierzalna publicznie jest predyktorem podatności na spear phishing.

Dane:

  • Dataset: 200 profili z SP-EXP-1 + ich error rate @P100 jako zmienna zależna
  • Podział: train=150/test=50 dla regresji walidacyjnej
  • Preprocessing: entropia per atrybut OSINT (LinkedIn role/company, GitHub languages, HIBP breaches), normalizacja

Metoda:

  1. Obliczenie entropii H_i per atrybut per użytkownik (z zebranych danych OSINT)
  2. APS(u) = Σ w_i · (1 - H_i(u)) — wagi w_i estymowane regresją liniową
  3. Korelacja Spearmana: APS vs error rate @P100 na train set
  4. Ablation źródeł: APS per źródło (LinkedIn only, GitHub only, Sessionize only, HIBP only)
  5. Cross-validation: APS na held-out 50 profilach → czy predyktywność się utrzymuje?
  6. Ranking źródeł: które źródło daje najwyższy β w regresji liniowej APS → error rate?

Modele / Baseline:

ModelOpis
Random baselineρ = 0 (brak korelacji)
APS (LinkedIn only)pojedyncze źródło
APS (GitHub only)pojedyncze źródło
APS (all sources)pełny model

Metryki:

  • Główna: Spearman ρ (próg sukcesu: ρ > 0.4 na test set)
  • Dodatkowe: β per źródło OSINT, APS rozkład (percentyle 25/50/75), cross-val ρ
  • Test statystyczny: permutation test dla Spearman ρ (α=0.05, N=1000 permutacji)

Wyniki: (do wypełnienia po wykonaniu)

Model APSSpearman ρ (train)Spearman ρ (test)Top OSINT source

Wnioski: (do wypełnienia po wykonaniu)


Pipeline danych

OSINT profiling: Python crawler pobiera publiczne dane (LinkedIn: profil+posty, GitHub: bio+repos+commits, Sessionize: prelekcje, HIBP: naruszenia). Dane anonimizowane przed publikacją (hash ID zamiast nazwy). Emaile generowane przez GPT-4 API z kontrolowanym promptem per P-level. Dataset opublikowany po usunięciu PII.

Wymagania techniczne

Środowisko

Python: 3.11+
GPU: opcjonalnie (RoBERTa fine-tuning, ~2h na GPU, ~8h na CPU)
RAM: min. 8 GB
Dysk: ~2 GB (dataset emaili + modele)

Kluczowe biblioteki

# requirements-research.txt
torch>=2.0
transformers>=4.38    # RoBERTa fine-tuning
scikit-learn>=1.3
lightgbm>=4.0
openai>=1.0           # GPT-4 API (email generation + GPT-4o eval)
scipy>=1.11           # Spearman, permutation test
boto3>=1.34           # MTurk API
pandas>=2.0

Status eksperymentów

IDTytułStatusPriorytetETAWynik
SP-EXP-1Personalization gradient study P0→P100plannedhigh
SP-EXP-2APS — metryka epistemic attack surfaceplannedhigh