Aké sú bežné bezpečnostné slabiny mostov?
Domov
Články
Aké sú bežné bezpečnostné slabiny mostov?

Aké sú bežné bezpečnostné slabiny mostov?

Rozšírené
Zverejnené Mar 22, 2023Aktualizované Jun 15, 2023
9m

Tento článok je komunitný príspevok. Jeho autorom je Minzhi He, auditor spoločnosti CertiK.

Názory uvedené v tomto článku sú názory prispievateľa/autora a nemusia nevyhnutne odrážať názory Akadémie Binance.

Zhrnutie

Blockchainové mosty sú rozhodujúcim prvkom pre dosiahnutie interoperability v blockchainovom priestore. Bezpečnosť blockchainového mosta je preto vrcholne dôležitá. Medzi bežné bezpečnostné slabiny mostov patria slabé overenie v rámci blockchainu a mimo neho, nesprávna manipulácia s natívnymi tokenmi a nesprávne konfigurácie. Aby sa zabezpečila spoľahlivá logika overenia, odporúča sa testovanie mosta proti všetkým možným vektorom útoku.

Úvod 

Blockchainový most je protokol spájajúci dva blockchainy s cieľom umožniť komunikáciu medzi nimi. Ak vlastníte bitcoin, ale chcete sa podieľať na aktivite DeFi v sieti Ethereum, blockchainový most vám to umožní bez toho, aby ste museli predať svoj bitcoin. 

Blockchainové mosty sú základom pre dosiahnutie interoperability v rámci blockchainového priestoru. Fungujú pomocou rôznych validácií v rámci blockchainu a mimo neho, a preto čelia rôznym bezpečnostným rizikám.

Prečo je bezpečnosť mosta kritická? 

Most zvyčajne drží token, ktorý chce používateľ preniesť z jedného reťazca do druhého. Mosty, ktoré sa často nasadzujú ako smart kontrakty, držia pri nahromadení medzisieťových prevodov značné množstvo tokenov, čo z nich robí lukratívne ciele pre hackerov. 

Navyše, blockchainové mosty poskytujú veľkú útočnú plochu, keďže obsahujú veľa komponentov. Z tohto pohľadu majú škodliví aktéri veľkú motiváciu zamerať sa na medzisieťové aplikácie s cieľom odčerpať veľké sumy finančných prostriedkov. 

Útoky na mosty spôsobili v roku 2022 straty vo výške viac ako 1,3 miliardy USD, čo podľa odhadov spoločnosti CertiK predstavuje 36 % celkových ročných strát. 

Bežné bezpečnostné slabiny mostov

Na zvýšenie bezpečnosti mostov je dôležité porozumieť bežným bezpečnostným slabinám mostov a ešte pred spustením ich otestovať. Tieto slabiny možno kategorizovať do nasledujúcich štyroch oblastí. 

Slabá validácia v rámci reťazca

V prípade jednoduchých mostov, najmä tých, ktoré sú navrhnuté pre špecifické DApp, je overenie v rámci reťazca obmedzené na minimum. Tieto mosty sa pri vykonávaní základných operácií (razba, pálenie a prenos tokenov) spoliehajú na centralizovaný backend, pričom všetky overenia sa vykonávajú mimo blockchainu.

Na rozdiel od toho iné typy mostov používajú na overovanie správ a vykonávanie overení v rámci reťazca smart kontrakty. V tomto scenári, keď používateľ vloží prostriedky do reťazca, vygeneruje smart kontrakt podpísanú správu a vráti podpis v transakcii. Tento podpis slúži ako dôkaz o vklade a používa sa na overenie žiadosti používateľa o výber na druhom reťazci. Tento proces by mal byť schopný zabrániť rôznym bezpečnostným útokom vrátane opakovaných útokov a falošných záznamov o vkladoch. 

Ak sa však počas procesu overovania v reťazci vyskytne slabina, útočník môže spôsobiť vážnu škodu. Ak napríklad most používa na overenie záznamu transakcie strom Merkle, útočník môže vytvoriť falošné dôkazy. To znamená, že ak je proces overovania zraniteľný, útočník môže obísť overenie dôkazov a vyraziť nové tokeny na svoj účet.

Niektoré mosty implementujú koncept „zabalených tokenov“. Napríklad, keď používateľ prevedie DAI zo siete Ethereum do BNB Chain, jeho DAI sa prevezmú z kontraktu siete Ethereum a v BNB Chain sa vydá ekvivalentné množstvo zabalených DAI. 

Ak však táto transakcia nie je správne overená, útočník by mohol manipuláciou s funkciou nasadiť škodlivý kontrakt na presmerovanie zabalených tokenov z mosta na nesprávnu adresu. 

