Rumah >web3.0 >Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token

Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token

WBOY
WBOYke hadapan
2024-04-24 14:43:22861semak imbas

Pada 19 April 2024, kontrak Tuntutan Token Hedgey telah diserang pada berbilang rantaian seperti Ethereum dan Arbitrum, mengakibatkan kerugian berpuluh-puluh juta dolar. Pasukan projek Hedgey segera mengeluarkan amaran keselamatan, mengingatkan pengguna yang mencipta aktiviti tuntutan token untuk membatalkan aktiviti tuntutan token melalui saluran rasmi. (https://twitter.com/hedgeyfinance/status/1781257581488418862)

Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token

Serangan Taklimat

Hedgey membantu DAOs-to-inken dan on-channel syiling diedarkan kepada pasukan, penyumbang, pelabur dan komuniti mereka. Alat yang menyebabkan kerentanan berlaku kali ini ialah produk Tuntutan Tokennya, yang membolehkan pengguna membuat halaman tuntutan token, menambah lebih daripada 100,000 penerima pada senarai putih melalui fail CSV dan mengawal cara menghantar aliran, kunci masa, Token yang dituntut boleh dikeluarkan melalui kitar semula atau kaedah lain.

Kerentanan kontrak yang dieksploitasi oleh serangan ini ialah apabila kontrak ClaimCampaigns dalam produk Tuntutan Token mencipta peristiwa tuntutan token, ia membenarkan tokennya ke alamat yang ditentukan oleh pencipta. Apabila pencipta membatalkan tuntutan acara, token yang dipindahkan oleh pencipta semasa fasa penciptaan acara dikembalikan ke alamat lain yang ditentukan oleh pencipta, tetapi kebenaran token tidak dibatalkan, menyebabkan alamat pencipta acara masih boleh menggunakan maklumat tersebut dibenarkan oleh kontrak ClaimCampaigns.

Alamat utama yang terlibat dalam serangan

Serangan ini melibatkan berbilang transaksi Kami hanya menggunakan transaksi berikut untuk mencuri token NOBL sebagai contoh untuk menganalisis prinsip serangan.

Urus niaga serangan: https://etherscan.io/tx/0x017ce9593350cba65d506e1a87e52d2c20079fdfa80a350a89fe6fc875f2d9f9

0 xded2b1a426e1b7d415a40bcad44e98f47181dda2

Penyerang (kontrak):

0xd818ff3014cb928014c92801b9301

Kontrak Terdedah ( Kempen Tuntutan):

0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511

Token Dicuri (NobleBlocks: Token NOBL🜎🜎🜎

8): 3 42ebaf661b3e2836b807c8cb1b3195

Analisis proses serangan

1.

Pelaksanaan serangan

Dalam peringkat pelaksanaan serangan, Penyerang berulang kali memanggil fungsi "createLockedCampaign" bagi kontrak yang terdedah untuk membuat kempen, dan kemudian memanggil fungsi "cancelCampaign" untuk memadamkan kempen. Apabila membuat kempen, penyerang memindahkan bilangan token NOBL tertentu kepada kontrak kerentanan dan memperoleh had penggunaan token NOBL yang dibenarkan oleh kontrak kerentanan. Apabila kempen dipadamkan, kontrak kerentanan mengembalikan token NOBL yang dipindahkan oleh penyerang semasa membuat kempen Namun, pada masa ini, kontrak kerentanan tidak membatalkan had penggunaan token NOBL yang dibenarkan kepada penyerang. Oleh itu, dengan mencipta kempen dan kemudian memadamkan kempen, penyerang boleh mendapatkan kuasa untuk membelanjakan token NOBL yang dipegang oleh kontrak yang mudah terjejas.

Langkah serangan khusus adalah seperti berikut:

    Penyerang memanggil fungsi "createLockedCampaign" bagi kontrak yang terdedah untuk mencipta kempen dan menetapkan kedua-dua "campaign.manager" dan "claimLockup.tokenLocker" dalam parameter kepada penyerang sendiri, dan menetapkan "campaign.token" " ditetapkan kepada token NOBL, " campaign.amount " ditetapkan kepada " 680000000000000000000000 " (perpuluhan token NOBL ialah 18, jadi ini mewakili 680,000 token NOBL) dan " derma.amount. ditetapkan kepada 0. Seperti yang dapat dilihat daripada kod fungsi "createLockedCampaign", penyerang mula-mula memindahkan token NOBL kepada kontrak yang terdedah, dan kemudian menggunakan fungsi "safeIncreaseAllowance" untuk membenarkan kontrak yang terdedah kepada "claimLockup.tokenLocker" (penyerang) untuk membelanjakan dana yang dipegang oleh kontrak yang terdedah Kuasa token NOBL membenarkan penyerang dengan jumlah "kempen.jumlah".
  1. Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token

  2. Penyerang memanggil fungsi "cancelCampaign" untuk memadam kempen yang dibuat dalam langkah 1. Seperti yang dapat dilihat daripada kod fungsi, kontrak yang terdedah memadamkan data kempen dan memanggil fungsi "withdrawTokens" bagi Pustaka TransferHelper untuk memadamkan kempen dalam langkah 1. Dalam langkah ini, token NOBL yang dipindahkan oleh penyerang dikembalikan kepada "campaign.manager" (penyerang). Pada ketika ini, kempen telah berjaya dibatalkan Walau bagaimanapun, kuota penggunaan token NOBL yang dibenarkan oleh kontrak kelemahan kepada penyerang dalam langkah 1 belum dipadamkan secara serentak. Oleh itu, penyerang juga mempunyai kuasa untuk membelanjakan token NOBL kontrak yang terdedah pada masa ini.

    Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token

    Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token

  3. Penyerang mengulangi langkah 1 dan 2 sebanyak 25 kali, dan akhirnya memperoleh kuota penggunaan 680000 * 25 = 17000000 token NOBL daripada kontrak yang terdedah. . Disebabkan oleh serangan semasa peringkat pelaksanaan serangan Penyerang telah mendapat hak untuk membelanjakan token NOBL yang dipegang oleh kontrak yang terdedah, jadi pengesahan had dalam fungsi "transferFrom" boleh lulus dengan lancar, dan akhirnya penyerang berjaya mencuri token NOBL dalam kontrak yang terdedah.

  4. Sila semak transaksi untuk butiran khusus:
https://etherscan.io/tx/0x47da1ac72d488f746865891c9196c1632ae04f018b285b762b2b564ad1d3a9e5d1d3a9e5

Melalui analisis data ZAN KYT, penyerang sebelum mengambil token NOBL daripada yang terdedah kontrak , menggunakan kelemahan kontrak untuk membenarkan kontrak yang terdedah memberi penyerang meluluskan cincang transaksi token seperti berikut (hanya urus niaga di Ethereum disenaraikan):

Pada masa ini, penyerang telah memindahkan sebahagian daripada keuntungan haram ke alamat lain 0xd84f48b7D1AaFA7bd5905c95c5d1ffB2625AdA46

, tiada tindakan lain buat masa ini. Pembangun kontrak tuntutan (

0x5a4bC2bdA1f6B9929b6efdCef4728246bEc4C635) menghubungi penyerang melalui sembang Blockscan, mengakui kelemahan dalam kontrak dan menganggap kelakuan mereka adalah operasi topi putih, dengan harapan penyerang akan menghubungi mereka dalam masa 24 jam.

Syor Keselamatan

Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran tokenDengan menganalisis insiden serangan ini, kami mempunyai cadangan berikut:

Semak dengan ketat operasi kebenaran token dalam projek. Pembangun projek dan juruaudit kontrak harus menjelaskan senario perniagaan yang memerlukan kebenaran token dan senario perniagaan yang memerlukan kebenaran token dikitar semula untuk mengelakkan kebenaran token yang tidak dipulihkan atau kebenaran berlebihan yang tidak dijangka daripada digunakan oleh penyerang.

Projek harus menyediakan mekanisme penggantungan kecemasan. Adalah disyorkan bahawa projek yang melibatkan peredaran modal mewujudkan mekanisme penggantungan yang lengkap supaya kerugian dapat dihentikan dalam masa apabila serangan berlaku.

Artikel ini ditulis bersama oleh Cara (akaun X @Cara6289) dan XiG (akaun X @SHXiGi) dari ZAN Team.

    Atas ialah kandungan terperinci Analisis insiden serangan Hedgey: kehilangan berpuluh juta dolar dalam kebenaran token. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:panewslab.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam