Coinnoti
☰
Slovenčinask
Späť na blog

Prečo vaša peňaženka zobrazuje prevod, ktorý ste nikdy neposlali: transakcie s nulovou hodnotou a otrava adries

Neznáma odchádzajúca transakcia automaticky neznamená, že bola vaša peňaženka napadnutá. Zistite, čo skutočne dokazujú záznamy s nulovou hodnotou, podobne vyzerajúce adresy a skutočné pohyby aktív.

Čo tento záznam dokazuje o mojej peňaženke?

Ak sa vo vašej histórii náhle objaví údaj, že ste na neznámu adresu odoslali 0 USDT, samotný záznam nedokazuje, že niekto získal prístup k vášmu súkromnému kľúču. Tretia strana môže vytvoriť určité záznamy o prevode nulového počtu tokenov, v ktorých uvedie vašu adresu, bez toho, aby potrebovala váš podpis alebo oprávnenie minúť nenulovú sumu. Záznam môže existovať v blockchaine, aj keď ste transakciu nikdy nezačali.

Užitočnejšie sú konkrétnejšie otázky: O aké aktívum ide? Koľko sa skutočne previedlo? Kto transakciu odoslal? Čo umožnilo akékoľvek skutočné minutie prostriedkov?

  • Udalosť s nulovým množstvom tokenov nedokazuje, že ste čokoľvek podpísali alebo minuli. Pri pravom tokene presná nula znamená, že tento konkrétny prevod nepresunul žiadne tokeny.
  • Prevod so známym názvom tokenu neurčuje totožnosť aktíva. Nesúvisiaci kontrakt môže používať rovnaký názov aj symbol.
  • Drobná prichádzajúca platba môže byť skutočná a zároveň vám do histórie podstrčiť zavádzajúcu adresu odosielateľa.
  • Potvrdený a nevysvetlený odchádzajúci pohyb skutočných aktív vyžaduje vyšetrenie. Neignorujte ho len preto, že iné pole uvádza nulu.

Tento sprievodca sa týka Etherea, BNB Smart Chain (BSC) a podobných sietí používajúcich tokenové kontrakty v štýle Etherea. Príklady sú zámerne zjednodušené a vymyslené, nejde o snímky obrazovky ani zistenia týkajúce sa konkrétnej peňaženky.

Najprv zistite, ktoré pole uvádza nulu

Pojem transakcia s nulovou hodnotou ľudia používajú pre niekoľko rôznych situácií. Iba jedna z nasledujúcich informácií znamená, že množstvo tokenov je nulové:

  • Množstvo tokenov: 0 USDC. Pri pravom kontrakte USDC presná nula znamená, že tento prevod nepresúva žiadne USDC.
  • Hodnota transakcie: 0 ETH. K hlavnej transakcii nebolo pripojené žiadne ETH. Tokeny sa však stále môžu prevádzať a operácie kontraktu sa môžu vykonať.
  • Odhadovaná hodnota: $0.00. Rozhranie zobrazuje ocenenie vo fiat mene. Z toho nemožno určiť množstvo tokenov.

Na BSC sa v poli natívnej meny zvyčajne používa BNB namiesto ETH. Interakcia s kontraktom s nulovou natívnou hodnotou môže prevádzať tokeny, meniť oprávnenia na míňanie alebo spúšťať iné operácie. Natívna hodnota je oddelená od vstupných dát transakcie.

Malé kladné množstvo sa môže zaokrúhliť na $0.00. Aktívum bez spoľahlivej ceny môže mať tiež neužitočné ocenenie vo fiat mene. Rozbaľte množstvo tokenov na plnú presnosť; aj zobrazené množstvo 0.00 môže skrývať menšiu kladnú hodnotu. Zmena ocenenia portfólia nie je spoľahlivým záznamom jednotiek, ktoré na účet prišli alebo z neho odišli.

Nula je povoleným množstvom tokenov, takže sama osebe nedokazuje útok. Podobne vyzerajúce adresy a skopírované platobné údaje sú indície, ktoré treba preveriť.

Prečo sa dve polia From môžu líšiť

