Revoke a bezpečnostní dashboardy: pravidelný audit přístupů a peněženek

Proč provádět pravidelný audit peněženky

Ekosystém kryptoměn je dynamický a oprávnění (approvals) udělená smart kontraktům se v průběhu času hromadí. Mnohá z nich jsou „nekonečná“ (unlimited), navázaná na nepřehledné proxy a zároveň se mění i samotný kód (upgradeable implementace). Pravidelný audit peněženky prostřednictvím bezpečnostních dashboardů a nástrojů typu revoke minimalizuje riziko ztráty prostředků po exploitu dApp, phishingu nebo chybné integraci. Tento článek popisuje, co přesně kontrolovat, jak interpretovat výsledky a jaká rozhodnutí přijímat.

Co jsou to approvals a proč jsou riziková

  • ERC-20 allowance: povolení, aby adresovaný kontrakt (spender) mohl utrácet vaše tokeny. Typicky bývá nastaveno na „max uint“ (nekonečné) pro pohodlí uživatelského zážitku (UX).
  • ERC-721/1155 setApprovalForAll: globální oprávnění přesouvat všechny NFT nebo partie jednoho kontraktu. Při útoku stačí jeden příkaz transferFrom.
  • Permit / Permit2: podpisem (EIP-2612, Permit2) udělujete off-chain schválení, které se on-chain uplatní později. Skvělé pro UX, ale lákavé pro phishery (nekonečné a bez potřeby interakce peněženky při samotné platbě).
  • Session/Delegation: herní dApps a nástroje používají dočasné „session keys“, delegace nebo relayer schémata. Pokud expirace či rozsah nejsou přísně definovány, přetrvává riziko.

Jaké události sledovat na blockchainu

Při ruční validaci v blockchain exploreru věnujte pozornost:

  • Approval (ERC-20), ApprovalForAll (ERC-721/1155) – nová a změněná povolení.
  • Permit, Permit2 – aplikovaná podpisová schválení, deadline, nonce a value.
  • IncreaseAllowance/DecreaseAllowance – zda dApp nepoužívá bezpečnější inkrement/dekrement.
  • Proxy upgrade a ImplementationChanged – u UUPS/beacon/proxy sledujte změny implementace; stará approvals tak mohou „změnit chování“.

Bezpečnostní dashboardy: co od nich očekávat

Moderní dashboardy agregují vaše oprávnění napříč sítěmi a třídí je podle rizika. Obvykle zobrazují:

  • Seznam spenderů s ikonou důvěryhodnosti (ověřený kontrakt, audit, populární dApp) a proxy chain (transparentní vs. upgradeable).
  • Rozsah: unlimited vs. limitované částky; u NFT – všechny položky vs. konkrétní tokenId.
  • Čas poslední aktivity: stará „zapomenutá“ approvals jsou hlavní kandidáti na revoke.
  • Multichain zobrazení: EVM sítě (Ethereum, L2, sidechains) i nezávislé řetězce (pokud jsou podporovány).
  • Akční tlačítka: Revoke, Reduce (snížení limitu), případně Batch revoke s odhadem poplatku za plyn.

Rozhodovací rámec: zrušit, snížit nebo ponechat

  1. Kritická a neaktivní povolení: neznámí nebo dlouhodobě nepoužívaní spendři → Revoke.
  2. Důvěryhodné, často používané dApps: zvažte Reduce na just-in-time částku nebo časově omezený Permit.
  3. NFT marketplaces: pokud neprodáváte → zrušte setApprovalForAll, v případě potřeby jej můžete znovu udělit.
  4. Bridge a DeFi kontrakty: ponechte pouze nezbytné; preferujte kontrakty s permit-like postupem, pull-based rozhraním a scoped approvals.

Specifika podle tokenového standardu

  • ERC-20: preferujte DecreaseAllowance na 0, poté Increase na požadovanou částku. Vyhnete se typické race condition při změně limitu.
  • ERC-721/1155: vždy upřednostněte per-item approvals před ApprovalForAll, pokud to marketplace umožňuje.
  • Permit/Permit2: podepisujte s nízkou hodnotou, krátkou expirací a kontrolujte domain separator, chainId a verifyingContract v EIP-712 okně.

Typické útoky a jak je dashboard odhalí

  • Malicious spender: neznámý kontrakt s unlimited allowance – nástroj jej zvýrazní jako vysoké riziko.
  • Upgrade trap: legitimní proxy získal novou implementaci; dashboard zobrazí implementation hash a datum změny.
  • Permit phish: podepsaná nekonečná povolenka přes elegantní modální okno; v historii uvidíte použitý Permit s enormní hodnotou.
  • Leakage approvals přes zapomenuté dApps: starý farmovací kontrakt má stále práva – zobrazí se nulová aktivita > 90 dní.

