Kerentanan penyimpanan sementara menyebabkan proyek Ethereum diserang sebesar 300.000 dolar. Tim keamanan menganalisis detail kunci.

robot
Pembuatan abstrak sedang berlangsung

Analisis Insiden Serangan On-Chain Senilai 300 Ribu Dolar Akibat Kerentanan Penyimpanan Transien

Pada tanggal 30 Maret 2025, sebuah proyek perdagangan berleverase di jaringan Ethereum mengalami serangan, yang mengakibatkan kerugian aset lebih dari 300.000 dolar AS. Tim keamanan telah melakukan analisis mendalam terhadap peristiwa ini, dan berikut adalah hasilnya:

Pengetahuan Dasar

Versi Solidity 0.8.24 memperkenalkan fitur penyimpanan transien (transient storage), yang merupakan lokasi penyimpanan data baru. Ciri utamanya meliputi:

  1. Biaya gas rendah: Biaya gas untuk operasi TSTORE dan TLOAD ditetapkan sebesar 100.
  2. Persistensi di dalam transaksi: Data tetap valid selama periode transaksi.
  3. Penghapusan otomatis: Penyimpanan sementara otomatis disetel ulang ke nol setelah transaksi selesai.

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

Alasan Serangan

Akar dari peristiwa ini adalah nilai yang disimpan secara transien menggunakan tstore dalam fungsi tidak dihapus setelah pemanggilan fungsi selesai. Penyerang memanfaatkan fitur ini untuk membangun alamat jahat tertentu yang dapat melewati pemeriksaan izin, sehingga dapat mengeluarkan token.

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

Langkah Serangan

  1. Penyerang membuat dua token jahat A dan B, dan menciptakan kolam untuk kedua token ini di DEX tertentu untuk menyuntikkan likuiditas.

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

  3. Penyerang memanggil fungsi mint dari kontrak Vault, menyetorkan token utang B untuk mencetak token leverage. Selama proses ini, alamat kolam DEX disimpan secara transien untuk pertama kalinya.

  4. Ketika kolam DEX melakukan operasi pertukaran, akan memanggil kembali fungsi uniswapV3SwapCallback dari kontrak Vault. Fungsi ini menggunakan tload untuk mengambil nilai dari penyimpanan sementara untuk memverifikasi identitas pemanggil, dan akan menyimpan jumlah yang dicetak ke dalam penyimpanan sementara kedua.

  5. Penyerang membuat kontrak jahat yang alamatnya sama dengan nilai penyimpanan transien kedua.

  6. Penyerang memanggil fungsi uniswapV3SwapCallback dari kontrak Vault secara langsung melalui kontrak jahat tersebut untuk mengeluarkan token. Karena nilai dalam penyimpanan transien tidak dibersihkan, hal ini menyebabkan autentikasi diterima secara keliru.

  7. Terakhir, penyerang memanggil fungsi uniswapV3SwapCallback dari kontrak Vault dengan menyerang kontrak (token A), mengeluarkan token lain dari kontrak Vault (seperti WBTC, WETH) untuk mendapatkan keuntungan.

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

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

Dampak Fatal: 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 Dolar AS di On-Chain yang Dipicu oleh Penyimpanan Transien

Residue Mematikan: Sebuah perampokan $300.000 on-chain yang dipicu oleh penyimpanan transien

Residue Mematikan: Sebuah Perampokan 300.000 Dolar AS yang Dipicu oleh Penyimpanan Transien

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

Dampak Fatal: Sebuah Perampokan Senilai 300 Ribu Dolar yang Dipicu oleh Penyimpanan Transien

Kejahatan On-Chain Senilai 300 Ribu Dolar yang Dipicu oleh Penyimpanan Transien

Residue Mematikan: Sebuah Perampokan 300.000 Dolar on-chain yang Dipicu oleh Penyimpanan Transien

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

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

Analisis Aliran Dana

Menurut analisis alat anti pencucian uang dan pelacakan on-chain, penyerang telah mencuri sekitar 300.000 dolar aset, termasuk:

  • 17.814,8626 USDC
  • 1.4085 WBTC
  • 119.871 WETH

Kemudian, penyerang menukarkan WBTC dan USDC menjadi WETH, dengan total 193.1428 WETH yang dipindahkan ke suatu alat pencampur. Sumber dana awal penyerang berasal dari 0.3 ETH yang dipindahkan ke alat pencampur tersebut.

Dampak Fatal: Sebuah Perampokan $300,000 on-chain yang Dipicu oleh Penyimpanan Transien

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

Saran Keamanan

  1. Pihak proyek harus segera menggunakan tstore(key, 0) untuk menghapus nilai dalam penyimpanan sementara setelah pemanggilan fungsi selesai berdasarkan logika bisnis.

  2. Memperkuat audit kode kontrak dan pengujian keamanan, untuk menghindari kerentanan serupa.

  3. Gunakan fitur baru dengan hati-hati, dan pahami risiko potensialnya.

  4. Membangun mekanisme verifikasi ganda, jangan hanya bergantung pada satu metode verifikasi identitas.

  5. Secara berkala melakukan evaluasi keamanan dan pemindaian kerentanan, serta segera memperbaiki masalah yang ditemukan.

Kejadian serangan kali ini sekali lagi menekankan pentingnya proyek blockchain untuk berhati-hati saat menggunakan fitur teknologi baru, sekaligus menyoroti pentingnya audit keamanan yang berkelanjutan. Para pengembang harus selalu memperhatikan praktik terbaik keamanan terbaru dan secara ketat mengikuti dalam implementasi kode.

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
  • 7
  • Bagikan
Komentar
0/400
DegenWhisperervip
· 21jam yang lalu
Dianggap Bodoh satu hari lagi dimulai
Lihat AsliBalas0
PensionDestroyervip
· 21jam yang lalu
30w sudah menguntungkan
Lihat AsliBalas0
AirDropMissedvip
· 21jam yang lalu
Sudah dipermainkan lagi dengan sekelompok suckers.
Lihat AsliBalas0
ruggedNotShruggedvip
· 22jam yang lalu
Pola pikirnya kecil, sekarang serangan sekecil ini pun tidak dianggap penting.
Lihat AsliBalas0
SillyWhalevip
· 22jam yang lalu
Sekali lagi, proyek kecil telah dianggap bodoh.
Lihat AsliBalas0
RugPullAlarmvip
· 22jam yang lalu
Satu lagi kontrak yang tidak dibersihkan dengan baik dan terungkap.
Lihat AsliBalas0
SwingingLittleLeekvip
· 22jam yang lalu
Baru-baru ini Ethereum bergerak di atas 3000+! Ke depan, akan terus berada di atas 3000+
Lihat AsliBalas0
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)