História peňaženky môže kombinovať informácie z rôznych úrovní:

  1. Transakcia: podpísaný pokyn odoslaný do siete. Pri bežnej transakcii na Ethereu hlavné pole From označuje podpisujúci účet.
  2. Udalosť tokenu: záznam emitovaný kontraktom počas vykonávania. Udalosť Transfer má vlastné polia From, To a množstvo.
  3. Riadok histórie: spôsob, akým peňaženka alebo prehliadač blockchainu tieto informácie zobrazuje. Udalosť môže označiť ako OUT, pretože ako odosielateľa uvádza vašu adresu.

Tieto dve polia From nie sú zameniteľné. Výskyt vašej adresy v udalosti nie je podpisom vašej peňaženky. Škodlivý kontrakt môže vašu adresu vložiť do údajov udalosti, ale jeho záznam tým nepochádza z pravého tokenového kontraktu. Kontrakt, ktorý udalosť emitoval, je preto zásadnou súčasťou dôkazov.

Rovnako hash transakcie identifikuje transakciu, nie váš súhlas. Zahrnutá transakcia označená Success znamená, že jej vonkajšie vykonávanie nebolo vrátené späť. Nejde o potvrdenie dôveryhodnosti tokenu, príjemcu ani účelu.

Päť príkladov histórie transakcií s vysvetlením

Príklad 1: Odchádzajúci prevod nulového množstva tokenov, ktorý ste nepodpísali

Záznam v histórii: OUT · 0 USDC · Z vašej adresy na neznámu podobne vyzerajúcu adresu.

  • From transakcie: transakciu odoslal nesúvisiaci účet.
  • From tokenovej udalosti: udalosť uvádza vašu adresu.
  • Emitujúci tokenový kontrakt: pravý kontrakt USDC v tejto sieti.
  • Presné množstvo tokenov: nula.

Čo to dokazuje: pravý tokenový kontrakt zaznamenal prevod nulového množstva tokenov s vašou adresou. Tento konkrétny prevod nepresunul žiadne USDC. Nedokazuje, že vaša peňaženka transakciu podpísala, že volajúci má oprávnenie minúť kladné množstvo alebo že vám bol odcudzený kľúč.

Ako k tomu dochádza: bežný tokenový štandard ERC-20 vyžaduje, aby aj prevody nulového množstva emitovali udalosti Transfer. V bežných implementáciách delegovaná prevodná funkcia transferFrom kontroluje, či požadované množstvo neprekračuje povolený limit volajúceho. Nula neprekračuje ani nulový limit. Ak to dovoľujú ostatné pravidlá kontraktu, volanie môže uspieť bez predchádzajúceho schválenia.

Nejde o univerzálnu záruku pre každý token. Jednotlivé kontrakty môžu mať ďalšie obmedzenia.

Čo skontrolovať ďalej: prezrite si zostávajúce časti transakcie. Nulový riadok opisuje iba sám seba; iná operácia mohla mať odlišný dopad. Ak ide iba o osamotený záznam otravy adries bez podozrivého míňania alebo zmien oprávnení, vhodnou reakciou je vyhnúť sa podstrčenej adrese, nie predpokladať, že treba vymeniť peňaženku.

Príklad 2: Falošná transakcia zobrazujúca veľké množstvo tokenov

Záznam v histórii: OUT · 2,500 USDC · Z vašej adresy na neznámu adresu.

  • Zobrazený symbol tokenu: USDC.
  • Emitujúci kontrakt: nesúvisiaci kontrakt, nie pravý USDC.
  • Množstvo uvedené v udalosti: 2,500.
  • Pohyb pravých USDC v tejto transakcii: žiadny.

Čo to dokazuje: iný kontrakt emitoval záznam zobrazený pod označením USDC. Nedokazuje to, že z vášho účtu odišlo 2,500 skutočných USDC.

Falošná transakcia v peňaženke môže byť skutočným údajom v blockchaine, ktorý sa zavádzajúco vykladá. Útočníci môžu kopírovať názov a symbol tokenu a emitovať udalosti podobné vašim skorším platbám vrátane súm. Neštandardné kontrakty môžu tiež emitovať záznamy o prevodoch, ktoré nezodpovedajú zmenám ich vlastných zostatkov.