Workflow pravidelného auditu (měsíční rytmus)

  1. Inventarizace: projděte všechny sítě, kde máte aktiva. Exportujte seznam spenderů a povolení (CSV).
  2. Skórování rizika: označte neznámé/neuveřejněné spendery, unlimited limity a stará povolení (> 30–90 dní bez aktivity).
  3. Akce: revoke/limit. U větší sady využijte batch – sjednotíte poplatky.
  4. Simulace: nové transakce projděte simulátorem; potvrďte, že po revoke dApp stále funguje (jinak udělit minimálně nové povolení).
  5. Monitorování: zapněte upozornění (push/e-mail) na nové Approval* události z vašich adres.

Cross-chain a L2 specifika

Každý řetězec = samostatná sada approvals. L2 mají levné transakce, proto je rozumné revokovat častěji. Dávejte pozor na:

  • Canonical vs. third-party mosty: pouze canonical kontrakty by měly mít práva k vašim aktivům.
  • Multisig a trezory: u treasury pravidelně auditujte Module rozšíření (Safe Modules) a delegace.
  • Rollup upgrade: při major upgrade sítě znovu ověřte integritu spenderů (nové adresy, migrace).

Account Abstraction a session oprávnění

Při EIP-4337 peněženkách sledujte:

  • Pluginy/Modules: které mohou přenášet práva na třetí kontrakty.
  • Session keys: krátké expirace, omezené call-targets a value.
  • Paymasters: nepovolujte neomezené výdaje, pokud to není nutné.

Operační hygiena: pro jednotlivce i týmy

  • Hardwarová peněženka na hodnoty, hot wallet na interakce; nikdy nesdílejte approvals mezi nimi.
  • Sandbox pro testování: novou dApp vyzkoušejte s čerstvou adresou a minimálním zůstatkem.
  • Oddělené profily prohlížeče a rozšíření; minimalizujte práva doplňků.
  • Signing hygiene: čtěte EIP-712; kontrolujte chainId, verifyingContract, spender, value, deadline.
  • DNS/typo-squatting: používejte záložky; nikdy neklikejte na odkazy z DM.

Náklady, poplatky a strategie revokací

Revoke je standardní transakce, platí se gas. U drahých L1:

  • Upřednostněte nejrizikovější approvals a ty s velkým tokenovým zůstatkem.
  • Zvažte načasování (nízký gas), případně batch revoke, pokud nástroj podporuje.
  • Pro ERC-20 využijte DecreaseAllowance na 0 (někdy levnější než plný revoke).

Incident response: co dělat při kompromitaci

  1. Okamžitě odpojit a zrušit všechna approvals vůči podezřelému kontraktu (ve všech sítích).
  2. Migrace aktiv: přesun do studené peněženky nebo nového trezoru; zvažte permit-less převody (pokud existují).
  3. Revokace session/plug-inů a pozastavení modulů (multisig).
  4. Forenzní logy: exportovat historii approvals a transakcí; nahlásit adresy monitorovacím službám a marketplaceům.

Co by měl vědět každý začátečník

  • „Connect wallet“ ≠ „bezpečné“: samotné připojení je neškodné, riziko vzniká při podpisu nebo schválení.
  • „Sign to proceed“ může být permit: pokud nevíte, co podepisujete, nedělejte to. Hledejte spender/value/deadline.
  • Revoke ≠ refund: zrušení oprávnění nevrací ukradené prostředky, ale zastavuje další škody.

Checklist měsíčního auditu (TL;DR)

  • Projít všechny sítě a exportovat approvals.
  • Označit unlimited, neznámé spendery a stará/neaktivní práva.
  • Revoke/Reduce podle rizika; u NFT vypnout ApprovalForAll, pokud se neprodává.
  • Zapnout upozornění na nové Approval* a Permit* události.
  • Ověřit proxy implementace a změny kódu u důležitých dApps.
  • Zkontrolovat rozšíření, prohlížeč a oddělení „hot/cold“ peněženek.

Bezpečnost peněženky není jednorázový úkon, ale proces. Revoke a bezpečnostní dashboardy poskytují přehled a nástroj k rychlým intervencím, ale rozhodující je disciplína: minimální oprávnění, krátké expirace, pravidelný audit a zdravá skepse při podepisování. Takto se z pohodlí „nekonečných approvals“ stane kontrolovaný a auditovatelný bezpečnostní režim, který ochrání vaše aktiva i v době, kdy se ekosystém mění rychleji než dokumentace dApps.