Jaotus: kuidas häkker varastas 80 XNUMX ETH Solana Wormhole'i ​​sillalt PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Jaotus: kuidas häkker varastas Solana Wormhole'i ​​sillalt 80 XNUMX ETH-d

Üks hullemaid hacks Solana plokiahela vastu juhtus kolmapäeval, kui häkkeril õnnestus 80,000 214 eetrit (ETH), kirjutamise hetkel üle XNUMX miljoni dollari, Solana süsteemist välja kanda Ethereumi plokiahelasse Wormhole'i ​​silla kaudu – teenus, mis võimaldab ülekandeid. raha erinevate plokiahelate vahel.

Selgitatakse säutsus niit pseudonüümiga Twitteri profiili kaudu nutilepingud, viis häkker ärakasutamise lõpule, kandes Ethereumi Wormhole'i ​​nutilepingust välja 80,000 XNUMX ETH ühe korraga. tehing. Nagu selgus, oli see alles viimane samm häkkimiste seerias, mis võimaldas häkkeril raha varastada. 

"Kuigi see on dramaatiline, on see tehing alles huvitava sündmuste jada lõpp. Pidin hakkama tagurpidi töötama, et aru saada, kuidas see üldse võimalik oli,” säutsus smartcontracts.

Eestkostjad allkirjastasid valeülekande

Ussiauk on nn sild, a arukas leping, antud juhul Ethereumis, mis annab võimaluse krüptovarade liigutamiseks erinevate plokiahelate vahel. Nutikate lepingute kohaselt on Wormhole'il kõrgetasemelisest vaatenurgast konkreetselt nn eestkostjate komplekt, kes allkirjastavad plokiahelate vahelise ülekande.

Wormhole'i ​​eestkostjad olid selle 80,000 100 ETH ülekande kuidagi alla kirjutanud, nagu oleks see XNUMX% legitiimne.

“Tehing, mis tõi välja 80,000 XNUMX ETH oli tegelikult ründaja, kes kandis Solanast Ethereumi 80,000 XNUMX ETH-d. Arvasin algselt, et leping võis ülekande allkirju valesti kinnitada, kuid allkirjad kontrolliti täielikult.

Nutilepingute järgi tuli esimene läbimurre ja osaline seletus a tehing Solanal, mis millegipärast vermis eikusagilt 120,000 XNUMX "Wormhole ETH", mis pakkis Solanal eetrit. Kuna häkker suutis Solanas Wormhole ETH vermida, suutis ta selle õigesti Ethereumi tagasi tõmmata.

"Solana on kuidagi imelik"

Häkkeri tehingute ajalugu uurides on tehing, mis toimus vahetult enne 120,000 XNUMX Wormhole ETH vermimist. Selles tehing, häkker vermib vaid 0.1 Wormhole ETH, nagu häkker testiks funktsiooni väikese kogusega.

Häkkeri tehinguajaloo täiendav uurimine näitab, et häkker tegi a hoius 0.1 ETH Ethereumist sisse Solana. Kuigi ründaja ei teinud Ethereumi Wormhole'i ​​nutilepingusse 120,000 XNUMX ETH sissemakset, on selles deposiidis midagi huvitavat.

Nagu smartcontract oma säutsus selgitab, käivitasid Solanas Wormhole ETH-i verminud tehingud Wormhole'i ​​nutika lepingu funktsioon nimega “täielik_pakitud“. Üks selle funktsiooni parameetritest on "edastusteade", põhimõtteliselt a sõnum allkirjastatud silla valvurite poolt, mis ütleb, millist märgi vermida ja kui palju.

"Solana on kuidagi imelik, nii et need parameetrid on tegelikult arukad lepingud ise. Kuid oluline on see, kuidas need "edastussõnumi" lepingud luuakse. Siin on tehing mis tegi 0.1 ETH edastussõnumi,” säutsus smartcontracts.

Kes kontrollib kabet?

See "edastussõnumi" leping luuakse käivitades a funktsioon nimega “post_vaa“. Kõige olulisem on see, et post_vaa kontrollib eestkostjate allkirju kontrollides, kas sõnum on kehtiv. Smartcontracts ütleb, et see osa tundub piisavalt mõistlik, kuid just see allkirja kontrollimise samm rikkus kõik.

Funktsioon "post_vaa" tegelikult allkirju ei kontrolli. Selle asemel, tüüpilisel Solana moel, on olemas teine ​​nutikas leping, mis luuakse helistadesverify_signatures" funktsioon. Üks neist sisendite funktsiooni "verify_signatures" jaoks on Solana sisseehitatud "süsteemi" programm, mis sisaldab erinevaid utiliite, mida leping saab kasutada.

Rakenduses "verify_signatures" üritab programm Wormhole kontrollida, kas täitmine, mis toimus vahetult enne selle funktsiooni käivitamist, oli Secp256k1 allkirja kontrollimise funktsioon käivitati.

"See kinnitusfunktsioon on sisseehitatud tööriist, mis peaks kontrollima, kas antud allkirjad on õiged. Seega on allkirjade kontrollimine antud programmile allhanke korras. Aga siin tuleb viga sisse,” säutsub smartcontracts.

Ussiaugu lepingud kasutasid funktsiooni load_instruction_at et kontrollida, kas funktsioon Secp256k1 kutsuti esmalt välja, kuid funktsioon load_instruction_at kaotati suhteliselt hiljuti, kuna see ei kontrolli, kas see töötab tegeliku süsteemiaadressi alusel!

Mäng on läbi

Nutilepingute järgi peaks helistaja pakkuma as sisend käivitatava programmi süsteemiaadress, kuid häkker andis teistsuguse süsteemiaadressi.

Siin on süsteemiaadress, mida kasutatakse 0.1 ETH legitiimse sissemakse jaoks „verify_signatures” sisendina:

Õige süsteemiaadressi sisestus
Õige süsteemiaadressi sisestus

Siin on aga 120 XNUMX ETH suuruse võltstagatise tehing „verify_signatures”.

Süsteemi aadressi sisestamine
Vale süsteemiaadressi sisestus 

See pole süsteemi aadress!

"Seda "võlts" süsteemiprogrammi kasutades võis ründaja tõhusalt valetada, et allkirjade kontrollimise programm käivitati. Allkirju ei kontrollitud üldse!,” säutsus smartcontracts.

"Pärast seda punkti oli mäng läbi. Ründaja jättis mulje, nagu oleksid eestkostjad sõlminud 120 80 sissemakse Solanal asuvasse Wormhole'i, kuigi nad seda ei teinud. Kõik, mida ründaja pidi nüüd tegema, oli muuta oma mänguraha reaalseks, võttes selle tagasi Ethereumi. Ja üks 10 XNUMX ETH + XNUMX XNUMX ETH eemaldamine hiljem (kõik Ethereumi sillas) oli kõik kadunud.

everdome

CryptoSlate'i uudiskiri

Sisaldab kokkuvõtet kõige olulisematest päevalugudest krüpto, DeFi, NFT-de ja muu maailmas.

saada serv krüptoteenuste turul

Igas artiklis saate makstud liikmena juurde rohkem krüptoteadmisi ja konteksti CryptoSlate Edge.

Ahelanalüüs

Hinnapildid

Rohkem konteksti

Liituge nüüd hinnaga $ 19 / kuu Uurige kõiki eeliseid

Allikas: https://cryptoslate.com/breakdown-how-the-hacker-stole-80k-eth-from-the-solana-wormhole-bridge/

Ajatempel:

Veel alates Krüptoslaat