Architektura i Eksperymenty

Ostatnia aktualizacja: 2026-05-27


Architektura systemu

Opis ogólny

FinPhishGuard to hybrydowy system detekcji phishingu impersonującego marki finansowe, łączący 4 niezależne moduły (URL, Visual, Content, DOM Timing) z adaptacyjną fuzją decyzyjną. Główny wkład techniczny: adversarially hardened logo detection (CLIP + PGD training) odporna na GAN i diffusion logos, oraz DOM-based obrona przed delayed rendering bez potrzeby screenshotów.

Komponenty główne

KomponentOpisTechnologia
M1 – URL AnalyzerHomoglyph/punycode detection, domain age, TLD abuse; wstępny filtr <5msLightGBM, SSL CT logs
M2a – Logo LocalizationDetekcja i lokalizacja logo na screenshocie stronyDeformable DETR fine-tuned na LogoSENSE
M2b – Brand MatchingZero-shot matching logo do bazy 150+ marek finansowychCLIP ViT-B/32 (embeddingi tekstowo-wizualne)
M2c – Adversarial VerifierWeryfikacja odporna na GAN/diffusion logo attacksResNet-50/ViT-B/16 + PGD adversarial training
M2d – Timing DefenseWielokrotne screenshoty t=0/500ms/2000ms + deltaPlaywright, anomaly detection
M3 – Content Brand ExtractorNER brand extraction z HTML + OCR headerRoBERTa-base fine-tuned, PaddleOCR
M4 – DOM Timing AnalyzerStatyczna analiza CSS/JS opacity hiding elementów logoBeautifulSoup, AST analysis
Fuzja decyzyjnas = 0.25·p_url + 0.40·p_visual + 0.25·p_content + 0.10·p_timingAdaptive weighted ensemble

Przepływ danych

flowchart TD
    URL([URL wejściowa]) --> M1[M1 URL Analyzer]
    M1 -->|p_url > 0.9| BLOCK([BLOCK])
    M1 -->|p_url ≤ 0.9| PW[Screenshot Playwright]
    PW --> M2a[M2a Logo Localization]
    M2a --> M2b[M2b CLIP Brand Matching]
    M2b --> M2c[M2c Adversarial Verifier]
    M2c --> p_visual([p_visual])
    HTML([HTML raw]) --> M4[M4 DOM Static Analysis]
    HTML --> M3[M3 NER/OCR Brand Extractor]
    M4 --> p_timing([p_timing])
    M3 --> p_content([p_content])
    M1 --> p_url2([p_url])
    p_url2 --> FUSION[Adaptive Fusion\ns = 0.25·p_url + 0.40·p_visual\n+ 0.25·p_content + 0.10·p_timing]
    p_visual --> FUSION
    p_content --> FUSION
    p_timing --> FUSION
    FUSION --> DECISION([PHISHING / BENIGN])

Stack technologiczny

WarstwaTechnologiaUzasadnienie
JęzykPython 3.11+standard ML
ML frameworkPyTorch 2.x, Hugging FaceCLIP, ViT, RoBERTa
Object Detectiontorchvision / Deformable DETRlogo localization
Browser automationPlaywrightscreenshoty + timing
HTML parsingBeautifulSoup, lxmlDOM analysis
URL featurestldextract, homoglyphsM1 features
DaneLogoSENSE, Ji & Kim 2025, PhiUSIILpubliczne datasety
Pomiar / evalsklearn metrics, Bootstrap CIF1, FPR@95%TPR

Eksperymenty

BP-EXP-1: Adversarial Robustness CLIP vs ResNet dla Logo Matching

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

Hipoteza: CLIP ViT-B/32 wykazuje istotnie niższy evasion rate pod atakiem GAN logos (Lee 2023) niż ResNet-50 z triplet loss (baseline VisualPhishNet) — mierzony jako odsetek GAN-perturbowanych logo błędnie dopasowanych do złej marki. Spodziewany wynik: CLIP evasion rate <30% vs ResNet-50 >80%.

Dane:

  • Dataset: LogoSENSE test set (1,979 próbek) + GAN logos z Lee 2023 + LogoMorph z Hao 2024
  • Podział: train (LogoSENSE 3,060) / test (1,979 + adversarial subset)
  • Preprocessing: resize 224×224, normalize ImageNet mean/std

Metoda:

  1. Trenuj M2a Deformable DETR na LogoSENSE train set (bounding boxes)
  2. Zbuduj bazę embeddingów: CLIP ViT-B/32 dla 150+ marek finansowych
  3. Baseline: ResNet-50 z triplet loss (VisualPhishNet setup, Phishpedia logos)
  4. Generuj adversarial logos: FGSM ε=8/255, PGD k=40 ε=8/255, GAN (Lee 2023 methodology)
  5. Zmierz: Recall@1 i evasion rate dla CLIP vs ResNet na clean i adversarial logo

Modele / Baseline:

