Czym S膮 Typowe Luki w Zabezpieczeniach Most贸w?
Strona G艂贸wna
Artyku艂y
Czym S膮 Typowe Luki w Zabezpieczeniach Most贸w?

Czym S膮 Typowe Luki w Zabezpieczeniach Most贸w?

Zaawansowany
Opublikowane Mar 22, 2023Zaktualizowane Jun 15, 2023
9m

Ten artyku艂 zosta艂 nades艂any przez cz艂onk贸w spo艂eczno艣ci. Autorem jest Minzhi He, audytor w CertiK.

Pogl膮dy zawarte w tym artykule s膮 pogl膮dami autora/wsp贸艂autora i nie musz膮 odzwierciedla膰 pogl膮d贸w Akademii Binance.

TL;DR

Mosty Blockchain s膮 krytyczne dla osi膮gni臋cia interoperacyjno艣ci w przestrzeni blockchain. St膮d bezpiecze艅stwo mostu ma ogromne znaczenie. Niekt贸re powszechne luki w zabezpieczeniach most贸w obejmuj膮 s艂ab膮 walidacj臋 on-chain i off-chain, niew艂a艣ciw膮 obs艂ug臋 natywnych token贸w i b艂臋dn膮 konfiguracj臋. Testowanie mostu przeciwko wszystkim mo偶liwym wektorom ataku, jest zalecane w celu zapewnienia solidnej logiki weryfikacji.

Wprowadzenie聽

Most blockchain to protok贸艂 艂膮cz膮cy dwa blockchainy, w celu umo偶liwienia interakcji mi臋dzy nimi. Je艣li posiadasz bitcoina, ale chcesz uczestniczy膰 w aktywno艣ci DeFi w sieci Ethereum, most blockchain pozwala zrobi膰 to, bez sprzedawania swojego bitcoina.聽

Mosty Blockchaina s膮 fundamentalne dla osi膮gni臋cia interoperacyjno艣ci w przestrzeni blockchaina. Funkcjonuj膮 one przy u偶yciu r贸偶nych walidacji on-chain i off-chain, a zatem maj膮 r贸偶ne luki w zabezpieczeniach.

Dlaczego Bezpiecze艅stwo Mostu Jest Krytycznie Wa偶ne?聽

Most zazwyczaj przechowuje token, kt贸ry u偶ytkownik chce przenie艣膰 z jednego 艂a艅cucha do drugiego. Cz臋sto wdra偶ane jako smart kontrakty, mosty trzymaj膮 znaczn膮 ilo艣膰 token贸w w miar臋 gromadzenia si臋 transfer贸w cross-chain, co czyni je lukratywnymi celami dla haker贸w.聽

Ponadto, mosty blockchain maj膮 du偶膮 powierzchni臋 mo偶liwego ataku, poniewa偶 obejmuj膮 wiele komponent贸w. Maj膮c to na uwadze, oszu艣ci s膮 wysoce zmotywowani, aby obra膰 za cel aplikacje typu cross-chain, w celu wyprowadzenia du偶ych sum pieni臋dzy.聽

Ataki na mosty doprowadzi艂y w 2022 roku do strat w wysoko艣ci ponad 1,3 mld USD, stanowi膮c 36% wszystkich strat w tym roku - wynika z szacunk贸w CertiK.聽

Typowe Luki w Zabezpieczeniach Most贸w

Aby zwi臋kszy膰 bezpiecze艅stwo most贸w, warto zrozumie膰 typowe luki w zabezpieczeniach most贸w i przetestowa膰 je pod tym k膮tem, przed uruchomieniem. Te luki w zabezpieczeniach mo偶na podzieli膰 na nast臋puj膮ce cztery obszary.聽

S艂aba walidacja on-chain

