Začněte psát a výsledky vyhledávání se zobrazí zde...

Nová technika phishingu v DeFi na obzoru! Útočníci vám mohou ukrást finance i bez seedu

Nová technika phishingu v DeFi na obzoru! Útočníci vám mohou ukrást finance i bez seedu
Zdroj: blog.cyble.com

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.

pancakeswap enable tlačítko
U burzy PancakeSwap je funkce approve() skrytá pod tlačítkem Enable

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í.

provedení transakce u funkce approve v metamask
Aktivace funkce approve vyžaduje provedení malé transakce

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.

  1. 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.
  2. 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čítko Swap (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.

https://twitter.com/_whenmoon_/status/1349706460490416130

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:

Zdroj: medium.com
finální krok k odemčení peněženky
Tímto krokem uživatel umožnil scammerům převést všechny tokeny kryptoměny LINK na jinou peněženku

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ů.

Zdroj: etherscan.io
Falešný smart kontrakt
Falešný smart kontrakt

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.

Zdroj: etherscan.io
výběr kryptoměn na jinou adresu
“Výdělek” podvodníků

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.”

Zdroj: reddit.com
Diskuze o falešných e-mailech na redditu
Diskuze o falešných e-mailech na redditu

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.

Líbil se vám tento článek?
4
0

Autor

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í.

Přečíst více

Sdílejte tento článek

Mohlo by vás zajímat

Diskuze (2 komentáře)

Připojte se k diskuzi

Pro přidání komentáře se prosím přihlašte ke svému uživatelskému účtu.

Martin

Dobry den, me prisly jiz 2x velice male castky Stellar/Lumen krypto. Jedna se skutecne o 0.00000001. Jedna se o scam? Dekuji

Redakce Finex

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.