Tento článek je příspěvkem komunity. Autorem je Minzhi He, auditor společnosti CertiK.

Názory vyjádřené v tomto článku jsou názory přispěvatele/autora a nemusí nutně odrážet názory Binance Academy.

souhrn

Blockchainové mosty jsou zásadní pro dosažení interoperability v blockchainovém prostoru. Proto je bezpečnost technologie cross-chain bridge zásadní. Některé běžné bezpečnostní chyby blockchainového mostu zahrnují nedostatečné ověření v řetězci a mimo něj, nesprávné zacházení s nativními tokeny a nesprávnou konfiguraci. Aby bylo zajištěno, že je ověřovací logika správná, doporučuje se otestovat cross-chain bridge proti všem možným útočným vektorům.

Úvod

Blockchain bridge je protokol, který spojuje dva blockchainy a umožňuje jim interakci. Prostřednictvím blockchainového mostu, pokud se uživatelé chtějí podílet na aktivitách DeFi v síti Ethereum, potřebují pouze držet bitcoiny a nemusí je prodávat, aby dosáhli svých cílů.

Blockchain bridge je základem pro interoperabilitu v oblasti blockchainu. Ke svému fungování používají různá on-chain a off-chain ověřování, takže mohou existovat i různé bezpečnostní chyby.

Proč je bezpečnost blockchainových mostů kritická?

Blockchainové mosty obvykle obsahují tokeny, které chtějí uživatelé přenést z jednoho řetězce do druhého. Blockchainové mosty jsou obvykle nasazovány ve formě chytrých kontraktů, protože cross-chain převody se stále hromadí, velké množství tokenů z nich udělá kýžený cíl pro hackery.

Navíc útočná plocha blockchainových mostů bývá velká kvůli mnoha zahrnutým komponentám. Zločinci jsou proto silně motivováni k tomu, aby se zaměřovali na aplikace napříč řetězci, aby získali velké množství finančních prostředků.

Podle odhadů CertiK způsobily útoky blockchain bridge v roce 2022 ztráty více než 1,3 miliardy dolarů, což představuje 36 % celkových ztrát v tomto roce.

Běžné chyby zabezpečení přemosťování napříč řetězci

Pro zvýšení bezpečnosti blockchainového mostu je důležité porozumět běžným bezpečnostním zranitelnostem crosschain bridge a otestovat blockchain bridge před jeho spuštěním. Tyto zranitelnosti pocházejí hlavně z následujících čtyř aspektů:

Nedostatečné ověření na řetězci

U jednoduchých blockchainových mostů, zejména těch navržených pro konkrétní dApp, existuje obvykle jen minimální úroveň on-chain ověřování. Tyto mosty se při provádění základních operací, jako je ražba, vypalování a přenos tokenů, spoléhají na centralizovaný backend, přičemž veškeré ověřování probíhá mimo řetězec.

Zatímco jiné typy mostů používají inteligentní smlouvy k ověřování zpráv a jejich ověřování v řetězci. V tomto případě, když uživatel vloží prostředky do řetězce, inteligentní smlouva vygeneruje podepsanou zprávu a vrátí podpis v transakci. Tento podpis bude použit jako důkaz o vkladu a použit k ověření žádosti uživatele o výběr na jiném řetězci. Tento proces by měl zabránit různým bezpečnostním útokům, včetně útoků opakovaného přehrávání a zfalšovaných záznamů o dobíjení.

Pokud se však v procesu ověřování v řetězci vyskytne chyba zabezpečení, útok by mohl způsobit vážné poškození. Pokud například blockchain používá stromy Merkle k ověření transakčních záznamů, může útočník generovat padělané důkazy. To znamená, že pokud je ověřovací proces zranitelný, může útočník obejít ověření a vyrazit na svůj účet nové tokeny.

Některé blockchainové mosty implementují koncept „zabalených tokenů“. Když například uživatel převede DAI z Etherea do BNB Chain, jeho DAI se vyjme ze smlouvy Ethereum a stejné množství zabaleného DAI se vydá na BNB Chain.

Pokud však tato transakce není řádně ověřena, může útočník nasadit škodlivou smlouvu, která manipuluje s touto funkcí, aby směrovala zabalené tokeny z mostu na nesprávnou adresu.

Útočník také potřebuje, aby oběť schválila smlouvu o zkříženém přemostění před použitím funkce „TransferFrom“ k převodu tokenů, čímž odebere aktiva ze smlouvy o přemostění zkříženého řetězce.

