Sammenbrudd: Hvordan hackeren stjal 80k ETH fra Solana Wormhole-broen PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Sammenbrudd: Hvordan hackeren stjal 80k ETH fra Solana Wormhole-broen

En av de verste hacks mot Solana-blokkjeden skjedde onsdag da en hacker klarte å overføre 80,000 214 eter (ETH), over XNUMX millioner dollar i skrivende stund, ut av Solana-systemet og inn i Ethereum-blokkjeden gjennom Wormhole-broen – en tjeneste som gir muligheten til å overføre midler mellom de ulike blokkjedene.

Forklart i en tweet tråden av den pseudonyme Twitter-profilen smarte kontrakter, fullførte hackeren utnyttelsen ved å overføre 80,000 XNUMX ETH ut av Wormhole smart-kontrakten på Ethereum i en enkelt Transaksjonen. Som det viste seg, var dette bare det siste trekket i en rekke hacks som gjorde det mulig for hackeren å stjele midlene. 

"Selv om det er dramatisk, er denne transaksjonen bare slutten på en interessant serie med hendelser. Jeg måtte begynne å jobbe meg bakover for å finne ut hvordan dette i det hele tatt var mulig, skriver smartcontracts på Twitter.

Guardians signerte en falsk overføring

Ormehull er en såkalt bro, en smart kontrakt, på Ethereum i dette tilfellet, som gir en måte å flytte kryptoaktiva mellom forskjellige blokkkjeder. I følge smartkontrakter, fra et høyt nivå, har Wormhole spesifikt et sett med såkalte foresatte som signerer på overføringer mellom blokkjedene.

Wormhole-foresatte hadde på en eller annen måte meldt seg på denne 80,000 100 ETH-overføringen som om den var XNUMX % legitim.

"Transaksjonen som trakk ut 80,000 ETH var faktisk angriperen som overførte 80,000 XNUMX ETH fra Solana til Ethereum. Jeg trodde opprinnelig at kontrakten kunne ha feilaktig validert signaturene på overføringen, men signaturene [ble] sjekket ut fullstendig.»

I følge smartcontracts kom det første gjennombruddet og delforklaringen fra en Transaksjonen på Solana som på en eller annen måte preget 120,000 XNUMX «Ormhull ETH», pakket eter på Solana, fra ingensteds. Siden hackeren var i stand til å prege Wormhole ETH på Solana, var han i stand til å trekke den tilbake til Ethereum på riktig måte.

“Solana er litt rart”

Ved å undersøke hackerens transaksjonshistorikk, er det en transaksjon som kom rett før pregingen av 120,000 XNUMX Wormhole ETH. I dette Transaksjonen, hackeren lager kun 0.1 Wormhole ETH, som om hackeren testet funksjonen med en liten mengde.

En ytterligere undersøkelse av hackerens transaksjonshistorikk avslører at hackeren gjorde en innskudd på 0.1 ETH fra Ethereum til Solana. Selv om angriperen ikke gjorde et ETH-innskudd på 120,000 XNUMX ETH i Wormhole smart-kontrakten på Ethereum, er det noe interessant med dette innskuddet.

Som smartcontract forklarer i tweeten sin, utløste transaksjonene som preget Wormhole ETH på Solana en Wormhole smart kontrakt funksjon kalt "komplett_innpakket". En av parameterne som denne funksjonen tar er en "overføringsmelding", i utgangspunktet en melding signert av vokterne av broen som sier hvilken brikke som skal preges og hvor mye.

"Solana er litt rart, så disse parameterne er faktisk smarte kontrakter i seg selv. Men det viktige er hvordan disse "overføringsmeldings"-kontraktene blir opprettet. Her er Transaksjonen som gjorde 0.1 ETH-overføringsmeldingen," tvitrer smartcontracts.

Hvem sjekker brikkene?

Denne "overføringsmelding"-kontrakten opprettes ved å utløse en funksjon kalt "post_vaa". Det viktigste er at post_vaa sjekker om meldingen er gyldig ved å sjekke signaturene fra foresatte. Den delen virker rimelig nok, sier smartcontracts, men det er dette signaturkontrolltrinnet som brøt alt.

"post_vaa"-funksjonen sjekker faktisk ikke signaturene. I stedet, på typisk Solana-vis, er det en annen smart kontrakt som blir opprettet ved å kalle "verifisere_signaturer" funksjon. En av innganger til «verify_signatures»-funksjonen er et Solana innebygd «system»-program som inneholder ulike verktøy kontrakten kan bruke.

Innenfor "verify_signatures" prøver Wormhole-programmet å sjekke at utførelsen som skjedde rett før denne funksjonen ble utløst, var at Secp256k1 signaturverifiseringsfunksjonen ble utført.

"Denne verifiseringsfunksjonen er et innebygd verktøy som skal verifisere at de gitte signaturene er korrekte. Så signaturverifiseringen har blitt outsourcet til dette programmet. Men det er her feilen kommer inn», tvitrer smartcontracts.

Ormehullskontraktene brukte funksjonen load_instruction_at for å sjekke at Secp256k1-funksjonen ble kalt først, men load_instruction_at-funksjonen ble avviklet relativt nylig fordi den sjekker ikke at den kjøres mot den faktiske systemadressen!

Spillet er slutt

I følge smartkontrakter skal den som ringer oppgi som inngang systemadressen til programmet som kjøres, men hackeren oppga en annen systemadresse.

Her er den systemadressen som brukes som input for "verify_signatures" for det legitime innskuddet på 0.1 ETH:

Riktig systemadresseinntasting
Riktig systemadresseinntasting

Men her er "verify_signatures"-transaksjonen for det falske innskuddet på 120k ETH:

Systemadresseinngang
Falsk systemadresseinngang 

Det er ikke systemadressen!

"Ved å bruke dette "falske" systemprogrammet kunne angriperen effektivt lyve om det faktum at signatursjekkprogrammet ble utført. Signaturene ble ikke sjekket i det hele tatt!», tvitrer smartcontracts.

«Etter det punktet var spillet over. Angriperen fikk det til å se ut som vokterne hadde meldt seg på et depositum på 120k i Wormhole på Solana, selv om de ikke hadde gjort det. Alt angriperen trengte å gjøre nå var å gjøre "leke"-pengene sine ekte ved å trekke dem tilbake til Ethereum. Og ett uttak av 80k ETH + 10k ETH senere (alt i broen på Ethereum), alt var borte."

everdome

CryptoSlate nyhetsbrev

Med et sammendrag av de viktigste daglige historiene i verden av krypto, DeFi, NFT og mer.

Få en kant på kryptoasset-markedet

Få tilgang til mer kryptoinnsikt og kontekst i hver artikkel som betalt medlem av CryptoSlate Edge.

Analyse på kjeden

Pris øyeblikksbilder

Mer sammenheng

Bli med nå for $ 19 / måned Utforsk alle fordelene

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

Tidstempel:

Mer fra CryptoSlate