Lebih dari $7,5 Juta Hilang dalam Serangan Honeypot Bot MEV: Analisis dan Pelacakan Dana

icon MarsBit
Bagikan
AI summary iconRingkasan

Pada 21 Juni, salah satu MEV Bot paling aktif di jaringan Ethereum, Jaredfromsubway.eth, menjadi korban serangan "honeypot" yang dirancang dengan cermat, mengalami kerugian lebih dari $7,5 juta dalam aset kripto. Berikut adalah analisis dan pelacakan aliran dana yang dicuri oleh tim keamanan Beosin terhadap serangan ini.

Analisis alur serangan

Serang keluarga kontrak

- Koordinator kontrak (0xb84db016324e8f2bfdd8dd9c260338aee0a8df52): Bertanggung jawab untuk mencatat apakah blok saat ini berada dalam status armed, serta memanggil kontrak anak secara berulang di tahap akhir untuk menarik dana. - Trigger kontrak (0x4de8c729a064ff6087cc84a4152969349e4feb98): Bertanggung jawab untuk mengatur status pasangan perdagangan palsu dalam blok yang sama, sehingga jalur arbitrase tampak dapat dieksekusi. - Kontrak anak / kontrak token palsu: Menyamar sebagai token ERC-20 normal untuk mendapatkan otorisasi nyata. - Hub kontrak: Bertanggung jawab untuk membayarkan keuntungan kecil yang nyata, agar MEV Bot merasa menguntungkan. - Pasangan Ring V2: Pasangan Uniswap v2 palsu. - Kontrak token perantara palsu: Digunakan untuk membangun jalur arbitrase multi-lompatan, seperti fCAP, fUSDC.

Kunci serangan: penipuan otorisasi

Dengan menganalisis transaksi on-chain, penyerang membuat beberapa rangkaian transaksi umpan:

- USDC besar: Robot mendapat keuntungan sekitar 36,997120 USDC, tetapi meninggalkan otorisasi 20 USDC. - USDT besar: Robot mendapat keuntungan sekitar 37,053440 USDT, tetapi meninggalkan otorisasi 20 USDT. - WETH besar: Robot mendapat keuntungan sekitar 0,0179 WETH, tetapi meninggalkan otorisasi 16 WETH. - Transaksi kecil berjalan normal, otorisasi dikonsumsi dalam transaksi yang sama untuk mengurangi kecurigaan.

Dalam perdagangan kecil, setelah robot memberikan otorisasi kuota token asli, kontrak anak akan segera memindahkan token asli tersebut, otorisasi terpakai, dan tampak sepenuhnya normal.

Dalam transaksi besar, kontrak anak tidak memanggil transferFrom untuk mentransfer token asli, tetapi langsung mencetak token palsu melalui transaksi palsu. Robot mengira telah menyelesaikan langkah pra-swap normal, tetapi otorisasi token asli tetap dipertahankan.

Ini adalah inti dari seluruh serangan: transaksi kecil secara normal menghabiskan otorisasi, sementara transaksi besar mempertahankan otorisasi.

Alur serangan

Sebagai contoh serangan perdagangan terhadap USDC:

(1) Penyerang memanggil coordinator untuk mengatur blok saat ini menjadi armed. (2) Penyerang memanggil trigger untuk memperbarui status beberapa pasangan Ring V2 palsu. (3) MEV Bot mendeteksi peluang arbitrase dan menjalankan transaksi.

Proses internal perdagangan MEV Bot sebagai berikut:

(1) Kontrak MEV Bot memberikan otorisasi kuota USDC dalam jumlah besar ke sub-kontrak tertentu. (2) MEV Bot memanggil fungsi wrapTo/wrap dari sub-kontrak. (3) Karena status saat ini adalah armed, sub-kontrak tidak menghabiskan USDC asli, melainkan mencetak token palsu ke pasangan, sementara otorisasi USDC tetap dipertahankan. (4) MEV Bot terus memanggil swap pada pasangan palsu tersebut. (5) Pasangan lompatan kedua mengirimkan token ke MEV Bot. (6) Kontrak hub membayarkan keuntungan USDC asli dalam jumlah kecil kepada MEV Bot.

