Hipotezy badawcze — FinPhishGuard
Ostatnia aktualizacja: 2026-05-12
Każda hipoteza jest falsyfikowalna, powiązana z konkretnym eksperymentem z outline.md i zakorzeniona w liczbach z opublikowanych prac.
Punkt odniesienia: stan wiedzy (published baselines)
Wyniki clean (bez adversarial)
| System | Dataset | Recall | F1 | Precision | Źródło |
|---|---|---|---|---|---|
| EMD | 451k real-world (Ji 2024) | 30.62% | — | — | Ji et al. 2024, Table 2 |
| VisualPhishNet | 451k real-world (Ji 2024) | 39.09% | — | — | Ji et al. 2024, Table 2 |
| DynaPhish | 4,190 sampled (Ji 2024) | 22.03% | — | — | Ji et al. 2024, Table 3 |
| PhishIntention | 4,190 sampled (Ji 2024) | 49.07% | — | — | Ji et al. 2024, Table 3 |
| Phishpedia | 4,190 sampled (Ji 2024) | 57.16% | — | — | Ji et al. 2024, Table 3 |
| PhishIntention | 451k learned brands (Ji 2024) | 65.59% | — | — | Ji et al. 2024, Table 2 |
| Phishpedia | TR-OP (Li 2024) | 40.16% | 57.17% | 99.16% | Li et al. 2024 KnowPhish, Table 2 |
| PhishIntention | TR-OP (Li 2024) | 33.32% | 49.96% | 99.76% | Li et al. 2024 KnowPhish, Table 2 |
| PhishIntention | własny 50K (Liu 2022) | 90%* | — | — | Liu et al. 2022, Figure 11 ROC (*@ FPR=10⁻³) |
| KPD+KnowPhish | TR-OP (Li 2024) | 86.90% | 92.05% | 97.84% | Li et al. 2024, Table 2 — aktualny SOTA |
| Lee et al. MLLM | własny (Lee 2024) | ~92% | ~92% | — | Lee et al. 2024 — bez adversarial |
Wyniki pod atakami adversarial
| System | Atak | Recall przed | Recall po | Δ | Źródło |
|---|---|---|---|---|---|
| VisualPhishNet | PhishOracle logo transf. | 88.35% | 72.89% | −16pp | Kulkarni 2024, Table 3 |
| Phishpedia | PhishOracle logo transf. | 81.63% | ~40% | −42pp! | Kulkarni 2024, Table 3 |
| Stack (ensemble) | PhishOracle full | 98.32% | 70.86% | −28pp | Kulkarni 2024 |
| MLLM Gemini | PhishOracle full | 97.25% | 79.51% | −18pp | Kulkarni 2024 |
| KnowPhish TBE | Text-to-image HTML | 81% brand acc | 5% | −76pp! | Li 2024, Table 4 |
| Lee 2023 (GAN) → Siamese black-box | GViT generator | ~58% recall | ~42% fooling | min 42% evasion | Lee 2023, Fig. 6d |
| Lee 2023 (GAN) → any model white-box | matching generator | >99% recall | <5% recall | >95% evasion | Lee 2023 |
| LogoMorph (Hao 2024) → PhishIntention | text logo font change | 100% detect. | 0-3% detect. | 97-100% bypass | Hao 2024, Table 3 |
| LogoMorph (Hao 2024) → Phishpedia transfer | black-box | 100% detect. | 0-20% detect. | 80-100% bypass | Hao 2024, Table 7 |
| Yuan 2026 Curtain Effect → PhishIntention | CSS clip-path delay | 100% detect. | 0% detect. | ASR=100% | Yuan 2026, §5.2.1 |
| Yuan 2026 Pixelation → PhishIntention | pixel blur 5×5 | 100% detect. | 38% detect. | ASR=62% | Yuan 2026, §5.2.2 |
| Yuan 2026 Combination → PhishIntention | curtain+pixelation | 100% detect. | 0% detect. | ASR=100% | Yuan 2026, §5.2.3 |
Kluczowa luka:
- Najlepszy system clean (KPD+KnowPhish): 86.90% recall, 2.02s/sample
- Każdy system spada dramatycznie pod adversarial — nawet o 42-76pp
- Żaden system nie był testowany na kombinacji ataków A1-A5
- CLIP zero-shot nie był ewaluowany pod żadnym atakiem wizualnym
Hipoteza główna (H0)
FinPhishGuard (URL + CLIP visual + NER content + DOM timing z adversarial hardeningiem) osiąga ≥ 90% recall pod atakami klas A1–A3 na zbiorze Ji & Kim 2025 (19,131 stron + ≥5,000 benign), podczas gdy najlepszy istniejący system (KPD+KnowPhish, clean recall=86.90%) traci ≥ 25pp recall pod tymi samymi atakami (analogia: Phishpedia −42pp pod PhishOracle).
- Uzasadnienie liczbowe:
- Ji et al. 2024 (451k real-world): PhishIntention 49-66% recall, Phishpedia 57-88%, DynaPhish 22% — już bez ataków te systemy mają słabą skuteczność
- KPD+KnowPhish (Li 2024): clean recall=86.90% — aktualny SOTA; nie testowany pod visual adversarial attacks (GAN logos, diffusion) — jedynie pod text-to-image (Li 2024 Table 4: brand acc. 5%→60% z obroną)
- PhishOracle (Kulkarni 2024): Phishpedia 82%→40% (−42pp!), MLLM 97%→80% (−18pp) — analogia, nie bezpośredni wynik KnowPhish
- Ostrożna projekcja: pod atakami GAN logos / delayed rendering KnowPhish prawdopodobnie spada istotnie — do weryfikacji empirycznej w EXP-3
- Nasz cel: ≥90% poprzez CLIP + PGD hardening + DOM timing defense
- Uwaga metodologiczna: 243 benign stron w Ji & Kim 2025 jest niewystarczające do rzetelnej estymacji FPR. Ewaluacja wymaga uzupełnienia o ≥5,000 benign (Alexa top-10k lub CommonCrawl sample) — patrz EXP-5.
- Eksperyment: EXP-5 (end-to-end) + EXP-3 (adversarial subset)
- Hipoteza zerowa H0₀: Różnica F1 między FinPhishGuard a najlepszym baseline’em nie jest statystycznie istotna pod atakami (α = 0.05, test McNemar lub bootstrap CI)
Hipotezy szczegółowe
H1 — Naturalna odporność CLIP na adversarial logos
CLIP ViT-B/32 (zero-shot) osiąga evasion rate < 40% dla GAN logos (Lee 2023) i diffusion logos (Hao 2024) przetransferowanych z ResNet-Siamese, podczas gdy ResNet-50 triplet ma evasion rate > 60% dla tych samych ataków.
- Uzasadnienie liczbowe:
- Phishpedia (Lin 2021) Table 7: Step-ReLU gradient masking (17 layers) redukuje BPDA drop do 93.5%→92.6% (0.9pp), ALE chroni tylko przed gradient-based attacks, NIE przed GAN logos
- PhishOracle (Kulkarni 2024): Phishpedia ResNet-50 Siamese recall 81.63%→~40% (−42pp!); VisualPhishNet ResNet 88.35%→72.89% (−16pp) — żadna obrona nie chroni przed PhishOracle logo transformations
- Lee 2023: GAN logos → ~95% evasion na ResNet-based logo detectors
- CLIP nie był testowany pod żadnym z tych ataków — to jest właśnie luka literaturowa którą adresujemy
- Mechanizm: GAN Lee 2023 optymalizowany przeciwko ResNet-Siamese → transfer attack na CLIP jest słabszy (różne feature spaces). CLIP operuje w joint image-text space; GAN atakuje lokalne pixelowe tekstury specyficzne dla ResNet
- Kluczowe zastrzeżenie metodologiczne: Wynik H1 mierzy odporność na transfer attack (Lee 2023 GAN → CLIP), nie na adaptive attack (GAN optymalizowany bezpośrednio pod CLIP). To rozróżnienie musi być jasno opisane w papierze. Adaptive attack na CLIP może dać wyższy evasion — co kompensuje H2 (PGD verifier).
- Kontr-argument: Jeśli adaptive CLIP-targeted GAN daje evasion > 60%, H1 spada — hipoteza dotyczy wyłącznie transfer scenario (black-box attacker z modelem Lee 2023)
- Luka: Lee 2023 testuje wyłącznie ResNet-based detektory; żadna publikacja nie testowała CLIP nawet w transfer scenario
- Eksperyment: EXP-3 — CLIP vs ResNet na LogoSENSE + GAN/diffusion samples (transfer) + opcjonalnie: CLIP-targeted PGD jako adaptive baseline
- Metryki: evasion rate (%) przy ataku; top-1 recall logo matching
- Próg sukcesu: CLIP evasion < 40% (transfer), ResNet evasion > 60%
- Ryzyko: średnie — jeśli transfer attacks silnie generalizują, PGD verifier (H2) kompensuje
H2 — PGD adversarial training redukuje evasion rate
Fine-tuned ViT z PGD adversarial training (ε=8/255, k=40) + augmentacją GAN/diffusion logos osiąga evasion rate < 25% dla ataków A1-bb (GAN) i A2 (diffusion), redukując evasion z > 60% (baseline ViT bez hardeningu) do < 25%.
- Uzasadnienie liczbowe:
- PhishIntention (Liu 2022) Table 7: gradient masking redukuje I-FGSM accuracy drop 0.95→0 (brak redukcji dla I-FGSM bez defense), ale BPDA bypass: CRP clasifier drop ↓0.95→↓0.07 z obroną
- Madry 2018: PGD training standardowy — na ImageNet/CIFAR czyści ~3-5pp clean accuracy przy znaczącej redukcji evasion
- Różnica: PhishIntention używa gradient masking (słaba, łatwa do bypass przez BPDA); my używamy PGD training (certifiably stronger)
- PhishOracle pokazuje że gradient masking (PhishIntention) nie wystarczy — evasion rate pozostaje wysoki
- Kontr-argument: Catastrophic forgetting — hardening może zaszkodzić clean accuracy
- Eksperyment: EXP-3 — ViT PGD-hardened vs ViT bez hardeningu vs ResNet-50 bez hardeningu
- Metryki: evasion rate per attack class; clean top-1 accuracy
- Próg sukcesu: evasion < 25%; clean accuracy degradacja < 5pp
- Ryzyko: niskie dla PGD (dobrze udokumentowane). Średnie dla augmentacji.
H3 — DOM/CSS/JS analysis wykrywa delayed rendering bez screenshotów
Statyczna analiza DOM/CSS/JS (M4) wykrywa delayed rendering attacks (Yuan 2026) z ≥ 80% recall i ≤ 15% FPR na syntetycznym zbiorze testowym, podczas gdy single-screenshot defense (Yuan 2026 PoC) ma 0% recall dla ataków z delay > 2000ms.
- Uzasadnienie liczbowe:
- Yuan 2026 §5.2.1: Curtain Effect → ASR=100% dla PhishIntention i PhishPedia (logo niewidoczne przy capture)
- Yuan 2026 §5.2.3: Kombinacja curtain+pixelation → ASR=100% dla PhishIntention, PhishPedia, PhishLLM; ~50% dla VisualPhishNet
- Yuan 2026 implementacja: atak używa CSS
clip-path: inset()i JSPhishMemodule — sygnały ataku są widoczne statycznie w HTML/CSS/JS PRZED renderowaniem - Yuan 2026 Literature: 20/24 prac nie mierzy czasu capture; tylko 3 podają ~2s (za krótko vs avg 7.2s ładowania)
- Kluczowy insight:
clip-path: inset(0, 0, 100%)+ timer = logo niewidoczne przez N sekund → detekcja statyczna możliwa!
- Luka: nikt nie analizuje HTML/CSS/JS statycznie pod kątem timing attacks — jedyna obrona to 1 dodatkowy screenshot (Yuan PoC)
- Uwaga na adaptive attacker: atakujący który wie o M4 może obejść regexowe sygnatury przez minifikację JS (webpack), base64-encoded strings lub CSS-in-JS. Zakres obrony: nieopakowane ataki klasy Yuan 2026 (bez obfuskacji). Sekcja Limitations w papierze musi to opisywać explicite.
- Eksperyment: EXP-4 — ≥ 1,000 stron (200+ per delay class): delay 0ms, 500ms, 1s, 2s, 5s, 10s + JS worker + obfuskowana wersja jako upper-bound test
- Metryki: recall per delay class; FPR na legalnych stronach z legalnymi delays
- Próg sukcesu: recall ≥ 80% dla delay ≤ 5s (nieopakowane); FPR ≤ 15%
- Uwaga FPR: FPR ≤ 15% dla M4 w izolacji jest niespójne z celem H0 FPR ≤ 5% dla systemu. M4 jest komponentem — jego wysoki FPR musi być kompensowany przez fuzję z M1/M2/M3.
- Ryzyko: wysokie dla JS worker/ServiceWorker evasion i obfuskacji; claim zawężony do nieopakowanych ataków
H4 — Luki pokrycia marek: fintech i payment gateways
Istniejące systemy (PhishIntention, KnowPhish) mają ≥ 20 punktów procentowych niższy recall dla phishing stron impersonujących Tier 2 (payment gateways: PayPal, Stripe, Revolut, BLIK) i Tier 3 (fintech: Klarna, N26, Monzo) w porównaniu do Tier 1 (banki tradycyjne), na zbiorze Ji & Kim 2025.
- Uzasadnienie liczbowe:
- KnowPhish (Li 2024): recall=86.90% ogółem; ale error analysis (Section 8.1) wskazuje “Bank Promerica, Minnesota Unemployment Insurance… not even included in Wikidata”
- KnowPhish BKB z Wikidata + Whois: neobanki (N26 founded 2013, Klarna 2005) mogą być słabiej reprezentowane niż tradycyjne banki
- KnowPhish Field Study (Singapore): DBS Bank (Tier 1 bank) wykryty poprawnie; brak danych o PayPal/Stripe precision
- PhishIntention: 277 brands w reference list — lista z 2021, fintech underrepresented
- Luka: nikt nie mierzył brand-level recall breakdown dla financial services tiers
- Eksperyment: EXP-6 — manualna klasyfikacja 500-1000 stron Ji & Kim 2025 per brand tier
- Metryki: recall per brand tier (Tier 1/2/3/4) per system
- Próg sukcesu: gap ≥ 20pp między Tier 1 a Tier 2/3 dla PhishIntention/KnowPhish
- Ryzyko: niskie konceptualnie; Ji & Kim 2025 może mieć mało fintech examples
H5 — CLIP osiąga porównywalną jakość do MLLM przy 10× niższej latencji
CLIP ViT-B/32 (zero-shot brand matching) osiąga top-1 brand accuracy w ciągu 5 punktów procentowych od Lee et al. 2024 MLLM (cloud API), przy latencji 80–150ms vs 800ms–3s dla cloud MLLM i 200–500ms dla lokalnego MLLM (Qwen3-27B), czyniąc CLIP jedynym podejściem praktycznym dla browser extension deployment (budżet < 500ms).
- Uzasadnienie liczbowe:
- KPD+KnowPhish: 2.02s/sample (Li 2024, Table 2) — LLM query overhead; za wolno dla realtime extension
- PhishIntention (clean visual): 0.28s/sample — szybki, ale tylko 33% recall
- Lee et al. MLLM (2024): cloud API (Claude/GPT-4V) round-trip: szacowany 800ms–3s
- CLIP ViT-B/32: benchmark 40ms na CPU, ~10ms na GPU → realistyczne 80–150ms z I/O
- Lokalny MLLM (Qwen3-6-27B dostępny): inference na GPU ~200–500ms — pomiędzy CLIP a cloud API; do zmierzenia w EXP-7
- Kluczowe doprecyzowanie: H5 porównuje trzy punkty, nie dwa:
- CLIP (lokalny, ~80–150ms)
- Lokalny MLLM — Qwen3-6-27B (lokalny, ~200–500ms) — nowe, użyj dostępnych modeli
- Cloud MLLM — Lee 2024 API (cloud, 800ms–3s)
- Claim: CLIP jest najszybszy przy akceptowalnej accuracy; lokalny MLLM to middle ground; cloud MLLM nierealistyczny dla extension
- Luka: Lee 2024 nie mierzyli latencji; żadna praca nie porównuje CLIP vs lokalny MLLM dla brand matching w phishingu — to unikalny wynik
- Eksperyment: EXP-2 (brand matching accuracy) + EXP-7 (latency benchmark wszystkich trzech)
- Metryki: top-1 accuracy; p50/p95 latency per approach; (opcjonalnie) cost per 1000 queries
- Próg sukcesu: accuracy gap CLIP vs MLLM ≤ 5pp; CLIP latency < 200ms; lokalny MLLM < 500ms; cloud MLLM > 500ms
- Ryzyko: średnie — lokalny MLLM może być lepszy dla long-tail brands; to zmienia claim (CLIP jako fast-path, MLLM jako slow-path resolver)
H6 — Fuzja wielomodalna poprawia F1 względem najlepszego modułu solo
End-to-end system (M1+M2+M3+M4) osiąga ≥ 5 punktów procentowych wyższy F1 niż najlepszy pojedynczy moduł (M2 solo) na Ji & Kim 2025, przy FPR @ 95% TPR ≤ 5%.
- Uzasadnienie liczbowe:
- KnowPhish (Li 2024) potwierdza fuzję: KPD (visual LBE + text TBE) F1=92.05% vs Phishpedia+KnowPhish F1=83.67% (+8.38pp) — fuzja text+visual wyraźnie pomaga
- PhishIntention (Liu 2022): fuzja CRP detection + brand detection = recall 90% @ FPR=10⁻³ vs Phishpedia 45% @ tej samej FPR
- Każdy moduł ma inne słabe strony: M2 podatny na adversarial logos, M1 podatny na URL obfuscation, M3 podatny na HTML cloaking, M4 unikalne (timing)
- Luka: istniejące prace robią ablation na zbalansowanych zbiorach; brak na realistic imbalanced (79:1)
- Eksperyment: EXP-5 ablation — M1, M1+M2, M1+M2+M3, full system
- Metryki: F1, recall, precision, FPR @ 95% TPR per wariant
- Próg sukcesu: full system F1 ≥ M2-solo F1 + 5pp
- Ryzyko: niskie — fuzja konsekwentnie pomaga w literaturze (+8pp w KnowPhish)
H7 — Adversarial hardening nie degraduje clean accuracy powyżej akceptowalnego progu
FinPhishGuard (z PGD hardeningiem i augmentacją) traci ≤ 5 punktów procentowych clean F1 względem wersji bez hardeningu, co jest akceptowalnym trade-off biorąc pod uwagę ≥ 25-punktowy zysk recall pod atakami.
- Uzasadnienie liczbowe:
- PhishIntention (Liu 2022) Table 7: gradient masking z defense — CRP classifier accuracy: 0.95 oryginał, drop ~0.07 pod BPDA (z obroną) vs drop 0.95 bez obrony (I-FGSM) — masking nie niszczy clean accuracy, ale nie chroni dobrze
- Madry 2018: PGD training koszt ~3-5pp clean accuracy na standardowych CV benchmarkach
- KnowPhish Text-to-Image defense (Li 2024): brand accuracy 5%→60% (obrona tekstowa), bez wpływu na clean: baseline 81% ≈ po obronie dla non-attacked samples
- Cel: PGD hardening z regularyzacją → ≤5pp degradacja clean F1
- Eksperyment: EXP-3 clean accuracy subset porównanie przed/po hardeningu
- Metryki: clean F1, clean top-1 accuracy na Ji & Kim 2025 (bez ataków)
- Próg sukcesu: degradacja ≤ 5pp (akceptowalne); > 10pp = wymaga review
Mapa hipotez → eksperymenty
| Hipoteza | Eksperyment | Dataset | Moduł | Kluczowa liczba z literatury |
|---|---|---|---|---|
| H0 (główna) | EXP-5 + EXP-3 | Ji & Kim 2025 + adversarial | Full system | KPD SOTA=86.90% clean; degradacja pod atakami: TBD empirycznie (analogia: Phishpedia −42pp) |
| H1 (CLIP naturalnie odporny) | EXP-3 | LogoSENSE + GAN/diffusion | M2b CLIP | Phishpedia −42pp pod PhishOracle; CLIP nieewaluowane |
| H2 (PGD hardening) | EXP-3 | LogoSENSE + adversarial | M2c verifier | Gradient masking (Liu 2022) niewystarczające (BPDA bypass) |
| H3 (DOM timing) | EXP-4 | Syntetyczny (Yuan repro) | M4 | Yuan 2026: 100%→0% detection |
| H4 (brand coverage gaps) | EXP-6 | Ji & Kim 2025 subset | Full system | KnowPhish error: neobanki poza Wikidata |
| H5 (CLIP vs MLLM) | EXP-2 + EXP-7 | LogoSENSE | M2b | KPD 2.02s; Lee MLLM ~800ms-3s; CLIP ~80-150ms |
| H6 (fuzja > solo) | EXP-5 ablation | Ji & Kim 2025 | All modules | KnowPhish: text+visual fusion +8pp vs visual-only |
| H7 (clean accuracy trade-off) | EXP-3 clean subset | Ji & Kim 2025 (clean) | M2c | Madry 2018: ~3-5pp trade-off standardowy |
Kolejność weryfikacji (od najłatwiejszej)
Tydzień 1: Sprawdzenie dostępności ataków: Lee 2023 GAN (kontakt z autorami),
LogoMorph kod (GitHub Hao 2024), LogoSENSE download + format weryfikacja
→ BLOKUJE EXP-3; ustalić PRZED implementacją
Tydzień 2-3: H1 — CLIP zero-shot na LogoSENSE (implementacja prosta)
H5 — CLIP vs lokalny Qwen latency (zero implementacji — masz dostęp)
Tydzień 3-4: H3 — DOM timing M4a static (implementacja bez ML, ~2 tygodnie)
H4 — Brand breakdown (manualne labeling ~500 stron Ji & Kim 2025)
⚠️ EXP-6 wymaga 2-3 tygodnie + druga osoba do interrater reliability
Tydzień 4-7: H2 — PGD hardening (najdłuższy trening; zależy od dostępności GAN ataków)
Tydzień 7-8: H6 — Ablation (po zbudowaniu M1+M2+M3+M4)
H7 — Clean accuracy check (subset EXP-3)
Tydzień 8-9: H0 — Główna hipoteza (wszystkie moduły gotowe)
⚠️ Deduplication Phishpedia train ↔ Ji & Kim 2025 test (URL-level check)
⚠️ Uzupełnić benign dataset (≥5,000 z Alexa top-10k)
Łączny realistyczny czas: 10-12 tygodni (nie 8 jak wcześniej), zakładając równoległą pracę.
Scenariusze falsyfikacji i plan B
| Hipoteza | Jeśli obalona | Plan B |
|---|---|---|
| H1 | CLIP podatny na GAN logos | Główna teza to H2 (PGD hardening) — CLIP jako szybki pre-filter |
| H2 | Hardening niszczy clean accuracy | Zmniejsz ε (4/255), mniej kroków (k=10) |
| H3 | DOM static za słaby (JS workers) | Rozszerz o resource timing API (M4b); lub węższy claim |
| H4 | Ji & Kim 2025 bez fintech brands | Rozbuduj dataset o PhishTank filtered na fintech keywords |
| H5 | MLLM znacznie lepszy (gap > 10pp) | Zmień claim: “CLIP jako fast-path, MLLM jako slow-path resolver” |
| H6 | Fuzja nie pomaga | Zbadaj korelacje modułów; wyraportuj dlaczego (też jest wynikiem) |
| H0 | System nie bije wszystkich baseline’ów | Zawęź claim do konkretnych klas ataków (H1+H2 wystarczą na paper) |