Outline: FinPhishGuard — Adversarially Robust Financial Brand Phishing Detection

Docelowa publikacja: pełny paper (8-10 stron), venue: ACSAC / USENIX Security / CCS Ostatnia aktualizacja: 2026-05-12


Tytuł (kandydaci)

  • FinPhishGuard: Adversarially Robust Detection of Financial Brand Impersonation via CLIP-Based Visual Matching and DOM Timing Analysis
  • Towards Robust Brand Phishing Detection: CLIP, Adversarial Hardening, and Timing Evasion Defense for Financial Services
  • Beyond the Lab: Adversarially Robust Phishing Detection for Financial Brands with Multi-Modal Fusion

Teza główna: Hybrydowy system łączący zero-shot CLIP brand matching, PGD adversarial hardening i DOM-based timing analysis osiąga >90% recall pod atakami klasy A1-A3, gdzie istniejące RBPD (PhishIntention, KnowPhish) tracą istotnie na skuteczności — ewaluowane empirycznie na publicznych datasetach (konkretna liczba degradacji baseline’ów: do uzupełnienia po EXP-3).


1. Introduction (~1 strona)

Zadanie: Uzasadnienie problemu + research gap + contributions

1.1 Problem statement

  • Phishing ataków na instytucje finansowe: skala (APWG raporty), koszt
  • Zakres: nie tylko banki — PayPal, Revolut, BLIK, Mastercard impersonowane równie często
  • Istniejące RBPD: 87-92% F1 w laboratorium (KnowPhish: F1=92.05%, Phishpedia: Recall=87.1%, PhishIntention: Recall=90% @ własny dataset) → drastyczny spadek w warunkach rzeczywistych (Ji et al. 2024: recall spada do 22-66% w zależności od systemu)

1.2 Attack landscape (3 klasy)

  • A1: GAN/diffusion adversarial logos — 95% evasion rate (Lee 2023), logo detectory podatne
  • A2: Delayed rendering — detection 100%→0% (Yuan 2026), żaden system produkcyjny nie broni
  • A3: Multi-space evasion — URL + visual jednocześnie (Yuan/MultiSpacePhish 2023)

1.3 Limitations of existing work

  • VisualPhishNet/PhishIntention/KnowPhish: nie testowane adversarially
  • Baza marek: banki tradycyjne, brak fintech/payment gateways
  • Logo detection na urządzeniach: 46.6% recall (Petrukha 2024)
  • Delayed rendering: jedyna obrona = 1 dodatkowy screenshot (łatwe do ominięcia)

1.4 Contributions (lista punktowana — do sekcji 1.4)

Uwaga zakresu: Top venue (USENIX/CCS) oczekuje 1-2 głębokich wkładów, nie 5 płytkich. Priorytety: C1 + C2 to rdzeń; C3 jako silny supporting; C4/C5 jako enabling contributions.

  • C1: CLIP-based zero-shot brand matching — pierwsza ewaluacja odporności CLIP na transfer adversarial logos (GAN/diffusion) wobec ResNet-Siamese baseline; udokumentowana luka literaturowa
  • C2: DOM/CSS/JS static timing analysis — pierwsza systematyczna obrona przed delayed rendering attacks (Yuan 2026) nie wymagająca screenshotów; recall ≥80% dla nieopakowanych ataków
  • C3: FinPhishGuard — hybrydowy system (URL + CLIP visual + NER content + DOM timing) z udokumentowaną przewagą na Ji & Kim 2025 (adversarial protocol A1-A3)
  • C4: Financial Brand KB — 150+ marek (banki + fintech + payment gateways); wkład enabling (nie główna teza)
  • C5: Ewaluacja na Ji & Kim 2025 (19,131 phishing + ≥5,000 benign) z brand-level breakdown i adversarial protocol — open benchmark dla community

2.1 Reference-Based Phishing Detectors (RBPD)

Łańcuch ewolucji (każdy 1-2 zdania):

  • VisualPhishNet (Abdelnabi 2020) — triplet CNN, visual profiles
  • Phishpedia (Lin 2021) — object detection + brand matching, USENIX, 164 cyt.
  • PhishIntention (Liu 2022) — phishing intent, modularny, Baseline #1
  • DynaPhish (Liu 2023) — dynamiczne uczenie nowych marek
  • KnowPhish (Li 2024) — LLM + 20k brand KG