Gambar

contoh persetujuan

tx hash: 0x0121e07a916c06eea3e7daf11893f3f0b95b9e1684124545ae14c32aee6029bb

Hasil yang dilihat oleh MEV Bot: sebuah transaksi arbitrase yang sukses, menghasilkan keuntungan USDC yang nyata. Namun, otorisasi USDC tetap disimpan oleh kontrak anak. Proses semacam ini diulang secara terpisah untuk USDC, USDT, dan WETH, sehingga membentuk sejumlah besar otorisasi.

Hash transaksi serangan:

0x2be8704f5a59b69e0b71f64aefdb99eb0e8ae9fb3926147c581910d71bcf3e65

Penyerang memanggil drain loop dari kontrak koordinator, dengan calldata yang berisi 66 alamat kontrak anak, serta alamat kontrak MEV Bot. Selama kontrak MEV Bot sebelumnya telah memberikan otorisasi kuota kepada kontrak anak, kontrak anak dapat langsung mentransfer token asli yang sesuai ke penyerang.

Hasil akhir:

- 20 USDC authorization telah seluruhnya digunakan - 16 WETH authorization telah seluruhnya digunakan - Sebagian otorisasi USDT masih ada, tetapi saldo USDT tidak mencukupi

Analisis Arus Dana

Setelah serangan berhasil, alamat penyerang (0x3e37f4A10d771Ba9dE44b6d301410b1BEdeA65d0) menerima $2,87M USDC, $2,04M USDT, dan 1.474 WETH. Selanjutnya, penyerang menukar stablecoin menjadi ETH dan mentransfernya ke 4 alamat berikut:

- 0xe3Da36E4bd1a5738fa5D6Ef4F0e4dF40bDeB5f17 (sekitar 1.000 ETH) - 0x74Dc5b93586D248D5Aec64b3586736FF0A0D0e65 (1.001 ETH) - 0xd8C125efCBc99408eC8723E9BBd81d1E8D39D845 (1.001 ETH) - 0x71d4416A7A85e08a5Fe7227Ca3B44Fc639e94e97 (1.423 ETH)

Di antaranya, 0xe3Da3 telah mentransfer 1.000 ETH ke Tornado Cash, sementara ETH dari tiga alamat lainnya tidak mengalami transfer lebih lanjut. Alur dana tersebut ditunjukkan seperti berikut:

Gambar

Penutup

Serangan ini menunjukkan metode serangan yang sangat canggih: penyerang tidak menyerang kode kontrak secara langsung, tetapi berdasarkan logika bisnis MEV Bot, dengan membangun skenario arbitrase yang sesuai untuk menyesatkan MEV Bot agar memberikan otorisasi yang tampaknya tidak bermasalah, kemudian mentransfer asetnya. Bagi robot arbitrase dan MEV Bot, tidak cukup hanya mengandalkan estimasi keuntungan simulasi untuk menilai keamanan rute, terutama ketika jalur arbitrase mengandung kontrak asing, token palsu, atau wrapper khusus; sebaiknya berhati-hati dan mempertimbangkan pemeriksaan wajib terhadap perubahan allowance setelah transaksi.

Lihat aslinya

Penafian: Informasi pada halaman ini mungkin telah diperoleh dari pihak ketiga dan tidak mencerminkan pandangan atau opini KuCoin. Konten ini disediakan hanya untuk tujuan informasi umum, tanpa representasi atau jaminan apa pun, dan tidak dapat ditafsirkan sebagai saran keuangan atau investasi. KuCoin tidak bertanggung jawab terhadap segala kesalahan atau kelalaian, atau hasil apa pun yang keluar dari penggunaan informasi ini. Berinvestasi di aset digital dapat berisiko. Harap mengevaluasi risiko produk dan toleransi risiko Anda secara cermat berdasarkan situasi keuangan Anda sendiri. Untuk informasi lebih lanjut, silakan lihat Ketentuan Penggunaan dan Pengungkapan Risiko.