ModelOpis
ResNet-50 tripletVisualPhishNet baseline, HOG+SVM
CLIP ViT-B/32zero-shot brand matching
ViT-B/16 + PGD trainingadversarially hardened verifier
EVA-02-CLIP-L/14 (optional)SOTA CLIP ablation (#BP-8)

Metryki:

  • Główna: evasion rate pod GAN attack (próg sukcesu: CLIP <30% vs ResNet >80%)
  • Dodatkowe: Recall@1, Recall@5 na clean LogoSENSE; mAP per brand tier
  • Test statystyczny: McNemar test (CLIP vs ResNet, α=0.05)

Wyniki: (do wypełnienia po wykonaniu)

ModelEvasion rate (GAN)Recall@1 (clean)Uwagi

Wnioski: (do wypełnienia po wykonaniu)


BP-EXP-2: Financial Brand Coverage Audit SOTA RBPD

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

Hipoteza: Istniejące SOTA systemy RBPD (PhishIntention, KnowPhish) mają recall <50% dla marek fintech (Revolut, Wise, Klarna, N26) i payment gateways (BLIK, Stripe) — istotnie niższy niż dla tradycyjnych banków (>80% recall), potwierdzając systematyczny coverage gap dla financial services.

Dane:

  • Dataset: Ji & Kim 2025 (19,131 phishing + 243 benign), PhishIntention brand list
  • Podział: pełny test set (bez treningu — pure evaluation)
  • Preprocessing: tagowanie stron per brand tier (banking/payment/fintech)

Metoda:

  1. Uruchom PhishIntention + KnowPhish na Ji & Kim 2025 dataset (docker/API)
  2. Taguj wyniki per brand category (banking vs payment vs fintech vs crypto)
  3. Oblicz recall per brand i per category
  4. Zidentyfikuj coverage gaps: marki z recall <50%
  5. Dodaj brakujące marki do knowledge base i zmierz improvement

Modele / Baseline:

ModelOpis
PhishIntentionUSENIX Sec 2022, główny baseline
KnowPhishSOTA 2024, 20k brand KB
Extended KBFinPhishGuard brand list (150+ financial)

Metryki:

  • Główna: recall per brand tier (próg: fintech <50%, banking >80%)
  • Dodatkowe: overall F1, FPR, breakdown per Tier 1-4
  • Test statystyczny: McNemar test (PhishIntention vs Extended KB)

Wyniki: (do wypełnienia po wykonaniu)

SystemRecall (banking)Recall (payment)Recall (fintech)Ogółem F1

Wnioski: (do wypełnienia po wykonaniu)


BP-EXP-3: TempGuard — DOM/CSS Defense Against Delayed Rendering

Status: planned Priorytet: high Powiązany pomysł: BP-3 Dodano: 2026-05-27

Hipoteza: System TempGuard oparty na statycznej analizie DOM/CSS/JS wykrywa delayed rendering attacks (Yuan 2026) z recall >80% bez dodatkowych screenshotów — podczas gdy pojedynczy screenshot baseline osiąga recall 0% na tym samym zbiorze testowym.

Dane:

  • Dataset: syntetyczny zbiór delayed rendering pages (reprodukcja Yuan 2026 PoC CSS curtain)
  • Podział: 500 strony z timing evasion (syntetyczne) + Ji & Kim 2025 subset (measurement)
  • Preprocessing: raw HTML + Playwright resource timing trace

Metoda:

  1. Implementacja TempGuard: CSS parser (opacity:0, display:none na logo elements) + JS AST (setTimeout >200ms na logo nodes) + network timing (logo fetch delay >300ms)
  2. Generuj syntetyczne CSS curtain pages (CSS opacity: 0 → 1 po 500ms/1000ms/3000ms)
  3. Ewaluacja na syntetycznym zbiorze: recall TempGuard vs single-screenshot baseline
  4. Measurement study na Ji & Kim 2025: ile stron używa timing evasion? (deskryptywne)

Modele / Baseline:

ModelOpis
Single-screenshotPhishpedia/PhishIntention standard
Yuan 2026 PoCdrugi screenshot jako obrona
TempGuard (DOM+CSS)nasz system bez screenshotów
TempGuard (full)DOM + network timing + multi-timestamp

Metryki:

  • Główna: recall na delayed rendering attacks (próg sukcesu: >80%)
  • Dodatkowe: latencja detekcji [ms], FPR na benign pages
  • Test statystyczny: Fisher exact test (TempGuard vs single-screenshot na syntetycznych)

Wyniki: (do wypełnienia po wykonaniu)

SystemRecall (timing evasion)Latencja [ms]FPR

Wnioski: (do wypełnienia po wykonaniu)


Pipeline danych

Dane wejściowe: URL → Playwright headless browser → screenshot + HTML + resource timing. LogoSENSE (3,060 train / 1,979 test) używany do treningu i walidacji logo detectora. Ji & Kim 2025 (19,131 stron) jako benchmark end-to-end. Syntetyczne strony CSS curtain generowane skryptem Python (selenium/playwright) dla timing defense.

Wymagania techniczne

Środowisko

Python: 3.11+
GPU: NVIDIA 8GB+ VRAM (DETR training, PGD adversarial training)
RAM: min. 16 GB
Dysk: ~50 GB (datasets + model checkpoints)

Kluczowe biblioteki

# requirements-research.txt
torch>=2.0
torchvision>=0.15
transformers>=4.38
clip @ git+https://github.com/openai/CLIP
playwright>=1.40
beautifulsoup4>=4.12
scikit-learn>=1.3
lightgbm>=4.0
paddleocr>=2.7
tldextract>=5.0
homoglyphs>=2.0

Status eksperymentów

IDTytułStatusPriorytetETAWynik
BP-EXP-1CLIP vs ResNet adversarial robustnessplannedhigh
BP-EXP-2Financial brand coverage auditplannedhigh
BP-EXP-3TempGuard delayed rendering defenseplannedhigh