Nowy SOTA (bez reference list):

  • Lee et al. (2024, arXiv 2408.05941) — MLLM two-phase: LLM identifies brand → verify domain; eliminuje KB maintenance; Baseline #3; nie testowany adversarially

Gap wspólny dla wszystkich: żaden nie testowany na GAN logos / diffusion / delayed rendering; fintech brand coverage słaba; real-world performance dramatycznie niższa (Ji 2024).

2.2 Adversarial Attacks on Phishing Detectors

  • FGSM (Goodfellow 2014) + PGD (Madry 2018) — ogólna klasa first-order attacks
  • Lee 2023 — GAN adversarial logos: 95% evasion na VisualPhishNet
  • Hao 2024 — LogoMorph diffusion: semantycznie podobne ale nie wykrywane
  • Yuan 2023 (MultiSpacePhish) — problem + feature space evasion
  • Yuan 2026 — delayed rendering: CSS curtain, 100%→0%
  • Kulkarni et al. 2024 (PhishOracle) — adversarial page generator; VisualPhishNet i Phishpedia padają; nawet MLLM (Lee 2024) podatny → Attack Class A5 w naszym protokole

2.3 Visual Foundations

  • ResNet (He 2016) — baseline CNN backbone
  • ViT (Dosovitskiy 2021) — globalny attention, odporniejszy na lokalne perturbacje
  • DETR/Deformable DETR (Carion 2020, Zhu 2021) — object detection bez anchors
  • CLIP (Radford 2021) — zero-shot visual-language alignment
  • Triplet loss / FaceNet (Schroff 2015) — metric learning baseline

2.4 Adversarial Defenses

  • PGD adversarial training (Madry 2018) — empirical robustness
  • Randomized Smoothing (Cohen 2019) — certified L₂ robustness

2.5 Real-World Evaluation Gap

  • Ji et al. 2024: 451k stron, PhishIntention recall ~40% — lab vs real-world
  • Ji & Kim 2025: 19,131 stron, LLM vs RBPD, nasz główny benchmark dataset

3. Threat Model (~0.5 strony)

3.1 Attacker capabilities

  • Adversary zna architekturę systemu (white-box) lub typ (black-box)
  • Może modyfikować: logo (pikselowo), rendering timing, URL strukturę, HTML/CSS/JS
  • Nie może modyfikować: DNS wpisy (propagacja TTL), infrastrukturę CDN ofiary

Uwaga: SSL certyfikat LET’S ENCRYPT jest darmowy i wydawany w minutach — NIE jest barierą dla atakującego. Usuń z threat model jako “kosztowne”.

3.1b Adaptive attacker (wymagane przez top venues)

  • Zakres obrony M4 (DOM timing): atakujący NIE znający o M4 (realistic black-box) lub znający ale bez obfuskacji JS
  • Poza zakresem obrony: webpack-minified JS, base64-encoded CSS, CSS-in-JS, ServiceWorker-based timing — wymienione explicite w Limitations (Section 7.1)
  • Zakres obrony M2 (CLIP): transfer attacks z modelu ResNet-Siamese (Lee 2023 scenario); adaptive CLIP-targeted attacks są silniejsze — kompensowane przez M2c PGD verifier
  • Uzasadnienie zakresu: ograniczenia są standardowe w literaturze adversarial defenses (Carlini & Wagner 2017)

3.2 Attack classes formalized

KlasaAtakTarget modułuWcześniejsza praca
A1-wbPGD L∞ na logoM2 visualMadry 2018
A1-bbGAN adversarial logosM2 visualLee 2023
A2Diffusion logo morphM2 visualHao 2024
A3Delayed CSS renderingM4 timingYuan 2026
A4URL obfuscation + A1-bbM1 + M2Yuan 2023
A5PhishOracle brand-embedM2 + M3Kulkarni 2024

3.3 Defender goal

≥ 90% recall dla każdej klasy A1-A3, FPR ≤ 5% na clean legitimate sites.


4. System Design: FinPhishGuard (~3 strony)

4.1 Architecture Overview

Diagram: URL + HTML + Screenshot → [M1 URL | M2 Visual | M3 Content | M4 Timing] → Fusion → verdict

4.2 M1: URL Analyzer

  • Feature engineering: homoglyph score (Unicode confusables, Levenshtein vs brand list), TLD abuse, domain age, SSL issuer
  • Model: LightGBM (Duarte 2025 jako punkt wyjścia)
  • Rola: szybki filtr < 5ms, shortcut dla oczywistych przypadków

