Architektura i Eksperymenty
Ostatnia aktualizacja: 2026-05-27
Architektura systemu
Opis ogólny
System detekcji phishingu oparty na analizie URL i treści emaili, z fokusem na temporal robustness i uczciwy multi-model benchmark. Główny wkład techniczny: kwantyfikacja degradacji czasowej (legacy 2002-2005 vs fresh 2024-2026) oraz analiza kompromisu koszt–dokładność–latencja dla modeli od prostych (LightGBM) do multi-agent LLM.
Komponenty główne
| Komponent | Opis | Technologia |
|---|---|---|
| M1 – URL Feature Extractor | Cechy URL: długość, TLD, subdomain depth, special chars, IP | regex, tldextract |
| M2 – Content Analyzer | TF-IDF / BERT na treści emaili i stron | scikit-learn, Hugging Face |
| M3 – Temporal Evaluator | Trening na starych danych → test na świeżych; pomiar degradacji | sklearn, PhishTank API |
| M4 – Multi-Model Benchmark | Uczciwy benchmark: RF/XGB/LightGBM/BERT/LR na tych samych podziałach | sklearn, transformers |
| M5 – AI Phishing Generator | GPT-4/Claude generowanie phishing emails do augmentacji | OpenAI/Anthropic API |
Przepływ danych
flowchart TD INPUT([Raw URL / Email]) --> M1[M1 URL Feature Extractor] INPUT --> M2[M2 Content Analyzer\nTF-IDF / BERT] M1 --> FEAT([Feature vectors]) M2 --> FEAT FEAT --> M4[M4 Multi-Model Benchmark\nte same train/val/test podziały] OLD([Stare dane 2002-2005\nSpamAssassin, Enron]) --> M3 NEW([Świeże dane 2024-2026\nPhishTank]) --> M3[M3 Temporal Evaluator] M3 --> DELTA([ΔF1 degradacja]) M4 --> BENCH([Wyniki: F1, AUC,\nlatencja, koszt]) M5[M5 AI Phishing Generator\nGPT-4 / Claude] --> AUG([Augmented dataset]) AUG --> M4
Stack technologiczny
| Warstwa | Technologia | Uzasadnienie |
|---|---|---|
| Język | Python 3.11+ | standard ML |
| ML framework | scikit-learn, XGBoost, LightGBM | szybkie baseline modele |
| Deep learning | PyTorch, Hugging Face transformers | BERT fine-tuning |
| URL features | tldextract, urllib | parsowanie URL |
| Dane | SpamAssassin, PhishTank, Mendeley, UCI | publiczne datasety |
| Pomiar / eval | F1, AUC, latencja [ms], koszt API [$] | cost-benefit analysis |
Eksperymenty
PH-EXP-1: Temporal Robustness Benchmark — Legacy vs Fresh Phishing
Status: planned
Priorytet: high
Powiązany pomysł: PH-1
Dodano: 2026-05-27
Hipoteza: Model (SVM+TF-IDF lub BERT) wytrenowany na danych z lat 2002-2005 (SpamAssassin, Enron) traci co najmniej 20 punktów procentowych F1 gdy testowany na świeżym phishingu 2024-2026 (PhishTank) — w porównaniu do modelu trenowanego i testowanego in-distribution na danych 2024-2026.
Dane:
- Dataset stare: SpamAssassin (2002-2005), Enron Corpus (phishing injected)
- Dataset świeże: PhishTank 2024-2026 (live feed, ~10K URLi), AI-generated (GPT-4, 5K próbek)
- Podział: train=stare (80%/20% phishing/legit), test=świeże; oraz baseline train=świeże/test=świeże
Metoda:
- Pobranie SpamAssassin + PhishTank (2024-2026 snapshot) + generowanie AI-phishing (GPT-4, 5K emaili)
- Trenowanie: SVM+TF-IDF, BERT-base-uncased, regresja logistyczna na starym zbiorze
- Test: te same modele na świeżym zbiorze → miara degradacji ΔF1
- Baseline in-distribution: trening i test na świeżych danych (upper bound)
- Strategie adaptacji: (a) statyczny model, (b) incremental update co miesiąc, (c) continual learning
Modele / Baseline:
| Model | Opis |
|---|---|
| SVM + TF-IDF | klasyczny baseline |
| Regresja logistyczna | najprostszy model |
| BERT-base fine-tuned | deep learning baseline |
| Static vs incremental | porównanie strategii adaptacji |
Metryki:
- Główna: ΔF1 (degradacja, próg: ≥20 pp dla SVM/BERT)
- Dodatkowe: AUC, FPR, porównanie AI-generated vs legacy phishing cech
- Test statystyczny: McNemar test (temporal vs in-distribution, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | F1 (old train/new test) | F1 (new train/new test) | ΔF1 |
|---|
Wnioski: (do wypełnienia po wykonaniu)
PH-EXP-2: Multi-Model Benchmark — Koszt vs Dokładność vs Latencja
Status: planned
Priorytet: high
Powiązany pomysł: PH-2
Dodano: 2026-05-27
Hipoteza: LightGBM na cechach URL osiąga F1 ≥ 95% PhishDebate (multi-agent LLM, F1=96.5%) przy 1000× niższym koszcie obliczeniowym i <5ms latencji — wykazując, że złożone LLM-based systemy nie przynoszą istotnej poprawy dokładności dla podstawowej detekcji phishingu.
Dane:
- Dataset: PhishTank 2020 (~20K URLi), Mendeley Phishing Websites, UCI Phishing (~11K)
- Podział: jednakowe 80/10/10 train/val/test dla wszystkich modeli (seed=42)
- Preprocessing: 15+ cech URL per rekord; tekstowe cechy emaili dla BERT
Metoda:
- Standaryzacja podziału: 80/10/10, seed=42 dla YelpChi, PhishTank i Mendeley — reproducible
- Trenowanie: RF, XGBoost, LightGBM (cechy URL), BERT-base (treść emaila), regresja logistyczna
- Pomiar latencji: per-query inference time (median 100 predykcji)
- Pomiar kosztu: API calls (GPT-4, Claude) vs własne modele (GPU time)
- Analiza inżynierii cech: które cechy URL są najważniejsze? (SHAP values)
Modele / Baseline:
| Model | Opis |
|---|---|
| Regresja logistyczna | minimum baseline |
| Random Forest | ensemble klasyczny |
| XGBoost | gradient boosting |
| LightGBM | szybki gradient boosting |
| BERT-base fine-tuned | deep learning |
| PhishDebate (reportowane) | multi-agent LLM reference |
Metryki:
- Główna: F1 (próg sukcesu: LightGBM ≥ 95% F1 PhishDebate przy <5ms latencji)
- Dodatkowe: AUC, precision, recall, latencja [ms], koszt per 1K predykcji [$]
- Test statystyczny: McNemar test (LightGBM vs RF, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | F1 | AUC | Latencja [ms] | Koszt/1K [$] |
|---|
Wnioski: (do wypełnienia po wykonaniu)
Pipeline danych
URL features: tldextract parsuje TLD/subdomain, urllib parsuje path/query, dodatkowe: IP in hostname, length URL, count special chars, HTTPS flag. BERT: tokenizacja (max 512 tokens), fine-tuning na email body. PhishTank feed: API key wymagany, snapshot do CSV. Mendeley i UCI: pobieranie z repozytoriów publicznych.
Wymagania techniczne
Środowisko
Python: 3.11+
GPU: opcjonalnie (BERT fine-tuning, ~1h na CPU)
RAM: min. 8 GB
Dysk: ~2 GB (datasety)
Kluczowe biblioteki
# requirements-research.txt
scikit-learn>=1.3
xgboost>=2.0
lightgbm>=4.0
transformers>=4.38
torch>=2.0
tldextract>=5.0
shap>=0.44
pandas>=2.0