Prečo je phishing vo web3 iný (a nebezpečnejší)
Vo web3 neoverujete iba heslo. Podpisujete správy a transakcie, ktoré môžu udeliť neodvolateľné práva nad vašimi aktívami (napr. permit, setApprovalForAll, increaseAllowance, delegate). Phisher nepotrebuje poznať vašu seed frázu: často stačí, aby ste raz podpísali zlý objekt. Navyše útok býva multikanálový (DM v Discorde/Telegrame/Twitteri, falošný support, klon webu, škodlivé rozšírenie, kompromitovaný oficiálny účet), a býva načasovaný počas udalostí (airdropy, minty, governance hlasovania).
Mapa hrozieb: čo útočník reálne potrebuje
- Podpis bez výdavkov (EIP-191/EIP-712, SIWE): vyžiadanie si „nevinného“ podpisu, ktorý v spojení s backendom otvorí dvere (session hijack, API prístup, relay).
- Schválenie prevodu (
permit,allowance,setApprovalForAll): trvalé právo míňať vaše tokeny/NFT. - Transakcia s bočným efektom: neintuitívne volania (proxy,
multicall,delegatecall) maskované ako „claim“ alebo „bridge“. - Únos identity: prevzatie komunikačného kanála (kompromitovaný Twitter/Discord bot) a šírenie klamlivých odkazov.
- Malvér/rozšírenie: keylogger, injekcia do web peňaženky, manipulácia UI podpisu.
Podpisy, ktoré sú kritické: čo musíte vedieť aj bez kódu
- EIP-712 (typed data): čitateľný podpis so štruktúrou. Skontrolujte doménu (name, version, chainId, verifyingContract). Nesúlad s navštíveným webom je červená vlajka.
- Permit / Permit2: udelenie allowance bez on-chain tx. Pozrite spender, amount, deadline. Ak nechápete prečo je to potrebné, odmietnite.
- setApprovalForAll (ERC-721/1155): globálny prístup k všetkým NFT v kolekcii. Nikdy nepovoľujte neznámemu kontraktu/marketu.
- SIWE (Sign-In With Ethereum): bezpečné, ak je správne implementované. Skontrolujte origin, statement, nonce, chainId, expiration. Žiadne „prázdne“ statementy.
- Multicall: viac volaní v jednom podpise. Peňaženka má ukázať každý krok. Ak vidíte iba „Contract Interaction“, je to rizikové.
Klamlivé stránky: ako vyzerajú a prečo fungujú
- Doménové triky: vizuálne podobné názvy (l1nks, 0 vs o, .cm/.co/.ai namiesto .com), subdoménové pasce (
app.project.com.attacker.xyz). - SEO/Ads hijack: platené reklamné odkazy nad organickým výsledkom, mirror blogy s falošným „Oficiálny link“.
- „Mint/Claim“ landingy: odpočet, FOMO, „len dnes“; bez prelinkovania na GitHub/audity; kontrakt bez verifikácie.
- Falošný support: Live chat premostený na Telegram, žiadajú seed alebo „diagnostický podpis“.
Urgentné DM: sociálne inžinierstvo v praxi
- „Critical vulnerability – connect wallet to secure funds“: legitímne projekty nikdy nežiadajú pripojenie peňaženky cez DM.
- „Moderator“ s rovnakým avatarom: skontrolujte user ID, históriu príspevkov, rolu v oficiálnom serveri.
- „Prijali ste allowlist – potvrďte do 10 minút“: klasický FOMO tlak. Overte URL na oficiálnych kanáloch (fixované tweety, web).
UI/UX ochrany, ktoré máte mať zapnuté
- Simulácia transakcií: používajte peňaženky a rozšírenia, ktoré simulujú volania a ukazujú meny/tokeny odchádzajúce z účtu.
- Podpisový náhľad: čitateľné EIP-712, varovania pri
setApprovalForAll/permit. Bez čitateľnosti – nepodpisujte. - Blocklist/Allowlist: automatické blokovanie známych drainerov; allowlist dôveryhodných kontraktov/domén.
- Revoke panel: priamy prístup na odvolanie allowances; pravidelný „úklid“.
Prevencia na úrovni operačnej hygieny
- Oddelenie účtov: mint peňaženka (nízky zostatok, bez cenných NFT), trezor (hardware, offline), výplatná (stables). Neprepájajte ich bezdôvodne.
- Hardware peňaženka: vyžaduje fyzické potvrdenie; čítajte text na displeji, nie iba v prehliadači.
- Sandbox pre minty: samostatný profil prehliadača, žiadne ďalšie rozšírenia, čistá cache.
- Rozšírenia: minimalizujte počet, pravidelne auditujte, inštalujte len z overených zdrojov.
- DNS/HTTPS: ručne zapisujte URL alebo používajte záložky; vždy kontrolujte certifikát/doménu.
Incident response: čo robiť, keď ste niečo podpísali
- Odpojte sa: okamžite zatvorte stránku/rozšírenie, prepnete sieť v peňaženke (zruší pending).
- Revoke: cez dôveryhodný nástroj odvolajte allowances (
ERC-20,ERC-721,ERC-1155), najmäspenderz posledných interakcií. - Presuňte aktíva: zo „znečistenej“ adresy na bezpečnú (hardware) – pozor na reentrancy/poison tokeny, posúďte riziko.
- Rotujte kľúče: ak máte smart účet s session keys alebo guardians, zmeňte konfiguráciu; pri EOAs zvážte migráciu.
- Oznámte: projektu/komunite (aby zablokovali linky), burze (ak je šanca na zmrazenie), sledovacím službám.
- Forenzika: uložte tx hash, doménu, obsah podpisu (ak ho máte), screenshoty; pomôžu pri varovaní ostatných.
Konkrétne červené vlajky pri podpise
- Podpis spomína neznámy kontrakt v poli verifyingContract alebo iný chainId než máte v peňaženke.
- Žiada sa neobmedzený allowance (MaxUint256) pre token, s ktorým by stránka nemala pracovať.
- Podpis neobsahuje nonce/deadline (večné práva), alebo má nezmyselnú expiráciu ďaleko v budúcnosti.
- Peňaženka ukazuje iba „Contract Interaction“ bez detailov napriek tomu, že by mala zobraziť rozpis EIP-712.
Phishingové DM: vzorové texty a správne reakcie
- „Hi Admin from <Project>, detected unusual activity. Verify here: <link> within 5 min.“ – Ignorujte, nahláste. Overujte iba na oficiálnom webe z vlastnej záložky.
- „You won allowlist! Connect wallet to confirm.“ – Overte v oficiálnom kanáli (fixnutý príspevok). Nikdy neklikajte na link z DM.
- „We’re from support, send seed phrase / private key to recover.“ – Nikdy. Legitímny support nežiada seed ani súkromný kľúč.
Špecifiká DeFi a NFT útokov
- DeFi: podvrhnuté „claim rewards“, ktoré obsahujú
approvena drainer; falošné „bridge“ dApps somulticall. - NFT: klony marketplace, ktoré vyžadujú
setApprovalForAll; airdropy „poison NFT“ s URL v metadátach.
Governance a tímové procesy proti phishingu
- Komunikačná politika: projekt nikdy neposiela linky cez DM; všetky oficiálne odkazy sú v one-pageri a fixnuté.
- Change management: pred spustením mintu/claimu 24–48h vopred publikujte kontrakt adresu, chain, audit odkazy.
- Role a práva: použite multisig na dôležité zmeny; oddelené účty pre social media s 2FA/hardware kľúčmi.
- Incident drill: pripravené šablóny oznámení, kontakty na indexerov, poskytovateľov RPC, monitoring (alerty na nové schválenia).
Checklist pred kliknutím na „Sign“
- URL/doména sedí s oficiálnym zdrojom? Nie je to subdoména cudzej domény?
- Je podpis zrozumiteľný (EIP-712 čitateľný), a chápem prečo ho dávam?
- Je spender/verifyingContract známy a auditovaný? Viem obmedziť amount a deadline?
- Simulácia transakcie dáva očakávaný výsledok (žiadne odlivy tokenov, žiadne skryté volania)?
- Mám aktívny revoke nástroj a nízky zostatok v tejto peňaženke?
Dobrý návyk: pravidelné odvolávanie oprávnení (revoke)
Raz za týždeň/po väčších eventoch skontrolujte a odvolajte nepotrebné allowances/approvals. Sledujte najmä univerzálne schválenia (setApprovalForAll) a neobmedzené allowance voči kontraktom, ktoré už nepoužívate.
Vzdelávanie tímu a komunity: čo komunikovať
- „Nikdy DM s linkom od nás.“ – opakujte to pri každom veľkom ozname.
- „Žiadny support nežiada seed, private key, remote desktop.“
- „Pravidelne publikujeme zoznam oficiálnych odkazov a známych phishing domén.“
- „Zverejníme adresy kontraktov pred spustením; čokoľvek iné je falošné.“
Zhrnutie pre rozhodovateľov
Phishing vo web3 sa opiera o podpisy a schválenia, nie iba o heslá. Ochrana nie je jednorazová – je to kombinácia technických opatrení (simulácia, čitateľné EIP-712, revoke, oddelené peňaženky), procesov (komunikačná politika, incident drill, audit rozšírení) a vzdelávania (anti-DM, overovanie odkazov, červené vlajky). Bez ohľadu na to, aký je lákavý airdrop či „urgentná ponuka“, platí: ak si nie ste istí, nepodpisujte.