4.3 M2: Visual Logo Detector (core)

4.3.1 Logo Localization

  • Deformable DETR fine-tuned na LogoSENSE (3,060 próbek, bounding box)
  • Klasy: [logo_region, favicon, brand_text]

4.3.2 CLIP Zero-Shot Matching

  • ViT-B/32 CLIP image encoder → 512-dim embedding
  • Brand KB: 150+ marek, opisy tekstowe → pre-computed text embeddings
  • Zero-shot: nowa marka = nowy opis tekstowy, zero retrainingu
  • Rola: fast path dla oczywistych matchów (sim > τ_high)

4.3.3 Adversarial Verifier

  • Fine-tuned ViT-B/16 + PGD adversarial training (ε=8/255, k=40, α=2/255)
  • Training data augmentation: 30% clean + 20% PGD + 20% GAN (Lee 2023) + 15% diffusion (Hao 2024) + 15% std augmentation
  • Rola: deep verification gdy τ_low < CLIP sim < τ_high
  • Opcjonalnie: Randomized Smoothing dla certified radius R

4.3.4 Multi-Timestamp Visual Defense

  • Playwright headless: t=0, t=500ms, t=2000ms
  • SSIM delta threshold: logo appearance po t=0 → suspicious signal

4.4 M3: Content Brand Extractor

  • HTML parser: title, h1, meta, button, form action
  • PaddleOCR: header region + login form screenshot

NER — dwie ścieżki (wybór po eksperymencie):

  • Opcja A (zero-shot): Qwen3 / Gemma prompt: “Extract financial brand names from this HTML snippet” — brak potrzeby danych treningowych, natychmiastowy start; latencja ~200-400ms lokalnie
  • Opcja B (fine-tuned): RoBERTa-base NER z klasami BANK / PAYMENT / FINTECH / CARD — wymaga labeled NER training set (silver labels przez Opcja A + manualna weryfikacja ~500 przykładów); latencja ~30ms

Uwaga implementacyjna: Opcja B wymaga stworzenia annotowanego datasetu NER od zera — brak publicznych NER corpora dla financial brand extraction z phishing HTML. Opcja A (zero-shot LLM) eliminuje ten problem i jest realistyczna dla doktoratu.

  • URL cross-check: Levenshtein(brand, domain_root) < τ → mismatch signal

4.5 M4: DOM Timing Analyzer

M4a — Static analysis (naprawdę statyczna, < 10ms, bez uruchamiania strony):

  • CSS parser: identyfikacja opacity:0 / display:none / visibility:hidden / clip-path:inset(...) na elementach logo
  • JS AST (esprima/acorn): setTimeout / setInterval z delay > 200ms na logo-related DOM nodes; wykrywanie wzorców klasy PhishMe module
  • Heuristic scoring: każdy wykryty pattern → additive suspicious score
  • Zakres: nieopakowany CSS/JS (bez webpack/obfuskacji) — explicite w Limitations

M4b — Dynamic fallback (wykonanie strony, uruchamiane tylko gdy M4a score < threshold):

  • Playwright headless: Resource Timing API → logo PNG fetch delay vs DOMContentLoaded
  • Uzasadnienie: M4b jest drogie (~500ms) i uruchamiane tylko gdy M4a jest niekonkluzywne
  • Trade-off: M4a = szybki, zakres ograniczony; M4b = wolny, wyższy coverage

Podział odpowiedzialności z M2d: M4a+M4b = detekcja timing patterns (cel: wykryć ATAK). M2d (multi-timestamp SSIM w M2) = weryfikacja wizualna logo (cel: potwierdzić BRAK logo). Komplementarne, nie redundantne — różne sygnały, różna warstwa decyzyjna.

4.6 Decision Fusion

  • Weighted ensemble: s = w₁·p_url + w₂·p_visual + w₃·p_content + w₄·p_timing
  • Wagi uczone na dev set (Ji & Kim 2025 split: 70/15/15 train/dev/test) przez grid search lub logistic regression meta-learner — nie dobierane arbitralnie
  • Punkt startowy heurystyczny (do ablacji): w₁=0.25, w₂=0.40, w₃=0.25, w₄=0.10
  • Adaptive weights: visual timeout → redistribution; payment form context → β+=0.10
  • Override rules: p_timing > 0.95 → PHISHING; p_visual < 0.05 → LEGITIMATE (weryfikować empirycznie próg)
  • Threshold: FPR @ 95% TPR jako operacyjny punkt kalibracji