Čo skontrolovať ďalej: určite sieť a presný kontrakt, ktorý udalosť emitoval. Jeho adresu porovnajte s údajmi o kontrakte, ktoré ste pre danú sieť nezávisle získali od emitenta. Známy ticker, logo ani označenie overenia zdrojového kódu nestačia na preukázanie totožnosti emitenta.

Príklad 3: Drobná skutočná platba z podobne vyzerajúcej adresy

Záznam v histórii: IN · 0.000001 USDC · Z neznámej adresy na vašu adresu.

Predpokladajme, že pravý tokenový kontrakt prevod potvrdí a váš zostatok tokenov sa o túto drobnú sumu zvýši. V takom prípade skutočné tokeny dorazili. Ich prijatie nevyžadovalo vaše schválenie odosielateľa a nedáva mu oprávnenie míňať.

Pasca spočíva v adrese. Zvážte nasledujúce vymyslené príklady rozdelené medzerami, aby boli viditeľné všetky znaky. Skutočné adresy medzery neobsahujú; tučne vyznačené stredné časti sa líšia:

Overený príjemca: 0x7a2f 1111 2222 3333 4444 5555 6666 7777 8888 9c4d

Podstrčená adresa: 0x7a2f aaaa bbbb cccc dddd eeee ffff 0000 1111 9c4d

Rozhranie zobrazujúce len začiatok a koniec by mohlo obe adresy ukázať ako 0x7a2f...9c4d.

Čo to dokazuje: niekto vám z danej adresy poslal malé množstvo. Nedokazuje to, že odosielateľ je vaším obvyklým príjemcom alebo že účet ovládate. Zhodné viditeľné znaky nepreukazujú vlastníctvo.

Čo skontrolovať ďalej: získajte zamýšľanú cieľovú adresu od nezávisle overeného kontaktu alebo z dôveryhodnej stránky účtu príjemcu. Porovnajte celú adresu. Otrava adries sa snaží premeniť podstrčený záznam v histórii na adresu, ktorú zvolíte pri neskoršej platbe. K strate môže dôjsť až neskôr, keď schválite úplne platný prevod na nesprávne miesto.

Príklad 4: Nula ETH, ale odchádza 2,500 pravých tokenov

Hlavička transakcie: Value · 0 ETH.

  • Natívna hodnota pripojená k volaniu: 0 ETH.
  • Prevod pravých tokenov: 2,500 USDC z vašej adresy.
  • Zmena zostatku USDC spôsobená transakciou: zníženie o 2,500 USDC.
  • Stav vykonávania: Success.

Čo to dokazuje: v tomto príklade skutočné USDC odišli. Nula opisuje ETH pripojené k volaniu, nie prevod USDC, a nevylučuje poplatky za gas.

Čo zostáva neznáme: prečo platba prebehla a či ste ju zamýšľali. Mohlo ísť o výmenu, vklad, naplánovanú operáciu, platbu na chybnú adresu alebo neoprávnené míňanie. Skôr než transakciu zaradíte, porovnajte ju so svojím úkonom a zamýšľaným cieľom.

Príklad 5: Pravé tokeny odchádzajú, ale transakciu odoslal iný účet

Záznam v histórii: OUT · 500 pravých USDC · Neznámy cieľ.

Predpokladajme, že úspešná transakcia znížila váš skutočný zostatok USDC o 500, hoci hlavné pole From uvádza niekoho iného.

Čo to dokazuje: tokeny sa presunuli. Odlišný odosielateľ transakcie neznamená, že je tento pohyb falošný.

Predtým schválený subjekt môže použiť povolený limit tokenov bez toho, aby vás pri každom výbere žiadal o podpis novej transakcie. Niektoré tokeny tiež podporujú podpisy permit, ktoré autorizujú limit prostredníctvom podpísanej správy odoslanej inou stranou. Inteligentné účty a delegované peňaženky prinášajú ďalšie spôsoby, ako môže niekto iný odoslať oprávnenú operáciu.