W przypadku prostych most贸w, zw艂aszcza tych zaprojektowanych dla konkretnych DApps, walidacja on-chain jest ograniczona do minimum. Mosty te polegaj膮 na scentralizowanym zapleczu w celu wykonania podstawowych operacji, takich jak mintowanie, wypalanie i transfery token贸w, podczas gdy wszystkie weryfikacje s膮 wykonywane off-chain.

W przeciwie艅stwie do tego, inne rodzaje most贸w u偶ywaj膮 smart kontrakt贸w do walidowania wiadomo艣ci i wykonywania weryfikacji on-chain. W tym scenariuszu, gdy u偶ytkownik wp艂aca 艣rodki do 艂a艅cucha, smart kontrakt generuje podpisan膮 wiadomo艣膰 i zwraca podpis w transakcji. Podpis ten s艂u偶y jako dow贸d wp艂aty i jest u偶ywany do weryfikacji 偶膮dania wyp艂aty przez u偶ytkownika na drugim 艂a艅cuchu. Proces ten powinien by膰 w stanie zapobiec r贸偶nym atakom przeciwko bezpiecze艅stwu, w tym atakom typu replay i fa艂szowaniu zapis贸w depozytowych.聽

Je艣li jednak istnieje luka w trakcie procesu walidacji on-chain, atakuj膮cy mo偶e wyrz膮dzi膰 powa偶ne szkody. Na przyk艂ad, je艣li most u偶ywa drzewa Merkle do walidacji rekordu transakcji, atakuj膮cy mo偶e wygenerowa膰 sfa艂szowane dowody. Oznacza to, 偶e mog膮 oni omin膮膰 walidacj臋 dowodu i mintowa膰 nowe tokeny na swoje konto, je艣li proces walidacji jest wra偶liwy.

Niekt贸re mosty implementuj膮 koncepcj臋 "wrappowanych token贸w." Na przyk艂ad, gdy u偶ytkownik przekazuje DAI z Ethereum do BNB Chain, jego DAI jest pobierane z kontraktu Ethereum, a r贸wnowa偶na ilo艣膰 wrappowanego DAI jest emitowana na BNB Chain.聽

Jednak偶e, je艣li ta transakcja nie jest prawid艂owo zatwierdzona, atakuj膮cy m贸g艂by wdro偶y膰 z艂o艣liwy kontrakt, aby skierowa膰 wrappowane tokeny z mostu na nieprawid艂owy adres, poprzez manipulacj臋 funkcj膮.聽

Atakuj膮cy potrzebuj膮 r贸wnie偶 ofiar do zatwierdzenia kontraktu mostowego, aby przenie艣膰 tokeny za pomoc膮 funkcji "transferFrom",w celu wyci膮gni臋cia aktyw贸w z kontraktu mostowego.聽

Niestety, jest gorzej, poniewa偶 wiele most贸w 偶膮da niesko艅czonej akceptacji token贸w od u偶ytkownik贸w DApp. Jest to powszechna praktyka, kt贸ra obni偶a op艂aty gas, ale stwarza dodatkowe ryzyka, umo偶liwiaj膮c smart kontraktowi dost臋p do nieograniczonej liczby token贸w z portfela u偶ytkownika. Atakuj膮cy s膮 w stanie wykorzysta膰 brak walidacji i nadmiern膮 akceptacj臋, aby przenie艣膰 tokeny od innych u偶ytkownik贸w do siebie.

S艂aba walidacja off-chain

W niekt贸rych systemach mostowych, serwer zaplecza off-chain odgrywa krytyczn膮 rol臋 w weryfikacji zasadno艣ci wiadomo艣ci wysy艂anych z blockchaina. W tym przypadku, skupiamy si臋 na weryfikacji transakcji depozytowych.聽