Záludná část je však v tom, že mnoho cross-chain bridge vyžaduje, aby uživatelé dApp schválili neomezené množství tokenů. Tato praxe je velmi běžná, což může snížit poplatky za plyn, ale umožňuje chytrým smlouvám přístup k neomezenému množství tokenů z peněženky uživatele. což přinese další rizika. Útočníci by tato nedostatečná ověření a nadměrná schválení využili k přenosu tokenů od jiných uživatelů k sobě.

Nedostatečné ověření mimo řetězec

V některých cross-chain bridge systémech hrají off-chain backend servery klíčovou roli při ověřování legitimity zpráv odeslaných z blockchainu. V tomto případě se musíme zaměřit na ověření transakce dobití.

Blockchain bridge s off-chain ověřováním funguje následovně:

  1. Uživatelé interagují s dApp a vkládají tokeny do inteligentních smluv ve zdrojovém řetězci.

  2. dApp poté odešle hash transakce vkladu na backendový server prostřednictvím rozhraní API.

  3. Hodnota hash transakce musí být serverem několikrát ověřena. Pokud je to považováno za legitimní, podepisující podepíše zprávu a odešle podpis zpět do uživatelského rozhraní prostřednictvím rozhraní API.

  4. Jakmile je podpis přijat, dApp jej ověří a umožní uživateli stáhnout tokeny z cílového řetězce.

Backendový server musí zajistit, že transakce dobíjení, které zpracovává, jsou skutečné a nejsou padělané. Tento backend server určuje, zda uživatel může stáhnout tokeny v cílovém řetězci, čímž se stává prvním cílem útoků.

Backendový server potřebuje ověřit strukturu události zahájení transakce a adresu smlouvy, která událost iniciovala. Pokud je ignorována, útočníci mohou nasadit škodlivé smlouvy k vytvoření událostí dobíjení se stejnou strukturou jako legitimní události dobíjení.

Pokud backend server neověří, která adresa událost iniciovala, bude předpokládat, že jde o platnou transakci, a zprávu podepíše. Útočník pak může poslat transakční hash na backendový server, čímž obejde ověření a umožní mu stáhnout tokeny z cílového řetězce.

Nesprávná manipulace s nativním tokenem

Cross-chain bridges mají odlišný přístup k nativním tokenům a tokenům nástrojů. Například v síti Ethereum je nativním tokenem ETH a většina pomocných tokenů odpovídá standardu ERC-20.

Pokud má uživatel v úmyslu převést své ETH do jiného řetězce, musí jej nejprve vložit do smlouvy o cross-chain bridge. K tomu uživatel jednoduše připojí ETH k transakci a může získat množství ETH přečtením transakčního pole „msg.value“.

Vkládání ERC-20 tokenů je velmi odlišné od vkládání ETH. Aby uživatelé mohli vložit tokeny ERC-20, musí nejprve povolit použití jejich tokenů ve smlouvě o přemostění mezi řetězci. Poté, co schválí a vloží tokeny do smlouvy cross-chain bridge, smlouva použije funkci "burnFrom()" ke zničení tokenů uživatele nebo funkci "transferFrom()" k převedení tokenů uživatele do smlouvy.

Chcete-li rozlišit, o jakou operaci se jedná, můžete ve stejné funkci použít příkazy if-else. Nebo vytvořte dvě samostatné funkce pro zpracování každého scénáře. V důsledku různých metod zpracování, pokud se uživatel pokusí vložit ETH pomocí funkce vkladu ERC-20, může dojít ke ztrátě ETH.

Při zpracování požadavků na vklad ERC-20 uživatelé obvykle poskytují adresu tokenu jako vstupní parametr do funkce vkladu. To představuje značné riziko, protože během transakcí může docházet k nedůvěryhodným externím hovorům. Používání whitelistu k zahrnutí pouze tokenů podporovaných cross-chain bridge je běžnou praxí pro minimalizaci rizika. Jako parametry jsou předávány pouze adresy ze seznamu povolených. Tím se zabrání externím voláním, protože projektový tým filtroval adresy tokenů.

Existuje však také problém, když cross-chain bridge zpracovává cross-chain přenos nativních tokenů, protože nativní tokeny nemají adresy. Nativní tokeny mohou být reprezentovány speciální adresou, "nulovou adresou" (0x000... 0). S tím je ale problém, pokud logika ověřování whitelistu není implementována správně, předání nulové adresy funkci může obejít ověření whitelistu.