Útočníci tiež potrebujú, aby obete schválili premosťovací kontrakt na prevod tokenov pomocou funkcie „transferFrom“ na odčerpanie aktív z premosťovacieho kontraktu. 

Bohužiaľ, toto je ešte horšie, pretože mnoho mostov vyžaduje od používateľov DApp nekonečné schvaľovanie tokenov. Ide o bežný postup, ktorý znižuje výšku poplatkov gas, vytvára však ďalšie riziká tým, že smart kontraktu umožňuje prístup k neobmedzenému počtu tokenov z peňaženky používateľa. Útočníci dokážu využiť nedostatok v overení a nadmerné schválenie na prenos tokenov od iných používateľov k sebe.

Slabá validácia mimo blockchainu

V niektorých premosťovacích systémoch hrá backend server mimo blockchainu rozhodujúcu úlohu pri overovaní legitimity správ odoslaných z blockchainu. V tomto prípade sa zameriame na overenie vkladov. 

Blockchainový most s overením mimo blockchainu funguje nasledovne: 

  1. Používatelia interagujú s DApp a vkladajú tokeny do smart kontraktu na zdrojovom reťazci.

  2. DApp potom odošle hash vkladu na backend server prostredníctvom rozhrania API.

  3. Hash transakcie podlieha viacerým overeniam serverom. Ak sa vyhodnotí ako legitímny, podpisovateľ podpíše správu a odošle podpis späť do používateľského rozhrania cez API.

  4. Po prijatí podpisu ho DApp overí a umožní používateľovi, aby si stiahol tokeny z cieľového reťazca.

Backend server sa musí uistiť, že vklad, ktorý spracováva, skutočne prebehol a nebol sfalšovaný. Tento backend server určuje, či používateľ môže stiahnuť tokeny na cieľovom reťazci. Preto je pre útočníkov cenným cieľom.

Backend server musí overiť štruktúru udalosti emitovanej transakciou, ako aj adresu kontraktu, ktorý udalosť vyslala. V prípade zanedbania posledne uvedeného by útočník mohol nasadiť škodlivý kontrakt na vytvorenie udalosti vkladu s rovnakou štruktúrou, ako má udalosť legitímneho vkladu. 

Ak backend server neoverí, ktorá adresa vyslala udalosť, považoval by to za platnú transakciu a správu by podpísal. Útočník by potom mohol poslať hash transakcie do backendu, obísť overenie a umožniť útočníkovi stiahnuť tokeny z cieľového reťazca.

Nesprávna manipulácia s natívnymi tokenmi

Mosty používajú na manipulácii s natívnymi a úžitkovými tokenmi rôzne prístupy. Napríklad v sieti Ethereum je natívnym tokenom ETH a väčšina úžitkových tokenov dodržiava štandard ERC-20. 

Keď používateľ zamýšľa previesť svoje ETH do iného reťazca, musí ich najskôr vložiť do premosťovacieho kontraktu. Aby to dosiahol, používateľ jednoducho pripojí ETH k transakcii a množstvo ETH možno získať prečítaním poľa „msg.value“ transakcie.

Vkladanie tokenov ERC-20 sa výrazne líši od vkladania ETH. Na uloženie tokenu ERC-20 musí používateľ najskôr povoliť, aby premosťovací kontrakt použil jeho tokeny. Po schválení a vložení tokenov do premosťovacieho kontraktu kontrakt buď spáli tokeny používateľa pomocou funkcie „burnFrom()“ alebo prenesie token používateľa do kontraktu pomocou funkcie „transferFrom()“. 

Jedným z prístupov, ako to odlíšiť, je použitie príkazu „if-else“ v rámci tej istej funkcie. Ďalším prístupom je vytvorenie dvoch samostatných funkcií na spracovanie každého scenára. Pokus o vklad ETH pomocou funkcie vkladu ERC-20 môže viesť k strate týchto prostriedkov.

Pri spracovávaní žiadostí o vklad ERC-20 používatelia zvyčajne poskytujú adresu tokenu ako vstup do funkcie vkladu. To predstavuje značné riziko, pretože počas transakcie sa môžu vyskytnúť nedôveryhodné externé hovory. Na minimalizáciu rizika sa bežne používa implementácia zoznamu povolených tokenov, ktorý obsahuje iba tokeny podporované mostom. Ako dôkazy je možné odovzdať iba tokeny uvedené na zozname povolených tokenov. Tým sa zabráni externým hovorom, pretože projektový tím už vyfiltroval adresu tokenu.

Problémy však môžu nastať aj vtedy, keď mosty spracovávajú medzisieťový prenos natívnych tokenov. Dôvodom je, že natívny token nemá adresu. Nulová adresa (0x000...0) predstavuje natívny token. To môže byť problém, pretože odovzdanie nulovej adresy funkcii môže obísť overenie zoznamu povolených adries, aj v prípade nesprávnej implementácie. 