Čo skontrolovať ďalej: preverte subjekt oprávnený míňať, príslušný limit či podpísané oprávnenie a operáciu peňaženky. Ak debet zostáva nevysvetlený, považujte ho za bezpečnostný incident. Dôkazy môžu ukazovať na škodlivé schválenie, klamlivý podpis alebo kompromitované ovládanie účtu; samotný riadok ich nerozlíši.

Pri bežnej priamo podpísanej transakcii je vaša adresa v hlavnom poli From dôkazom platného podpisu k danému účtu. Ani to však nedokazuje, že ste úkonu rozumeli, zamýšľali daného príjemcu alebo transakciu osobne začali. Pole From tokenovej udalosti poskytuje omnoho slabší dôkaz.

Čo skutočne meralo 270 miliónov pokusov o otravu adries

Dvojročná analýza aktivity na Ethereu a BSC za obdobie od 1. júla 2022 do 30. júna 2024 identifikovala približne 270 miliónov podstrčených prevodných záznamov zameraných na 17 miliónov adries.

Záznamy patrili do troch kategórií:

  • 147.7 milióna prevodov s nulovou hodnotou.
  • 118.4 milióna prevodov falšovaných tokenov.
  • 4.0 milióna drobných prevodov.

Išlo o prevodné záznamy približne v 18.2 milióna transakcií, pretože útočníci môžu záznamy združovať. Cielené adresy nie sú to isté ako ľudia, napadnuté peňaženky alebo obete, ktoré prišli o peniaze.

Analýza identifikovala 6,633 úspešných následných platieb v celkovej hodnote aspoň $83.8 million. Niektoré obete zaplatili viackrát. Detekcia sa zamerala na vybrané stablecoiny, preto je odhad strát dolnou hranicou v tomto rozsahu, nie súhrnom za všetky tokeny a siete.

Praktickým dôsledkom je, že kontrola iba nulových súm prehliada podstatnú časť útoku. Falšované záznamy môžu napodobniť významnú platbu a drobný prichádzajúci prevod môže presunúť skutočné tokeny a zároveň predstaviť nebezpečnú adresu.

Ako preveriť konkrétny neznámy záznam

  1. Otvorte transakciu v správnej sieti. Použite možnosť prehliadača blockchainu vo svojej peňaženke alebo známy prehliadač, napríklad Etherscan či BscScan. Skontrolujte stav transakcie. Čítanie verejných údajov nevyžaduje pripojenie peňaženky, schvaľovanie tokenov, podpis správy ani zadanie obnovovacej frázy.
  2. Určite skutočné aktívum. Odlíšte natívne ETH či BNB od tokenu používajúceho toto meno. Pri tokenoch porovnajte presnú sieť a emitujúci kontrakt s dôveryhodnými údajmi emitenta.
  3. Prečítajte množstvo v plnej presnosti. Oddeľte množstvo tokenov od natívnej hodnoty transakcie a odhadu vo fiat mene.
  4. Oddeľte odosielateľa transakcie od odosielateľa udalosti. Pri inteligentnom účte preverte aj operáciu peňaženky a jej oprávnenia. To, že gas platil niekto iný, nedokazuje, že sa vaše aktíva nemohli pohnúť.
  5. Prejdite celú transakciu. Preverte všetky pohyby tokenov, prevody natívnej meny a súvisiace zmeny oprávnení. Ak prehliadač ponúka zmeny zostatkov pre celú transakciu, použite ich na overenie výsledku. Dnešný nezmenený zostatok je slabším dôkazom: neskoršie vklady či kompenzačné prevody môžu skryť skorší pohyb.
  6. Nezávisle overte cieľovú adresu. Použite dôveryhodné platobné údaje príjemcu alebo skôr overenú položku adresára. Nedávny riadok histórie je podklad na preskúmanie, nie potvrdenie správneho cieľa.

