Kekurangan penyimpanan transien menyebabkan proyek Perdagangan Margin mengalami perampokan on-chain senilai 300.000 dolar.

robot
Pembuatan abstrak sedang berlangsung

Residual Mematikan: Kasus Perampokan $300.000 di on-chain yang Diterbitkan oleh Penyimpanan Transien

Pada 30 Maret 2025, sebuah perampokan on-chain senilai lebih dari 300.000 dolar AS terjadi di jaringan Ethereum. Menurut sistem pemantauan keamanan, proyek perdagangan terleverage SIR.trading diserang dan mengalami kerugian besar. Tim keamanan telah melakukan analisis mendalam terhadap peristiwa ini dan sekarang mengumumkan hasil penyelidikan sebagai berikut.

Dampak Mematikan: Sebuah Perampokan 300.000 Dolar AS di on-chain yang Dipicu oleh Penyimpanan Transien

Latar Belakang Peristiwa

Versi Solidity 0.8.24 yang diluncurkan pada Januari 2024 memperkenalkan fitur penyimpanan sementara (transient storage). Ini adalah lokasi penyimpanan data baru yang dirancang untuk memberikan cara penyimpanan sementara yang efisien biaya dan efektif selama transaksi bagi para pengembang. Penyimpanan sementara diimplementasikan melalui dua instruksi EVM baru, TSTORE dan TLOAD, yang memiliki biaya gas rendah, ketahanan dalam transaksi, dan kemampuan untuk secara otomatis menghapus.

Dampak Fatal: Sebuah Perampokan $300.000 yang Dipicu oleh Penyimpanan Transien

Alasan Serangan

Penyebab mendasar dari peristiwa ini adalah bahwa nilai yang digunakan dalam fungsi tstore untuk penyimpanan sementara tidak dihapus setelah pemanggilan fungsi selesai. Penyerang memanfaatkan karakteristik ini untuk membangun alamat jahat tertentu yang dapat melewati pemeriksaan izin, berhasil mentransfer token.

Kejahatan on-chain senilai 300 ribu dolar yang disebabkan oleh penyimpanan transien

Proses Serangan

  1. Penyerang membuat dua token jahat A dan B, dan di suatu DEX membuat kolam untuk kedua token tersebut dengan menyuntikkan likuiditas, di mana token A adalah kontrak serangan.

  2. Penyerang memanggil fungsi initialize dari kontrak Vault, menggunakan token A sebagai token jaminan, dan token B sebagai token utang untuk membuat pasar perdagangan leverage APE-21.

  3. Penyerang memanggil fungsi mint dari kontrak Vault, menyetor token utang B untuk mencetak token leverage APE. Dalam proses ini, alamat kolam DEX dan jumlah yang dicetak disimpan secara berurutan dalam penyimpanan sementara.

  4. Penyerang membuat kontrak jahat yang alamatnya sama dengan jumlah minting yang disimpan secara transien sebelumnya.

  5. Penyerang memanggil fungsi uniswapV3SwapCallback dari kontrak Vault secara langsung melalui kontrak jahat tersebut untuk mengeluarkan token. Karena nilai dalam penyimpanan transien tidak dibersihkan, pemeriksaan identitas dilalui secara salah.

  6. Terakhir, penyerang memanggil fungsi uniswapV3SwapCallback dari kontrak Vault melalui serangan kontrak (token A), untuk mengeluarkan token lain dari kontrak Vault (WBTC, WETH) dan mendapatkan keuntungan.

Residual Memes: Sebuah perampokan $300.000 on-chain yang dipicu oleh penyimpanan transien

Residue Mematikan: Sebuah Perampokan $300.000 yang Dipicu oleh Penyimpanan Transien

Dampak Mematikan: Sebuah Perampokan $300.000 on-chain yang Dipicu oleh Penyimpanan Transien

Residue Mematikan: Sebuah Perampokan 300.000 Dolar di On-Chain yang Dipicu oleh Penyimpanan Transien

Kejahatan On-Chain Senilai $300,000 yang Disebabkan oleh Penyimpanan Transien

Kejahatan $300.000 di on-chain yang dipicu oleh penyimpanan transien

Residual Fatal: Sebuah perampokan $300.000 yang dipicu oleh penyimpanan transien on-chain

Dampak Fatal: Sebuah Perampokan $300.000 on-chain yang Dipicu oleh Penyimpanan Transien

Residual Memorable: Sebuah perampokan 300 ribu dolar on-chain yang dipicu oleh penyimpanan transien

Residue Fatal: Sebuah Perampokan 300.000 Dolar AS di On-Chain yang Dipicu oleh Penyimpanan Transien

Dampak Mematikan: Sebuah Perampokan 300.000 Dolar on-chain yang Dipicu oleh Penyimpanan Sementara

Penyisihan Mematikan: Sebuah Perampokan $300.000 di on-chain yang Dipicu oleh Penyimpanan Transien

Analisis Aliran Dana

Menurut data dari alat analisis on-chain, penyerang mencuri sekitar 300.000 dolar aset, termasuk 17.814,8626 USDC, 1,4085 WBTC, dan 119,871 WETH. Selanjutnya, penyerang menukar dan mentransfer aset-aset ini:

  • WBTC ditukarkan menjadi 63.5596 WETH
  • USDC ditukar menjadi 9.7122 WETH
  • Sebanyak 193.1428 WETH telah ditransfer ke jaringan anonim tertentu

Perlu dicatat bahwa sumber dana awal penyerang berasal dari 0,3 ETH yang ditransfer dari jaringan anonim tertentu.

Residual Fatal: Sebuah perampokan 300.000 dolar AS on-chain yang dipicu oleh penyimpanan transien

Residue Mematikan: Sebuah Perampokan $300.000 yang Dipicu oleh Penyimpanan Transien

Ringkasan dan Saran

Serangan ini memanfaatkan sifat penyimpanan sementara yang tetap tidak berubah selama seluruh transaksi, berhasil menghindari verifikasi izin fungsi panggilan balik. Untuk mencegah kejadian serupa, disarankan kepada pihak proyek:

  1. Berdasarkan logika bisnis, segera gunakan tstore(key, 0) untuk menghapus nilai dalam penyimpanan sementara setelah pemanggilan fungsi selesai.
  2. Memperkuat audit kode kontrak dan pengujian keamanan, dengan fokus khusus pada risiko penggunaan fitur baru.
  3. Implementasikan mekanisme verifikasi ganda, tidak hanya bergantung pada pemeriksaan identitas tunggal.
  4. Secara berkala melakukan penilaian keamanan, untuk menemukan dan memperbaiki kerentanan potensial dengan tepat waktu.

Kejadian ini kembali mengingatkan kita untuk berhati-hati saat mengadopsi teknologi baru, dengan melakukan evaluasi menyeluruh terhadap dampak keamanannya. Sementara itu, audit keamanan yang berkelanjutan dan manajemen risiko sangat penting untuk melindungi aset pengguna.

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 4
  • Bagikan
Komentar
0/400
P2ENotWorkingvip
· 07-20 21:17
tim proyek lagi tidur nyenyak
Lihat AsliBalas0
BlockchainRetirementHomevip
· 07-20 21:16
Lagi melihat smart contract Dianggap Bodoh
Lihat AsliBalas0
DYORMastervip
· 07-20 20:49
Tampilannya bagus tapi tidak berguna, tidak ada yang memeriksa kodenya.
Lihat AsliBalas0
DecentralizedEldervip
· 07-20 20:47
Kalau sudah dibawa ya sudah, proyek ini memang sangat buruk.
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)