5. Financial Brand Knowledge Base (~0.5 strony)

5.1 Taxonomia

  • Tier 1 Banki (50 marek): PKO BP, mBank, ING, HSBC, Deutsche Bank, JPMorgan, …
  • Tier 2 Payments (20 marek): PayPal, Stripe, Revolut, BLIK, Wise, Klarna, …
  • Tier 3 Cards + Mobile (10 marek): Mastercard, Visa, Amex, Apple Pay, Google Pay
  • Tier 4 Crypto/Fintech (30 marek): Binance, Coinbase, N26, Monzo, Starling, …
  • Oficjalne strony WWW (scraper z robots.txt compliance)
  • EUIPO Bulk Download: Class 36 (financial) → SVG/PNG trademark logos
  • Warianty per marka: pełne/icon/dark/light/small ≈ 5-10 wariantów

5.3 Zero-shot extension via CLIP

  • Nowa marka bez retrainingu: dodaj opis tekstowy
  • Few-shot extension: ≥ 3 przykładów logo → znacznie lepsza precision

6. Evaluation (~2 strony)

6.1 Datasets

DatasetRozmiarUżycie
Phishpedia Labelled Logo (Lin 2021)30,649 stron + bounding boxM2a training — logo localization
LogoSENSE (Bozkir 2020)1,979 testM2a test set (held-out, inne źródło)
Phishpedia Target List (Lin 2021)181 marekSeed Financial Brand KB
Phishpedia Phishing (Lin 2021)29,496 stronM2/M3 training; secondary eval
Ji & Kim 202519,131+243End-to-end benchmark (primary)
PhiUSIIL~465kM1 URL module training
Syntetyczny A1-A4~5kAdversarial robustness testing

6.2 Baselines

  • PhishIntention (Liu 2022) — Baseline #1 (główny)
  • KnowPhish (Li 2024) — Baseline #2 (SOTA reference-based)
  • Lee et al. 2024 MLLM — Baseline #3 (SOTA no-reference-list)
  • Phishpedia (Lin 2021) — Baseline #4 (historyczny, Ji & Kim 2025 używa)
  • M1-only, M1+M2, M1+M2+M3, full — ablation warianty

6.3 Eksperymenty

EXP-1: Logo Detection (M2a)

  • Dataset: LogoSENSE test set (1,979 stron z bounding box annotation)
  • Metryki: [email protected], [email protected] (object detection metrics)
  • Baseline: Faster R-CNN (Phishpedia Lin 2021 używa F-RCNN — właściwy punkt porównania, ta sama metryka mAP)
  • Uwaga: HOG+SVM Bozkir 2020 raportuje accuracy klasyfikatora (94.3%) — nieporównywalny z mAP detektora; nie używać jako baseline numerycznego

EXP-2: Brand Matching Clean (M2b)

  • Dataset: LogoSENSE logo crops
  • Metryki: Top-1 accuracy, Top-5 accuracy
  • Baseline: ResNet-50 + triplet (PhishIntention approach)
  • H: CLIP ≥ ResNet-50 triplet accuracy

EXP-3: Adversarial Robustness (M2c) — kluczowy

  • Dataset: LogoSENSE + adversarial samples
  • Metryki: recall pod atakiem, Δ evasion rate per attack type
  • Baseline: ResNet-50 no hardening (Lee 2023: 95% evasion dla Siamese)
  • H: CLIP naturalnie odporny (transfer); PGD hardening redukuje evasion < 30%

Źródła ataków adversarial (weryfikować dostępność PRZED planem):

  • PGD L∞: własna implementacja (straightforward, PyTorch autograd) ✅
  • GAN logos (Lee 2023): brak publicznego kodu — opcje: (a) kontakt z autorami, (b) własna reprodukcja GAN perturbation generator (~3-4 tygodnie GPU), (c) zawężenie EXP-3 do PGD + diffusion
  • Diffusion logos (Hao 2024 LogoMorph): sprawdzić GitHub autorów; jeśli niedostępny → reprodukcja lub pominięcie
  • Uwaga: jeśli Lee 2023 GAN niedostępny, core claim H1 musi być przeformułowany na “PGD transfer attack” zamiast “GAN logos”