Ak výsledok z prehliadača nie je jasný, oznámte oficiálnej podpore poskytovateľa peňaženky sieť a verejný hash transakcie. Opíšte očakávanú operáciu, ak nejaká bola. Tieto údaje pomôžu odlíšiť neznámu, ale zamýšľanú operáciu od nevysvetleného míňania bez zverejnenia tajných údajov ovládajúcich peňaženku.

Čo robiť po kontrole

Ak ste našli iba osamotený podstrčený záznam

Ak to peňaženka umožňuje, skryte alebo nahláste spam a nepoužívajte adresy z neho. Skrytie riadka zmení rozhranie; nevymaže históriu blockchainu ani nezruší oprávnenia.

Nulový prevod môže nastať aj s nulovým limitom, takže samotný záznam nie je dôvodom rušiť všetky schválenia ani presúvať všetky prostriedky. K záznamu nemusí existovať žiadne oprávnenie na míňanie, ktoré by sa dalo odobrať. Nikdy nepoužívajte propagované stránky tokenu ani cudzí odkaz na obnovu na „vyčistenie“ peňaženky.

Ak ste našli podozrivé oprávnenie na míňanie

Pomocou dôveryhodnej správy schválení v peňaženke preverte a zrušte príslušný limit. Odpojením webu od peňaženky sa nezrušia jeho existujúce schválenia tokenov na blockchaine. Zrušenie rieši toto oprávnenie; nenapraví ukradnutý súkromný kľúč.

Ak sa skutočné aktíva presunuli bez vášho úmyslu

Uschovajte hash transakcie, sieť, dotknuté aktívum a súvisiace adresy. Cez oficiálnu podporu preverte nedávne podpisy, schválenia a operácie peňaženky.

Ak existujú dôkazy o prezradení obnovovacej frázy či súkromného kľúča, vytvorte na dôveryhodnom zariadení novú peňaženku s novou obnovovacou frázou a starostlivo naplánujte presun zostávajúcich aktív. Iný účet odvodený od kompromitovanej frázy problém nerieši. Ak prostriedky automaticky miznú, nepridávajte ďalšie peniaze na gas: môže ich odobrať automatizovaný zlodej.

Ak ste platbu vedome podpísali, ale skopírovali otrávenú cieľovú adresu, tento rozdiel zdokumentujte. Platba mohla byť správne podpísaná a vykonaná, napriek tomu však doraziť nesprávnemu príjemcovi. To samo osebe nedokazuje odcudzenie súkromného kľúča.

Časté otázky o neznámych transakciách

Prinútil ma útočník zaplatiť gas?

V bežnom scenári otravy adries transakciu odosiela útočník a platí sieťový poplatok. Samotné uvedenie vašej adresy v tokenovej udalosti váš účet nezaťaží. Sponzorované transakcie a inteligentné účty však znamenajú, že samotná totožnosť platiteľa poplatku nedokazuje neškodnosť operácie. Preverte skutočné účinky.

Čo ak transakcia zlyhala?

Vrátený prevod tokenov sa nedokončil, hoci mohol byť účtovaný gas. Ak peňaženka používa delegovanie účtu, preverte ho samostatne: Ethereum môže delegáciu zachovať, aj keď neskoršie vykonávanie zlyhá. Neznáma delegácia si zaslúži kontrolu.

Zabránila by hardvérová peňaženka otrave adries?

Poskytuje ďalšie miesto na kontrolu cieľovej adresy pred podpisom. Ak však schválite adresu ovládanú útočníkom, nezmení ju na správnu. Porovnajte celú adresu na dôveryhodnom podpisovom displeji s nezávisle overenými údajmi príjemcu.

Môžem zabrániť cudzím ľuďom pridávať tieto záznamy?

Vo všeobecnosti nemôžete tretím stranám zabrániť v posielaní aktív alebo vytváraní príslušných záznamov spojených s verejnou adresou. Filtre peňaženky a prehliadača môžu obmedziť, čo vidíte. Ukladajte overených príjemcov a pred platbou kontrolujte celú cieľovú adresu; samotné skrývanie nulových položiek nezachytí všetky varianty s falšovanými tokenmi či drobnými prevodmi.