Most blockchain z walidacj膮 off-chain, dzia艂a w nast臋puj膮cy spos贸b:聽

  1. U偶ytkownicy wchodz膮 w interakcj臋 z DApp, aby zdeponowa膰 tokeny do smart kontraktu na 艂a艅cuchu 藕r贸d艂owym.

  2. DApp nast臋pnie wysy艂a hash transakcji depozytowej do serwera zaplecza, poprzez API.

  3. Hash transakcji podlega kilku walidacjom przez serwer. Je艣li zostanie uznany za uzasadniony, podpisuj膮cy potwierdza wiadomo艣膰 i wysy艂a podpis z powrotem do interfejsu u偶ytkownika poprzez API.

  4. Po otrzymaniu podpisu, DApp weryfikuje go i pozwala u偶ytkownikowi na wycofanie swoich token贸w z 艂a艅cucha docelowego.

Serwer backend musi zapewni膰, 偶e transakcja depozytowa, kt贸r膮 przetwarza, rzeczywi艣cie mia艂a miejsce i nie zosta艂a sfa艂szowana. Taki serwer zaplecza okre艣la, czy u偶ytkownik mo偶e wyp艂aci膰 tokeny na 艂a艅cuchu docelowym i dlatego jest celem o wysokiej warto艣ci dla atakuj膮cych.

Serwer backend musi zatwierdzi膰 struktur臋 emitowanego zdarzenia transakcji, a tak偶e adres kontraktu, kt贸ry emitowa艂 zdarzenie. Je艣li to ostatnie zostanie zaniedbane, atakuj膮cy m贸g艂by wdro偶y膰 z艂o艣liwy kontrakt, aby sfa艂szowa膰 zdarzenie depozytowe o takiej samej strukturze, jak legalne zdarzenie depozytowe.聽

Je艣li serwer backend nie zweryfikuje, kt贸ry adres wyemitowa艂 zdarzenie, uzna to za wa偶n膮 transakcj臋 i podpisze wiadomo艣膰. Atakuj膮cy m贸g艂by nast臋pnie wys艂a膰 hash transakcji do zaplecza, omijaj膮c weryfikacj臋 i umo偶liwiaj膮c mu wycofanie token贸w z 艂a艅cucha docelowego.

Nieprawid艂owa obs艂uga token贸w natywnych

Mosty przyjmuj膮 r贸偶ne podej艣cia do obs艂ugi token贸w natywnych i token贸w u偶ytkowych. Na przyk艂ad, w sieci Ethereum natywnym tokenem jest ETH a wi臋kszo艣膰 token贸w u偶ytkowych przestrzega standardu ERC-20.聽

Kiedy u偶ytkownik zamierza przenie艣膰 swoje ETH do innego 艂a艅cucha, musi najpierw zdeponowa膰 je do kontraktu mostowego. Aby to osi膮gn膮膰, u偶ytkownik po prostu do艂膮cza ETH do transakcji, a ilo艣膰 ETH mo偶na pobra膰, czytaj膮c pole "msg.value" transakcji.

Deponowanie token贸w ERC-20 r贸偶ni si臋 znacz膮co od deponowania ETH. Aby zdeponowa膰 token ERC-20, u偶ytkownik musi najpierw zezwoli膰 na wydanie swoich token贸w w kontrakcie mostowym. Po zatwierdzeniu i zdeponowaniu token贸w do kontraktu pomostowego, kontrakt wypali tokeny u偶ytkownika za pomoc膮 funkcji "burnFrom()" lub przeka偶e token u偶ytkownika do kontraktu, za pomoc膮 funkcji "transferFrom()".聽

Jednym z podej艣膰 do r贸偶nicowania tego, jest u偶ycie instrukcji if-else w ramach tej samej funkcji. Innym podej艣ciem jest stworzenie dw贸ch oddzielnych funkcji do obs艂ugi ka偶dego scenariusza. Pr贸ba zdeponowania ETH za pomoc膮 funkcji depozytu ERC-20, mo偶e spowodowa膰 utrat臋 tych 艣rodk贸w.

