Proč je phishing ve web3 jiný (a nebezpečnější)
Ve web3 neověřujete pouze heslo. Podpisujete 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á podpora, 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 reálně potřebuje
- Podpis bez výdajů (EIP-191/EIP-712, SIWE): vyžádá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í klamavých odkazů.
- Malware/rozšíření: keylogger, injekce do webové peněženky, manipulace UI podpisu.
Podpisy, které jsou kritické: co musíte vědět i bez kódu
- EIP-712 (typed data): čitelný podpis se strukturou. Zkontrolujte doménu (name, version, chainId, verifyingContract). Nesoulad s navštíveným webem je červená vlajka.
- Permit / Permit2: udělení allowance bez on-chain transakce. Podívejte se na 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é.
Klamavé 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 odkazem“.
- „Mint/Claim“ landingy: odpočet, FOMO, „jen dnes“; bez přesměrování na GitHub/audity; kontrakt bez verifikace.
- Falešná podpora: Live chat přesměrovaný na Telegram, žádají seed nebo „diagnostický podpis“.
Urgentní DM: sociální inženýrství v praxi
- „Critical vulnerability – connect wallet to secure funds“: legitimní projekty nikdy nežádají připojení peněženky přes DM.
- „Moderator“ se stejným avatarem: zkontrolujte user ID, historii příspěvků, roli v oficiálním serveru.
- „Byli jste přijati do allowlistu – 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í měny/tokeny odcházející z účtu.
- Náhled podpisu: čitelné EIP-712, varování u
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í (stablecoiny). Nepřipojujte je bezdůvodně.
- Hardware peněženka: vyžaduje fyzické potvrzení; čtěte text na displeji, ne 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ě auditujte, instalujte pouze z ověřených zdrojů.
- DNS/HTTPS: ručně zapisujte URL 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).
- Revoke: přes důvěryhodný nástroj odvolejte allowances (
ERC-20,ERC-721,ERC-1155), zejménaspenderz posledních interakcí. - Přesuňte aktiva: ze „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 se session keys nebo guardians, změňte konfiguraci; u EOAs zvažte migraci.
- Oznamte: projektu/komunitě (pro zablokování odkazů), burze (pokud je šance na zmrazení), sledovacím službám.
- Forenzika: uložte tx hash, doménu, obsah podpisu (pokud máte), screenshoty; pomohou při varování ostatních.
Konkrétní červené vlajky při podpisu
- Podpis zmiňuje 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 expiraci daleko v budoucnosti.
- Peněženka zobrazuje pouze „Contract Interaction“ bez detailů, přestože by měla zobrazit rozepsaný 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 v oficiálním kanálu (připnutý příspěvek). Nikdy neklikejte na odkaz v DM.
- „We’re from support, send seed phrase / private key to recover.“ – Nikdy. Legitimní podpora nežádá seed ani soukromý klíč.
Specifika DeFi a NFT útoků
- DeFi: podvržené „claim rewards“, které obsahují
approvena drainer; falešné „bridge“ dApps semulticall. - NFT: klony marketplace, které vyžadují
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 předem zveřejněte adresu kontraktu, chain, odkazy na audity.
- Role a práva: používejte multisig pro 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ý (čitelné EIP-712) a rozumím, proč ho dávám?
- Je spender/verifyingContract známý a auditovaný? Můžu omezit amount a deadline?
- Simulace transakce vrací očekávaný výsledek (žádné odlivy tokenů, žádná skrytá volání)?
- Mám aktivní revoke nástroj a nízký zůstatek v této peněžence?
Dobrý návyk: pravidelné odvolávání oprávnění (revoke)
Jednou týdně/po větších událostech zkontrolujte a odvolejte nepotřebná allowances/approvals. Sledujte zejména 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 neposílat DM s odkazem od nás.“ – opakujte to při každém důležitém oznámení.
- „Žádná podpora nepožaduje seed, private key nebo vzdálený desktop.“
- „Pravidelně publikujeme seznam oficiálních odkazů a známých phishing domén.“
- „Zveřejňujeme adresy kontraktů před spuštěním; cokoli jiného je falešné.“
Shrnutí pro rozhodovatele
Phishing ve web3 se opírá o podpisy a schválení, nikoliv pouze o hesla. 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 jisti, nepodepisujte.



























