Jak rozpoznać phishing AI-generated w 2026
Pięć sygnałów, które wciąż działają mimo idealnej polszczyzny LLM-ów.
autor: Admin

Wstęp
W ostatnich miesiącach obserwujemy gwałtowny wzrost kampanii phishingowych generowanych z udziałem dużych modeli językowych. Jeszcze dwa lata temu typowy mail udający bank można było rozpoznać po kalkach językowych i błędach gramatycznych - dzisiaj atakujący korzystają z Claude'a, GPT-5 oraz lokalnych modeli rzędu Llama 3 70B, więc tekst jest nienaganny stylistycznie i gramatycznie.
W tym artykule pokażę pięć sygnałów, które wciąż pozwalają wyłapać nawet starannie spreparowane wiadomości - bez polegania na filtrach antyspamowych i bez instalowania kolejnego "AI guard".
1. Brak ciągłości kontekstu
LLM nie zna historii waszej korespondencji z konkretnym bankiem, kurierem, czy klientem. Dlatego mail "wracając do naszej rozmowy z piątku" trafia do osoby, która w piątek z nikim nie rozmawiała. Pierwsza linia obrony to po prostu pytanie:
Czy ja w ogóle prowadziłem tę rozmowę?
Brzmi banalnie, ale właśnie to pytanie ratuje większość użytkowników. Wyrobienie nawyku jest ważniejsze niż jakikolwiek filtr.
2. Niespójność technicznych metadanych
Zawartość mailu może być idealna, ale nagłówki SMTP rzadko są generowane przez LLM - atakujący kleją je ze starszych, automatycznych skryptów. Sprawdzajcie:
- pole
Return-PathvsFrom - nagłówki
Authentication-Results(SPF, DKIM, DMARC) - domeny w
Received:(czy widać hop przez chmurę typumailgun,sendgrid)
W praktyce w Outlooku/Gmailu wystarczy "Pokaż oryginał".
3. Linki ze świeżymi domenami
Domena zarejestrowana 4 dni temu, na której hostowane jest "logowanie do banku", to klasyk. Szybkie sprawdzenie:
whois example-bank-login.com | grep -i "creation\|created"
Jeśli widzisz datę z tego tygodnia, traktuj URL jak radioaktywny.
4. Subtelne, ale nietypowe wezwania do działania
LLM lubi wyrażenia w stylu "w celu uniknięcia nieprzyjemnych konsekwencji prosimy o pilną weryfikację". Polski bank tak nie pisze. Każdy bank ma swoje sztywne wzorce komunikacji - jeśli czytasz mail i czujesz, że ton jest "trochę inny niż zwykle", to jest sygnał.
5. CVE-2025-31161 i kradzież sesji bez phishingu
Warto pamiętać, że phishing to tylko jeden z wektorów. W 2025 wypłynęło CVE dotyczące CrushFTP (CVE-2025-31161), które pozwalało przejąć sesję bez wpisywania hasła. Nawet idealny użytkownik nie obroni się przed dziurą w infrastrukturze - dlatego MFA i passkeys to dziś minimum, nie luksus.
Krótki helper do szybkiej analizy
Mały skrypt, który wrzucam ostatnio na warsztatach:
import email
import re
from email.utils import parseaddr
SUSPECT_TLDS = {".zip", ".mov", ".click", ".top"}
def quick_check(raw_eml: str) -> list[str]:
msg = email.message_from_string(raw_eml)
warnings = []
_, from_addr = parseaddr(msg["From"] or "")
_, return_path = parseaddr(msg["Return-Path"] or "")
if from_addr.split("@")[-1] != return_path.split("@")[-1]:
warnings.append("From != Return-Path domain")
for url in re.findall(r"https?://([^/\s"']+)", raw_eml):
for tld in SUSPECT_TLDS:
if url.endswith(tld):
warnings.append(f"Suspicious TLD: {url}")
return warnings
Nie zastąpi to porządnego SEG-a, ale wystarczy do szybkiego triage'u tego, co trafia na waszą prywatną skrzynkę.
Podsumowanie
LLM-y zmieniły ekonomię phishingu - koszt wyprodukowania wiarygodnego mailu spadł praktycznie do zera. To znaczy, że obrona musi przesunąć się z "rozpoznawania błędów językowych" w stronę weryfikacji kontekstu i metadanych. Dobra wiadomość: te sygnały są zazwyczaj trudniejsze do podrobienia niż sam tekst.