Proč je phishing ve web3 odlišný (a nebezpečnější)
Ve web3 neověřujete pouze heslo. Podepisujete zprávy a transakce, které mohou udělit neodvolatelná práva nad vašimi aktivy (např. permit, setApprovalForAll, increaseAllowance, delegate). Phisher nepotřebuje znát vaši seed frázi: často stačí, abyste jednou podepsali škodlivý objekt. Navíc útok bývá multikanálový (DM na Discordu/Telegramu/Twitteru, falešný support, klon webu, škodlivé rozšíření, kompromitovaný oficiální účet), a bývá načasován během událostí (airdropy, minty, governance hlasování).
Mapa hrozeb: co útočník skutečně potřebuje
- Podpis bez výdajů (EIP-191/EIP-712, SIWE): získání „nevinného“ podpisu, který v kombinaci s backendem otevře dveře (session hijack, API přístup, relay).
- Schválení převodu (
permit,allowance,setApprovalForAll): trvalé právo utrácet vaše tokeny/NFT. - Transakce s vedlejším efektem: neintuitivní volání (proxy,
multicall,delegatecall) maskované jako „claim“ nebo „bridge“. - Únos identity: převzetí komunikačního kanálu (kompromitovaný Twitter/Discord bot) a šíření zavádějících odkazů.
- Malware/rozšíření: keylogger, injekce do webové peněženky, manipulace UI podpisu.
Kritické podpisy: co musíte vědět i bez znalosti kódu
- EIP-712 (typed data): čitelný podpis se strukturou. Zkontrolujte doménu (name, version, chainId, verifyingContract). Nesoulad s navštívenou webovou stránkou je červená vlajka.
- Permit / Permit2: udělení allowance bez on-chain transakce. Zkontrolujte spender, amount, deadline. Pokud nechápete, proč je to potřeba, odmítněte.
- setApprovalForAll (ERC-721/1155): globální přístup ke všem NFT v kolekci. Nikdy nepovolujte neznámému kontraktu/marketu.
- SIWE (Sign-In With Ethereum): bezpečné, pokud je správně implementováno. Zkontrolujte origin, statement, nonce, chainId, expiration. Žádné „prázdné“ statementy.
- Multicall: více volání v jednom podpisu. Peněženka by měla zobrazit každý krok. Pokud vidíte pouze „Contract Interaction“, je to rizikové.
Zavádějící stránky: jak vypadají a proč fungují
- Doménové triky: vizuálně podobné názvy (l1nks, 0 vs o, .cm/.co/.ai místo .com), subdoménové pasti (
app.project.com.attacker.xyz). - SEO/Ads hijack: placené reklamní odkazy nad organickým výsledkem, mirror blogy s falešným „Oficiálním linkem“.
- „Mint/Claim“ landingy: odpočty, FOMO, „jen dnes“; bez odkazů na GitHub/audity; kontrakt bez verifikace.
- Falešný support: live chat přesměrovaný na Telegram, žádá seed nebo „diagnostický podpis“.
Urgentní DM: sociální inženýrství v praxi
- „Critical vulnerability – connect wallet to secure funds“: legitimní projekty nikdy nevyžadují připojení peněženky přes DM.
- „Moderátor“ se stejným avatarem: zkontrolujte user ID, historii příspěvků, roli v oficiálním serveru.
- „Přijali jste allowlist – potvrďte do 10 minut“: klasický FOMO tlak. Ověřte URL na oficiálních kanálech (připnuté tweety, web).
UI/UX ochrany, které byste měli mít zapnuté
- Simulace transakcí: používejte peněženky a rozšíření, která simulují volání a zobrazují množství měn/tokenů odcházejících z účtu.
- Náhled podpisu: čitelné EIP-712, varování při
setApprovalForAll/permit. Bez čitelnosti – nepodepisujte. - Blocklist/Allowlist: automatické blokování známých drainerů; allowlist důvěryhodných kontraktů/domén.
- Revoke panel: přímý přístup k odvolání allowances; pravidelný „úklid“.
Prevence na úrovni operační hygieny
- Oddělení účtů: mint peněženka (nízký zůstatek, bez cenných NFT), trezor (hardware, offline), výplatní (stables). Nepřipojujte je bezdůvodně.
- Hardware peněženka: vyžaduje fyzické potvrzení; čtěte text na displeji, nikoliv pouze v prohlížeči.
- Sandbox pro minty: samostatný profil prohlížeče, žádná další rozšíření, čistá cache.
- Rozšíření: minimalizujte počet, pravidelně provádějte audity, instalujte pouze z ověřených zdrojů.
- DNS/HTTPS: URL zapisujte ručně nebo používejte záložky; vždy kontrolujte certifikát/doménu.
Incident response: co dělat, když jste něco podepsali
- Odpojte se: okamžitě zavřete stránku/rozšíření, přepněte síť v peněžence (zruší pending transakce).
- Revoke: pomocí důvěryhodného nástroje odvolejte allowances (
ERC-20,ERC-721,ERC-1155), zejménaspenderz posledních interakcí. - Přesuňte aktiva: z „znečištěné“ adresy na bezpečnou (hardware) – pozor na reentrancy/poison tokeny, posuďte riziko.
- Rotujte klíče: pokud máte smart účet s session keys nebo guardians, změňte konfiguraci; u EOAs zvažte migraci.
- Oznámení: projektu/komunitě (pro zablokování odkazů), burze (pokud je možnost zmrazení), sledovacím službám.
- Forenzika: uložte tx hash, doménu, obsah podpisu (pokud jej máte), screenshoty; pomohou při varování ostatních.
Konkrétní červené vlajky při podpisu
- Podpis obsahuje neznámý kontrakt v poli verifyingContract nebo jiný chainId než máte v peněžence.
- Žádá se neomezený allowance (MaxUint256) pro token, se kterým by stránka neměla pracovat.
- Podpis neobsahuje nonce/deadline (věčná práva), nebo má nesmyslnou expiráci daleko v budoucnu.
- Peněženka zobrazuje pouze „Contract Interaction“ bez detailů, přestože by měla ukázat rozpis EIP-712.
Phishingové DM: vzorové texty a správné reakce
- „Hi Admin from <Project>, detected unusual activity. Verify here: <link> within 5 min.“ – ignorujte, nahlaste. Ověřujte pouze na oficiálním webu z vlastní záložky.
- „You won allowlist! Connect wallet to confirm.“ – ověřte ve oficiálním kanálu (připnutý příspěvek). Nikdy neklikejte na odkazy z DM.
- „We’re from support, send seed phrase / private key to recover.“ – nikdy. Legitimní support nežádá seed ani soukromý klíč.
Specifika DeFi a NFT útoků
- DeFi: podvržené „claim rewards“, které obsahují
approvepro drainer; falešné „bridge“ dApps smulticall. - NFT: klony marketplace požadující
setApprovalForAll; airdropy „poison NFT“ s URL v metadatech.
Governance a týmové procesy proti phishingu
- Komunikační politika: projekt nikdy neposílá odkazy přes DM; všechny oficiální odkazy jsou v one-pageru a připnuté.
- Change management: před spuštěním mintu/claimu 24–48 hodin dopředu publikujte adresu kontraktu, chain, odkazy na audit.
- Role a práva: používejte multisig na důležité změny; oddělené účty pro sociální média s 2FA/hardware klíči.
- Incident drill: připravené šablony oznámení, kontakty na indexery, poskytovatele RPC, monitoring (alerty na nová schválení).
Checklist před kliknutím na „Sign“
- URL/doména odpovídá oficiálnímu zdroji? Není to subdoména cizí domény?
- Je podpis srozumitelný (EIP-712 čitelný) a rozumím proč ho dávám?
- Je spender/verifyingContract známý a auditovaný? Mohu omezit amount a deadline?
- Simulace transakce vrací očekávaný výsledek (žádné úniky tokenů, žádná skrytá volání)?
- Mám aktivní revoke nástroj a nízký zůstatek v této peněžence?
Dobrý zvyk: pravidelné odvolávání oprávnění (revoke)
Jednou týdně/po větších eventech zkontrolujte a odvolejte nepotřebné allowances/approvals. Sledujte především univerzální schválení (setApprovalForAll) a neomezené allowance vůči kontraktům, které již nepoužíváte.
Vzdělávání týmu a komunity: co komunikovat
- „Nikdy žádné DM s odkazem od nás.“ – opakujte při každém velkém oznámení.
- „Žádný support nikdy nežádá seed, private key, remote desktop.“
- „Pravidelně zveřejňujeme seznam oficiálních odkazů a známých phishingových domén.“
- „Zveřejníme adresy kontraktů před spuštěním; cokoli jiného je falešné.“
Shrnutí pro rozhodovatele
Phishing ve web3 stojí na podpisech a schváleních, nejen na heslech. Ochrana není jednorázová – je to kombinace technických opatření (simulace, čitelné EIP-712, revoke, oddělené peněženky), procesů (komunikační politika, incident drill, audit rozšíření) a vzdělávání (anti-DM, ověřování odkazů, červené vlajky). Bez ohledu na to, jak lákavý je airdrop či „urgentní nabídka“, platí: pokud si nejste jistí, nepodepisujte.



























