Kryptoměny jsou prostředí, které neodpouští. Primárně DeFi zóna je už ze své podstaty silně neregulovaná a každý trader nebo investor vstupuje do tohoto světa na vlastní zodpovědnost. Absolutní anonymita a decentralizace může být na jednu stranu lákavá, musíme se dívat ale i na stinné stránky. S velmi nízkou mírou regulace se pojí též svoboda pro podvodníky. Tvůrci tzv. scamů mají širokou škálu možností, jak z vás vypáčit přístup ke kryptoměnovým peněženkám a celé je vybílit.
Poznámka
Mnozí z nás se zápalem do různých “shitcoinů” znají běžné formy scamů jako např. rugpull nebo honeypot. O těchto technikách si ale povíme v jiném článku. Nyní se zaměříme čistě na phishing a vynalézavost podvodníků.
Běžné phishingové techniky, též jako sociální inženýrství, známe určitě všichni. V drtivé většině případů se jedná o jakoukoliv snahu mající za cíl zjištění seedu ke kryptoměnové peněžence oběti.
Metody podvodníků se však vyvíjí – v posledních měsících můžeme vidět velký nárůst i jiných technik, při kterých není nutná znalost seedu a stejně může ke krádeži dojít.
O jedné technice přítomné na síti Etherea a jí podobných (např. BNB Smart Chainu) si povíme v tomto článku.
Co je to funkce approve()?
Funkce approve() je jednou ze základních funkcí ve smart kontraktu každého tokenu standardu ERC20 či BSC. Je součástí série funkcí dohromady tvořících provedení celé transakce – to znamená od prvního kliknutí až po změnu zůstatku na vašem účtu.
Kvůli principu funkčnosti AMM je nezbytná. Název vám může evokovat podobně pojmenované tlačítko, na které na většině decentralizovaných burz klikáte při provádění obchodu.
Funkce approve() upravuje záznamy a technicky vzato se počítá jako “předcházející” transakce – uživatel musí zaplatit poplatek za její provedení. Za tím účelem je následně přesměrován do softwarové peněženky. MetaMask nám dokonce i stručně vysvětlí co tlačítko Enable způsobí.
Nyní by bylo vhodné si vysvětlit, co vlastně funkce approve() dělá. V zásadě je její činnost jednoduchá – má dvě základní práce.
První funkcí je udělení povolení třetí straně k nakládání s vaší kryptoměnou v pevně stanovené částce zvané jako allowance. Allowance je hodnota tokenů, u které bude mít burza možnost je prodat za vás. V případě burz jako PancakeSwap a UniSwap je předem dané, že hodnota allowance musí být rovna vaší zadané hodnotě pro prodej – na obrázcích výše je to zhruba 8466 VFY. Aby burza PancakeSwap mohla vaší kryptoměnu prodat v liquidity poolu, musíte to burze povolit. Krásný příklad je třeba prodej vašeho auta v autobazaru – aby autobazar mohl vaše auto prodat, potřebuje k tomu vaše povolení, bez toho přeci s vaším autem nesmí nakládat.
Druhá funkce slouží jako ověření dostatečného zůstatku pro provedení transakce – jinými slovy, podmínka v kódu funkce approve() ověří, že množství kryptoměn, které chcete prodat, skutečně máte. Stejně jako např. autobazar ověří, že auto je skutečně vaše a že je ve stavu, ve kterém ho autobazar bude inzerovat.
Po provedení první transakce běžně kliknete ještě na tlačítkoSwap (to vyžaduje další potvrzení v MetaMask, včetně platby dalšího poplatku za transakci). Poté je obchod dokončen.
Poznámka
Decentralizované burzy většinou vyžadují kliknutí na tlačítko Approve/Enable pouze jednou pro udělení povolení. Při dalších transakcích se provádí funkce approve automaticky pomocí uložených informací. Bohužel ale, útočníkovi také stačí pouze první povolení – vše si ukážeme v následujícím odstavci.
Zneužití funkce approve()
Tato v zásadě jednoduchá a podstatná funkce se ale dá určitým způsobem zneužít. Útočníci využívají neznalosti obchodníků o podrobné funkčnosti Solidity a upravují kód takovým způsobem, že funkce zpřístupní práva cizí adrese místo adresy routeru burzy. V posledních měsících se tento nešvar rozšiřuje celkem svižným tempem.
Prvním průkopníkem byli podvodníci zaměření na kryptoměnu Chainlink. Aktivní byli zejména na začátku roku 2021 a svou phishingovou kampaň rozjeli hlavně přes e-maily.
Je dosti možné, že jste i vy byli mezi potenciálními oběťmi. Scammeři rozesílali informace o falešném upgradu sítě Chainlink, jehož důsledkem mělo být snížení poplatků za gas o 68 %, podpora meta-transakcí a různé jiné vylepšení. Maily chodily primárně z adresy [email protected].
Sázeli hlavně na FOMO kvůli vysokým gas fees – dlouhotrvající problém Etherea, o kterém jsme též psali. Narazili na velmi velké množství zbytečných obětí. Součástí mailu byl i podrobně udělaný návod se všemi potřebnými kroky pro “aktivování aktualizace“, byl dokonce rozdělen podle používaných softwarových peněženek – např. MyEtherWallet. Velmi důležitý je následující krok z návodu:
V předešlých krocích byli uživatelé odkázáni na adresu kontraktu, nyní si v záložce Write contract měli najít funkci approve() a vložit adresu nového smart kontraktu, přes který se uživatelům “zpřístupní” falešný upgrade. Ve skutečnosti to byla pouze zástěrka.
Skutečnou funkcí kontraktu bylo udělení práv jinému smart kontraktu, kterým jsou ve skutečnosti samotní scammeři, pro vyvolání funkce transferFrom() a tím pádem vysátí všech mincí kryptoměny LINK z peněženky uživatele.
A protože součástí návodu bylo vložení hodnoty 10000000000000000000000000 do pole reprezentující allowance, mohli vysát úplně celý obsah peněženky – hodnota mincí, se kterými měli právo manipulovat, byla prakticky neomezená.
Na obrázku níže je k dispozici celý smart kontrakt, přes který byla vyvolávána funkce transferFrom(). Operace je umožněná pouze vlastníkovi (owner), kterým byl smart kontrakt podvodníků.
Na závěr je vhodné zmínit, že je smart kontrakt nezávislý na použité kryptoměně – jeho upravené verze se v budoucnu mohou objevit i u jiných kryptoměn.
Úspěšnost podvodníků
Nemůžeme říci, že by chyba byla ve smart kontraktech nebo v programovacím jazyku Solidity. Ačkoliv je Solidity oproti jiným novým programovacím jazykům (jako třeba Pact či Plutus) lehce zastaralý a má v sobě určité množství bezpečnostních děr, v tomto případě funguje přesně tak, jak má. Podvodníci nevyužívají žádné “skulinky” v kódu, jsou úspěšní pouze díky své přesvědčivé phishingové strategii.
Pro ilustraci – poslední transakce na smart kontraktu podvodníků proběhla před více než třemi měsíci, jednalo se o výběr kryptoměn v hodnotě šílených 186 933 USD. Nyní by již jejich cena byla okolo 220 000 USD.
Podle množství transakcí si můžeme odvodit nemalé množství podvedených lidí. Některé transakce se pohybují ve velmi vysokých číslech. Je zajímavé, že měl podvod čistě na základě phishingu tak velkou úspěšnost.
Jak se nenechat obelhat?
Ve světě kryptoměn je bezpečnost financí pouze ve vašich rukou. Opatrnost je opravdu na místě, je potřeba každý svůj krok pečlivě promýšlet. Informace si ověřujte u oficiálních zdrojů.
Phishing v kryptu může mít velkou škálu podob. Od běžných technik, jako například vydávání se za oficiální tým nebo zákaznickou podporu a vyžádání seedu, až po imitaci skutečné kryptoměny se změněným zdrojovým kódem – jako např. v ukázce výše.
Dle mého názoru je zde nejvíce užitečná rada používat selský rozum. Pokud by např. Chainlink připravoval takovou senzační aktualizaci, pravděpodobně by to bylo všude ve zprávách a rozhodně by vám vývojáři neposílali pouze “exkluzivní e-mail.”
Vsuvka autora na konec:
Sám jsem se v posledních dnech málem stal obětí několika scamů.
Necelý týden zpět mi v peněžence přes airdrop přistálo větší množství mincí jedné kryptoměny (scamu). Nejsem si jist, zda mi je někdo poslal účelně, nebo jestli se jednalo o distribuci mezi náhodné adresy.
Nicméně během 24 hodin se jejich cena vyšplhala na cca 80 BNB, ihned jsem čelil impulzivní touze všechny kryptoměny prodat. Naštěstí jsem však letmo prohlédl smart kontrakt kryptoměny a našel jsem spoustu funkcí, které jsem nikde jinde před tím neviděl. Upřímně si nejsem jist, co by se s mou peněženkou stalo po pokusu o prodej – ale věřím, že by to nebylo nic dobrého.
Nástrahy podvodníků jsou doslova za každým rohem.
Pokud jste částečně zdatní v programování, vyplatí se vždy před nákupem nové kryptoměny rychle projet zdrojový kód (samozřejmě u TOP 100 projektů to moc smysl nemá). Falešné funkce vás občas přímo praští do očí.
Pokud v programování zdatní nejste, mohu doporučit úžasný portál safesolidity.com – v plné verzi je měsíčně placený, o bezpečnosti zdrojového kódu vám však poskytne velké množství užitečných informací.
Mějte také na paměti, že výše popsaný smart kontrakt může mít mnoho podob – mohou být upraveny i jiné funkce a chování kódu může být nevyzpytatelné.
Jako radu na závěr bych rád dodal: Nikdy neprovádějte žádné úkony, u kterých si nejste 100% jistí jejich výsledkem.
Bývalý šéfredaktor, softwarový architekt a nadšenec do kyberbezpečnosti a blockchainu. V rámci Finexu se zaměřuje zejména na technická témata v oblasti kryptoměn. Kryptoměny považuje za platidlo budoucnosti řešící řadu problémů s centralizovanou náturou existujících platebních prostředků. DeFi svět považuje za úchvatný a nabízející spoustu skvělých příležitostí.
Abychom Vám mohli poskytnout co nejlepší služby, používáme různé technologie, mezi které patří i soubory cookies.
Váš souhlas s použitím těchto technologií nám umožní zpracovávat údaje, jako je Vaše chování při používání našeho webu. Díky tomu můžeme náš web dále zlepšovat. Nesouhlas nebo odvolání souhlasu může nepříznivě ovlivnit určité vlastnosti a funkce těchto webových stránek.
Technické
Vždy aktivní
Technické cookies jsou nezbytně nutné pro legitimní účel umožnění použití služby, kterou si náš čtenář nebo uživatel výslovně vyžádal navštívením stránek a není možné je vypnout.
Předvolby
Technické uložení nebo přístup je nezbytný pro legitimní účel ukládání preferencí, které nejsou požadovány odběratelem nebo uživatelem.
Statistiky
Cookies využívané výhradně pro statistické a analytické účely, abychom naše stránky mohli neustále zlepšovat dle toho, jak se naši čtenáři a uživatelé chovají a jaké mají preference.Technické uložení nebo přístup, který se používá výhradně pro anonymní statistické účely. Bez předvolání, dobrovolného plnění ze strany vašeho Poskytovatele internetových služeb nebo dalších záznamů od třetí strany nelze informace, uložené nebo získané pouze pro tento účel, obvykle použít k vaší identifikaci.
Marketing
Cookies používané k vytvoření uživatelských profilů za účelem zobrazování reklamy nebo sledování chování na webových stránkách pro podobné marketingové účely.
Dobry den, me prisly jiz 2x velice male castky Stellar/Lumen krypto. Jedna se skutecne o 0.00000001. Jedna se o scam? Dekuji
Dobrý den, Martine. Jedná se o tzv. dusting útok. Když s přijatými kryptoměnami nebudete nic dělat, nic by se vám nemělo stát.