Podczas obs艂ugi 偶膮da艅 depozytu ERC-20, u偶ytkownicy zazwyczaj podaj膮 adres tokena jako wej艣cie do funkcji depozytu. Stanowi to istotne zagro偶enie, poniewa偶 podczas transakcji mog膮 pojawi膰 si臋 niezaufane po艂膮czenia zewn臋trzne. Wdro偶enie whitelisty, kt贸ra obejmuje tylko tokeny obs艂ugiwane przez most, jest powszechn膮 praktyk膮 w celu zminimalizowania ryzyka. Tylko adresy z whitelisty mog膮 by膰 przekazywane jako argumenty. Zapobiega to zewn臋trznym po艂膮czeniom, poniewa偶 zesp贸艂 projektowy ma ju偶 przefiltrowany adres tokena.

Jednak problemy mog膮 r贸wnie偶 pojawi膰 si臋, gdy mosty obs艂uguj膮 transfer cross-chain tokena natywnego, poniewa偶 token natywny nie ma adresu. Adres zerowy (0x000...0) jest reprezentatywny dla tokena natywnego. Mo偶e to by膰 problematyczne, poniewa偶 przekazanie zerowego adresu do funkcji mo偶e omin膮膰 weryfikacj臋 whitelisty, nawet je艣li zostanie wdro偶one nieprawid艂owo.聽

Kiedy kontrakt mostowy wywo艂uje "transferFrom", aby przenie艣膰 aktywa u偶ytkownika do kontraktu, zewn臋trzne wywo艂anie adresu zerowego wraca b艂臋dne, poniewa偶 nie ma funkcji "transferFrom" zaimplementowanej w adresie zerowym. Jednak transakcja mo偶e nadal wyst臋powa膰, je艣li kontrakt nie obs艂uguje prawid艂owo warto艣ci zwrotnej. Stwarza to mo偶liwo艣膰 wykonania transakcji przez atakuj膮cych, bez przekazania jakichkolwiek token贸w do kontraktu.

B艂臋dna Konfiguracja

W wi臋kszo艣ci most贸w blockchain, ich uprzywilejowan膮 rol膮 jest odpowiedzialno艣膰 za wprowadzanie token贸w i adres贸w na whitelist臋 lub czarn膮 list臋, przypisywanie lub zmian臋 sygnatariuszy i inne krytyczne konfiguracje. Upewnienie si臋, 偶e wszystkie konfiguracje s膮 dok艂adne jest kluczowe, poniewa偶 nawet pozornie b艂ahe przeoczenia mog膮 prowadzi膰 do znacznych strat.

W rzeczywisto艣ci dosz艂o do incydentu, w kt贸rym atakuj膮cy omin膮艂 z powodzeniem weryfikacj臋 rekordu transferu, ze wzgl臋du na b艂臋dn膮 konfiguracj臋. Zesp贸艂 projektowy na kilka dni przed w艂amaniem wdro偶y艂 aktualizacj臋 protoko艂u, kt贸ra polega艂a na zmianie pewnej zmiennej. Zmienna zosta艂a u偶yta do reprezentowania domy艣lnej warto艣ci zaufanej wiadomo艣ci. Zmiana ta powodowa艂a, 偶e wszystkie wiadomo艣ci by艂y automatycznie uznawane za sprawdzone, co pozwala艂o atakuj膮cemu na przes艂anie arbitralnej wiadomo艣ci i przej艣cie procesu weryfikacji.

Jak Zwi臋kszy膰 Bezpiecze艅stwo Most贸w

Cztery powszechne luki w zabezpieczeniach most贸w wyja艣nione powy偶ej, pokazuj膮 wyzwania zwi膮zane z zapewnieniem bezpiecze艅stwa w po艂膮czonym ekosystemie blockchain. W przypadku ka偶dej z tych podatno艣ci, nale偶y wzi膮膰 pod uwag臋 wiele czynnik贸w i nie mo偶na zastosowa膰 jednego podr臋cznika do wszystkich z nich.聽

