Kerusakan: Bagaimana peretas mencuri 80k ETH dari jembatan Solana Wormhole PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Kerusakan: Bagaimana peretas mencuri 80k ETH dari jembatan Solana Wormhole

Salah satu yang terburuk hacks terhadap blockchain Solana terjadi pada hari Rabu ketika seorang peretas berhasil mentransfer 80,000 ether (ETH), lebih dari $214 juta pada saat penulisan, keluar dari sistem Solana dan ke dalam blockchain Ethereum melalui jembatan Wormhole โ€“ sebuah layanan yang menyediakan kemampuan untuk mentransfer dana antara blockchain yang berbeda.

Dijelaskan dalam tweet benang oleh profil Twitter pseudonim kontrak pintar, peretas menyelesaikan eksploitasi dengan mentransfer 80,000 ETH dari kontrak pintar Wormhole di Ethereum dalam satu .. Ternyata, ini hanyalah langkah terakhir dalam serangkaian peretasan yang memungkinkan peretas mencuri dana. 

โ€œMeskipun dramatis, transaksi ini hanyalah akhir dari rangkaian acara yang menarik. Saya harus mulai bekerja mundur untuk mencari tahu bagaimana ini bisa terjadi, โ€tweet smartcontracts.

Wali menandatangani transfer palsu

Lubang cacing adalah apa yang disebut jembatan, a kontrak pintar, di Ethereum dalam hal ini, yang menyediakan cara untuk memindahkan aset kripto di antara berbagai blockchain. Menurut kontrak pintar, dari sudut pandang tingkat tinggi, Wormhole secara khusus memiliki seperangkat penjaga yang disebut bersama yang menandatangani transfer antar blockchain.

Penjaga Wormhole entah bagaimana telah menandatangani transfer 80,000 ETH ini seolah-olah itu 100% sah.

โ€œTransaksi yang menarik 80,000 ETH sebenarnya adalah penyerang yang mentransfer 80,000 ETH dari Solana ke Ethereum. Saya awalnya berpikir bahwa kontrak itu mungkin salah memvalidasi tanda tangan pada transfer, tetapi tanda tangan itu benar-benar diperiksa.โ€

Menurut kontrak pintar, terobosan pertama dan penjelasan parsial datang dari a . pada Solana yang entah bagaimana mencetak 120,000 โ€œWormhole ETHโ€, membungkus ether pada Solana, entah dari mana. Karena peretas dapat mencetak Wormhole ETH di Solana, ia dapat menariknya kembali ke Ethereum dengan benar.

โ€œSolana agak anehโ€

Meneliti riwayat transaksi peretas, ada transaksi yang terjadi tepat sebelum pencetakan 120,000 Wormhole ETH. Di dalam ., peretas hanya mencetak 0.1 Wormhole ETH, seolah-olah peretas sedang menguji fungsi dengan jumlah kecil.

Pemeriksaan lebih lanjut dari riwayat transaksi peretas mengungkapkan bahwa peretas memang melakukan deposit 0.1 ETH dari Ethereum ke beranda. Meskipun penyerang tidak melakukan setoran ETH sebesar 120,000 ETH ke dalam kontrak pintar Wormhole di Ethereum, ada sesuatu yang menarik tentang setoran ini.

Seperti yang dijelaskan smartcontract dalam tweetnya, transaksi yang mencetak Wormhole ETH di Solana memicu kontrak pintar Wormhole fungsi disebut "selesai_dibungkusโ€œ. Salah satu parameter yang dibutuhkan fungsi ini adalah "pesan transfer", pada dasarnya a pesan ditandatangani oleh penjaga jembatan yang mengatakan token mana yang harus dicetak dan berapa banyak.

โ€œSolana agak aneh, jadi parameter ini sebenarnya adalah kontrak pintar itu sendiri. Tetapi yang penting adalah bagaimana kontrak "pesan transfer" ini dibuat. ini dia . yang membuat pesan transfer 0.1 ETH,โ€ tweet smartcontracts.

Siapa yang memeriksa catur?

Kontrak "pesan transfer" ini dibuat dengan memicu fungsi disebut "post_vaaโ€œ. Yang paling penting adalah post_vaa memeriksa apakah pesan itu valid dengan memeriksa tanda tangan dari wali. Bagian itu tampaknya cukup masuk akal, kata smartcontracts, tetapi langkah pemeriksaan tanda tangan inilah yang merusak segalanya.

Fungsi "post_vaa" sebenarnya tidak memeriksa tanda tangan. Sebagai gantinya, dengan gaya khas Solana, ada kontrak pintar lain yang dibuat dengan memanggil "verifikasi_tanda tangan" fungsi. Salah satunya input ke fungsi "verify_signatures" adalah program "sistem" bawaan Solana yang berisi berbagai utilitas yang dapat digunakan kontrak.

Dalam โ€œverify_signaturesโ€, program Wormhole mencoba memeriksa apakah eksekusi yang terjadi tepat sebelum fungsi ini dipicu, apakah Bagian256k1 fungsi verifikasi tanda tangan dijalankan.

โ€œFungsi verifikasi ini adalah alat bawaan yang seharusnya memverifikasi bahwa tanda tangan yang diberikan sudah benar. Jadi verifikasi tanda tangan telah dialihdayakan ke program ini. Tapi di sinilah bug masuk, โ€tweet smartcontracts.

Kontrak Wormhole menggunakan fungsi beban_instruksi_at untuk memeriksa apakah fungsi Secp256k1 dipanggil terlebih dahulu, tetapi fungsi load_instruction_at relatif baru-baru ini tidak digunakan lagi karena tidak memeriksa apakah itu dijalankan terhadap alamat sistem yang sebenarnya!

Game Over

Menurut kontrak pintar, penelepon seharusnya memberikan memasukkan alamat sistem ke program yang sedang dieksekusi, tetapi peretas memberikan alamat sistem yang berbeda.

Inilah alamat sistem yang digunakan sebagai input untuk "verify_signatures" untuk deposit sah 0.1 ETH:

Masukan alamat sistem yang benar
Masukan alamat sistem yang benar

Tapi inilah transaksi "verify_signatures" untuk deposit palsu 120rb ETH:

Masukan alamat sistem
Masukan alamat sistem salah 

Itu bukan alamat sistem!

โ€œDengan menggunakan program sistem โ€œpalsuโ€ ini, penyerang dapat secara efektif berbohong tentang fakta bahwa program pemeriksaan tanda tangan dijalankan. Tanda tangan tidak diperiksa sama sekali!,โ€ tweet smartcontracts.

โ€œSetelah poin itu, permainan berakhir. Penyerang membuatnya tampak seperti penjaga telah menandatangani deposit 120k ke dalam Wormhole di Solana, meskipun mereka tidak melakukannya. Yang perlu dilakukan penyerang sekarang adalah membuat uang โ€œpermainanโ€ mereka menjadi nyata dengan menariknya kembali ke Ethereum. Dan satu penarikan 80k ETH + 10k ETH kemudian (semua yang ada di jembatan di Ethereum), semuanya hilang.

everdome

Newsletter CryptoSlate

Menampilkan ringkasan kisah harian terpenting di dunia crypto, DeFi, NFT, dan lainnya.

Mendapatkan tepi di pasar aset kripto

Akses lebih banyak wawasan dan konteks kripto di setiap artikel sebagai anggota berbayar Tepi CryptoSlate.

Analisis rantai

Cuplikan harga

Lebih banyak konteks

Bergabunglah sekarang dengan $ 19 / bulan Jelajahi semua manfaat

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

Stempel Waktu:

Lebih dari KriptoSlate