Keď premosťovací kontrakt zavolá „transferFrom“ na prenos aktív používateľa do kontraktu, externé volanie na nulovú adresu vráti hodnotu false, pretože v nulovej adrese nie je implementovaná žiadna funkcia „transferFrom“. Transakcia sa však môže uskutočniť aj vtedy, ak kontrakt nespracuje vrátenú hodnotu správne. To vytvára príležitosť pre útočníkov vykonať transakciu bez prenosu akýchkoľvek tokenov do kontraktu.

Nesprávna konfigurácia

Vo väčšine blockchainových mostov je privilegovaná rola zodpovedná za uvádzanie tokenov a adries na zoznam povolených alebo zakázaných, priraďovanie alebo zmenu podpisovateľov a ďalšie kriticky dôležité konfigurácie. Zabezpečenie presnosti všetkých konfigurácií je kľúčové, pretože aj zdanlivo triviálne prehliadnutia môžu viesť k značným stratám.

V skutočnosti došlo k incidentu, keď útočník úspešne obišiel overenie záznamu o prenose z dôvodu nesprávnej konfigurácie. Projektový tím implementoval upgrade protokolu niekoľko dní pred hackom, ktorý zahŕňal zmenu premennej. Premenná bola použitá na vyjadrenie predvolenej hodnoty dôveryhodnej správy. Táto zmena viedla k tomu, že všetky správy boli automaticky považované za overené, čo umožnilo útočníkovi odoslať ľubovoľnú správu a prejsť procesom overenia.

Ako zlepšiť zabezpečenie mosta

Štyri bežné slabiny mostov vysvetlené vyššie predstavujú výzvy na zaistenie bezpečnosti v ekosystéme prepojených blockchainov. Aby bolo možné zvládnuť každú z týchto slabín, je potrebné venovať im náležitú pozornosť. Žiadna z príručiek sa nevzťahuje na všetky z nich. 

Napríklad poskytovanie všeobecných pokynov na zabezpečenie bezchybného overovacieho procesu je náročné, pretože každý most má jedinečné požiadavky na overovanie. Najúčinnejším spôsobom, ako zabrániť obídeniu overenia, je dôkladne otestovať most proti všetkým možným vektorom útoku a zabezpečiť, aby overovacia logika bola správna. 

Aby sme to zhrnuli, je nevyhnutné vykonať prísne testovanie proti potenciálnym útokom a venovať osobitnú pozornosť najbežnejším bezpečnostným rizikám mostov.  

Záverečné myšlienky 

Kvôli vysokej hodnote sú medzisieťové mosty už dlho cieľom útočníkov. Vývojári môžu posilniť bezpečnosť svojich mostov vykonaním dôkladného testovania pred nasadením a použitím auditov tretích strán, čím sa zníži riziko ničivých hackov, ktorým mosty v posledných rokoch musia čeliť. Mosty sú kritické vo svete s viacerými reťazcami. Bezpečnosť však musí byť prvoradým záujmom pri navrhovaní a budovaní efektívnej infraštruktúry Web3.

Prečítajte si tiež

Čo je blockchainový most?

Čo je medzisieťová interoperabilita?

3 obľúbené kryptomosty a ako fungujú

Čo sú zabalené tokeny?

Zrieknutie sa zodpovednosti a varovanie pred rizikom: Tento obsah tu vidíte „taký aký je“ a slúži len ako všeobecná informácia a na účely vzdelávania, bez akejkoľvek reprezentácie alebo záruky. Tieto informácie by ste nemali považovať za finančné poradenstvo a ani nie sú určené ako odporúčanie na nákup akéhokoľvek konkrétneho produktu alebo služby. Mali by ste požiadať o radu odborného poradcu. V prípade, že autorom článku je tretia osoba, upozorňujeme vás, že názory uvedené v článku sú názormi tohto prispievateľa/autora a nemusia nevyhnutne odrážať názory Akadémie Binance. Ďalšie podrobnosti nájdete v našom úplnom zrieknutí sa zodpovednosti, ktoré sa nachádza tu.Ceny digitálnych aktív môžu byť volatilné. Hodnota vašej investície môže klesať alebo stúpať a investovaná suma sa vám nemusí vrátiť. Za svoje investičné rozhodnutia nesiete výhradnú zodpovednosť a Akadémia Binance nezodpovedá za žiadne straty, ktoré vám môžu vzniknúť. Tento materiál by sa nemal považovať za finančné poradenstvo. Viac informácií nájdete v našich Podmienkach používania a Varovaní pred rizikom.