Na przyk艂ad, dostarczenie og贸lnych wytycznych w celu zapewnienia bezb艂臋dnego procesu weryfikacji stanowi wyzwanie, poniewa偶 ka偶dy most ma unikalne wymagania dotycz膮ce weryfikacji. Najbardziej skutecznym podej艣ciem do zapobiegania obej艣ciu weryfikacji jest dok艂adne przetestowanie mostu przeciwko wszystkim mo偶liwym wektorom ataku i zapewnienie, 偶e logika weryfikacji jest solidna.聽

Podsumowuj膮c, nale偶y przeprowadzi膰 rygorystyczne testy przed potencjalnymi atakami i zwr贸ci膰 szczeg贸ln膮 uwag臋 na najcz臋艣ciej wyst臋puj膮ce luki bezpiecze艅stwa w mostach.聽聽

Przemy艣lenia Ko艅cowe聽

Ze wzgl臋du na swoj膮 wysok膮 warto艣膰, mosty cross-chain od dawna s膮 celem dla atakuj膮cych. Buduj膮cy mog膮 wzmocni膰 bezpiecze艅stwo swoich most贸w, przeprowadzaj膮c dok艂adne testy przed wdro偶eniem i anga偶uj膮c si臋 w audyty stron zewn臋trznych, zmniejszaj膮c ryzyko niszcz膮cych w艂ama艅, kt贸re n臋ka艂y mosty w ci膮gu ostatnich kilku lat. Mosty s膮 krytyczne w 艣wiecie wielu 艂a艅cuch贸w, ale bezpiecze艅stwo musi by膰 g艂贸wnym priorytetem, podczas projektowania i budowania efektywnej infrastruktury Web3.

Dalsza Lektura

Czym Jest Blockchainowy Most?

Czym Jest Interoperacyjno艣膰 Mi臋dzy艂a艅cuchowa?

Trzy Popularne Mosty Krypto i Spos贸b Ich Dzia艂ania

Czym S膮 Wrappowane Tokeny?

Wy艂膮czenie Odpowiedzialno艣ci i Ostrze偶enie o Ryzyku: Niniejsza tre艣膰 jest prezentowana w stanie takim jakim jest, wy艂膮cznie w celach og贸lnoinformacyjnych i edukacyjnych, bez jakichkolwiek gwarancji. Nie nale偶y jej interpretowa膰 jako porady finansowej, prawnej ani innej porady specjalistycznej i nie ma ona r贸wnie偶 charakteru zach臋ty do zakupu jakiegokolwiek konkretnego produktu lub us艂ugi. Powiniene艣(-a艣) zasi臋gn膮膰 w艂asnej porady u odpowiednich zawodowych doradc贸w. Je偶eli artyku艂 jest napisany przez osob臋 z zewn膮trz, nale偶y pami臋ta膰, 偶e wyra偶one pogl膮dy s膮 pogl膮dami tej osoby i nie musz膮 odzwierciedla膰 pogl膮d贸w Akademii Binance. Wi臋cej informacji mo偶na znale藕膰 w naszym pe艂nym wy艂膮czeniu odpowiedzialno艣ci tutaj. Ceny aktyw贸w cyfrowych mog膮 by膰 zmienne. Warto艣膰 Twojej inwestycji mo偶e spa艣膰 lub wzrosn膮膰 i mo偶esz nie odzyska膰 zainwestowanej kwoty. Ponosisz wy艂膮czn膮 odpowiedzialno艣膰 za swoje decyzje inwestycyjne, a Akademia Binance nie ponosi odpowiedzialno艣ci za jakiekolwiek straty, jakie mo偶esz ponie艣膰. To nie jest porada z zakresu finans贸w, prawa ani innej dziedziny. Aby uzyska膰 wi臋cej informacji, zapoznaj si臋 z naszymi Warunkami U偶ytkowania i Ostrze偶eniem o Ryzyku.