Když kontrakt cross-chain bridge zavolá "TransferFrom" k převedení uživatelských aktiv do smlouvy, externí volání na nulovou adresu vrátí hodnotu false, protože funkce "transferFrom" není implementována v nulové adrese. Pokud však smlouva nezpracovává vrácenou hodnotu správně, transakce může stále probíhat. To vytváří příležitost pro útočníka provést transakci bez převodu jakýchkoli tokenů do smlouvy.

Chyba konfigurace

Ve většině blockchainových mostů existuje privilegovaná role zodpovědná za přidávání tokenů a adres na bílou listinu nebo černou listinu, přidělování nebo změnu signatářů a další klíčové konfigurace. Je důležité zajistit, aby všechny konfigurace byly přesné, protože zdánlivě triviální přehlédnutí může vést k významným škodám.

Ve skutečnosti došlo k incidentům, kdy útočníci úspěšně obešli ověření záznamu o přenosu kvůli špatné konfiguraci. Projektový tým implementoval upgrade protokolu několik dní před hackem, ve kterém byla změněna určitá proměnná. Tato proměnná je výchozí hodnotou používanou k reprezentaci důvěryhodných zpráv. Tato změna způsobí, že všechny zprávy budou automaticky považovány za ověřené, což útočníkovi umožní odeslat náhodnou zprávu a projít ověřením.

Jak zlepšit zabezpečení zkřížených řetězových mostů

Čtyři běžné zranitelnosti cross-chain bridge popsané výše ukazují, že výzvy, kterým čelí bezpečnost v propojeném blockchainovém ekosystému, nelze podceňovat. Abychom se vypořádali s těmito zranitelnostmi, musíme zvážit „podle místních podmínek“ Žádná metoda nemůže být všelékem, jak se vypořádat se všemi zranitelnostmi.

Například, protože každý zkřížený můstek má jedinečné požadavky na ověřování, bylo by obtížné zajistit, aby proces ověřování byl bezchybný, jednoduše poskytnutím obecných pokynů. Nejúčinnějším způsobem, jak zabránit verifikačnímu bypassu, je důkladně otestovat cross-chain bridge proti všem možným útočným vektorům a zajistit, aby byla ověřovací logika rozumná.

Celkově vzato je třeba provést přísné testování proti potenciálním útokům se zvláštní pozorností věnovanou nejběžnějším bezpečnostním zranitelnostem v křížových mostech.

Závěr

Kvůli obrovskému objemu finančních prostředků jsou řetězové mosty dlouhodobě cílem útočníků. Stavitelé mohou posílit zabezpečení zkřížených můstků provedením komplexního testování před nasazením a začleněním auditů třetích stran, čímž se sníží riziko katastrofických hacků, které se v posledních několika letech objevily na zkřížených můstcích. Cross-chain bridge jsou ve světě s více řetězci zásadní, ale bezpečnost musí být primárním hlediskem při navrhování a budování efektivní Web3 infrastruktury.

Další čtení

Co je blockchainový most?

Co je interoperabilita mezi řetězci?

Tři populární kryptoměnové mosty a jak fungují

Co je zabalený token?

Zřeknutí se odpovědnosti a varování před riziky: Obsah tohoto článku jsou fakta a slouží pouze pro obecné informace a vzdělávací účely a nepředstavují žádné prohlášení ani záruku. Tento článek by neměl být vykládán jako finanční, právní nebo jiné odborné poradenství a není doporučením, abyste si zakoupili jakýkoli konkrétní produkt nebo službu. Měli byste vyhledat vlastní radu od příslušných odborných poradců. Pokud tento článek poskytl přispěvatel třetí strany, vezměte prosím na vědomí, že názory vyjádřené v tomto článku patří přispěvateli třetí strany a nemusí nutně odrážet názory Binance Academy. Pro více informací klikněte sem a přečtěte si naše úplné prohlášení o vyloučení odpovědnosti. Ceny digitálních aktiv mohou kolísat. Hodnota vaší investice může klesat i stoupat a investovaná jistina se vám nemusí vrátit. Jste výhradně odpovědní za svá vlastní investiční rozhodnutí a Binance Academy nenese odpovědnost za žádné ztráty, které můžete utrpět. Tento článek nepředstavuje finanční, právní ani jiné odborné poradenství. Další informace naleznete v našich podmínkách použití a varování před riziky.