EXP-4: Timing Defense (M4)

  • Dataset: syntetyczny ≥ 1,000 stron (200+ per delay class: 0ms, 500ms, 1s, 2s, 5s); FPR na 500 legalnych stronach z legalnymi lazy-load delays
  • Metryki: recall per delay class; FPR na legalnych stronach z legalnymi delays
  • Baseline: Yuan 2026 PoC (1 extra screenshot = 0% recall przy delay > 2s)
  • H: DOM static analysis wykrywa ≥ 80% bez screenshotów (nieopakowane ataki)
  • Zakres: nieopakowany CSS/JS (bez webpack/obfuskacji) — opisać w Limitations

EXP-5: End-to-End (primary)

  • Dataset: Ji & Kim 2025 (19,131 phishing) + ≥ 5,000 benign (Alexa top-10k lub CommonCrawl sample) — 243 benign z Ji & Kim 2025 jest niewystarczające do rzetelnej estymacji FPR
  • Metryki: F1, recall, FPR @ 95% TPR; bootstrap 95% CI dla każdej metryki (n=1,000 resampli)
  • Baseline: PhishIntention, KnowPhish; test McNemar dla istotności statystycznej Δ F1
  • Ablation: M1 → M1+M2 → M1+M2+M3 → full (M1+M2+M3+M4)

EXP-6: Financial Brand Breakdown

  • Dataset: Ji & Kim 2025, manualna klasyfikacja phishing stron per brand tier
  • Metryki: recall per tier (Banks / Payments / Cards / Fintech)
  • H: PhishIntention gorsza dla Tier 2-4 (payment/fintech), nasz system lepszy

EXP-7: Latency (deployment)

  • Środowisko: commodity laptop (CPU-only) + GPU server
  • Metryki: p50/p95/p99 latency per moduł + end-to-end

6.4 Grad-CAM Analysis (qualitative)

  • Wizualizacja heatmap: które piksele logo decydują o match
  • Porównanie clean vs adversarial: jak perturbacja zmienia attention
  • Przykłady: true positive, false positive, adversarial bypass

7. Discussion (~0.5 strony)

7.1 Limitations

  • M4 scope: DOM timing analysis wykrywa nieopakowane ataki klasy Yuan 2026; adaptywny atakujący używający webpack/obfuskacji/ServiceWorker może obejść — poza zakresem tej pracy
  • H1 scope: Odporność CLIP mierzona na transfer attacks (Lee 2023 GAN → CLIP); adaptive CLIP-targeted attacker może osiągnąć wyższy evasion rate — kompensowane przez M2c PGD verifier
  • KB coverage: długi ogon marek (niszowe fintechy nieobecne w bazie 150 marek)
  • Certified robustness: Randomized Smoothing kosztowny dla realtime deployment (opcjonalne rozszerzenie)
  • Dataset: Ji & Kim 2025 bez brand-level labels → ręczna klasyfikacja (EXP-6) potrzebna; benign sample uzupełniony zewnętrznie

7.2 Practical considerations

  • Deployment: browser extension (< 500ms) vs server-side proxy
  • Knowledge distillation: ViT → mniejszy model dla edge deployment
  • GDPR: screenshoty stron phishingowych — kwestia retencji

7.3 Future work

  • Continual learning: automatyczna aktualizacja KB z nowych phishing feeds
  • Multi-language: arabski, cyrylica (PL banki mniej narażone ale EU kontekst)
  • Graph-based extension: powiązanie z fraud graph detection (#FG- projekt)

8. Conclusion (~0.3 strony)

Podsumowanie contributions C1-C5, kluczowe liczby z eksperymentów (placeholder), wezwanie do akcji: open-source KB + adversarial protocol jako community benchmark.


Status sekcji

SekcjaStatusNastępny krok
1. Introductionszkic (outline)pisać po eksperymentach
2. Related Workliteratura zebranapisać teraz (referencje gotowe)
3. Threat Modelszkic (outline)doprecyzować po implementacji
4. System Design✅ architektura gotowapisać teraz
5. Brand KB⬜ zebrano logo?zebrać logo Tier 1-2
6. EXP-1 LogoSENSE⬜ dataset pobrany?pobrać + uruchomić
6. EXP-2 Brand matchingpo EXP-1
6. EXP-3 Adversarialkluczowy, 4-6 tygodni
6. EXP-4 Timing2-3 tygodnie
6. EXP-5 End-to-endpo EXP-1-4
6. EXP-6 Brand breakdownwymaga label Ji & Kim
6. EXP-7 Latencyna końcu
7. Discussionpo eksperymentach
8. Conclusionna końcu