Kelemahan penyimpanan transien menyebabkan proyek diserang senilai 300.000 dolar AS, keamanan on-chain kembali membunyikan alarm.

Kerentanan penyimpanan sementara menyebabkan proyek on-chain diserang sebesar 300.000 dolar

Pada 30 Maret 2025, sebuah proyek perdagangan leverage di Ethereum mengalami serangan, dengan kerugian lebih dari 300.000 dolar AS. Tim keamanan melakukan analisis mendalam terhadap kejadian ini, berikut adalah temuan terkait:

Latar Belakang Peristiwa

Penyerang memanfaatkan celah dalam fitur penyimpanan transien yang diperkenalkan di versi Solidity 0.8.24, yaitu (transient storage). Penyimpanan transien adalah lokasi penyimpanan data baru yang dirancang untuk menyediakan cara penyimpanan sementara yang efektif selama transaksi dengan biaya rendah. Ini diimplementasikan melalui instruksi TSTORE dan TLOAD, dengan biaya gas yang rendah, ketahanan dalam transaksi, dan penghapusan otomatis.

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

Sumber Serangan

Penyebab mendasar dari serangan ini adalah bahwa nilai yang disimpan secara transien menggunakan tstore dalam fungsi tidak dihapus setelah pemanggilan fungsi selesai. Penyerang memanfaatkan karakteristik ini untuk membangun alamat jahat tertentu untuk melewati pemeriksaan izin, sehingga dapat mentransfer token dalam proyek.

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

Proses Serangan

  1. Membuat token jahat dan membangun kolam perdagangan: Penyerang membuat dua token jahat A dan B, dan membuat kolam untuk kedua token ini di DEX tertentu serta menyuntikkan likuiditas.

Kejahatan On-chain $300.000 yang Dipicu oleh Penyimpanan Transien

  1. Inisialisasi pasar perdagangan leverage: Penyerang memanggil fungsi initialize dari kontrak proyek untuk membuat pasar perdagangan leverage dengan token A sebagai jaminan dan token B sebagai token utang.

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

  1. Mencetak token leverage: Penyerang memanggil fungsi mint, menyetor token utang B untuk mencetak token leverage. Selama proses ini, alamat kolam DEX dan jumlah yang dicetak disimpan secara sementara.

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

  1. Membuat kontrak jahat: Penyerang membuat alamat yang memiliki kontrak jahat dengan jumlah yang sama dengan yang dicetak dalam penyimpanan sementara.

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

  1. Melewati verifikasi izin: Penyerang memanggil fungsi callback kontrak proyek melalui kontrak jahat, dan karena nilai dalam penyimpanan sementara tidak dihapus, pemeriksaan izin dilalui secara salah.

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

  1. Mengeluarkan Aset: Akhirnya, penyerang memanggil fungsi callback kontrak proyek secara langsung melalui serangan kontrak, untuk mengeluarkan token lain dari kontrak (seperti WBTC, WETH) dan meraih keuntungan.

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

Penilaian Kerugian

Menurut data dari alat analisis on-chain, penyerang mencuri aset sekitar 300.000 dolar AS, termasuk 17.814,8626 USDC, 1,4085 WBTC, dan 119,871 WETH. Aset-aset ini kemudian ditukarkan dan dipindahkan ke suatu sistem anonim.

Residual Memorable: Sebuah perampokan on-chain senilai 300.000 dolar AS yang dipicu oleh penyimpanan sementara

Saran Keamanan

  1. Gunakan penyimpanan transien dengan bijak: Pihak proyek harus segera menggunakan tstore(key, 0) untuk menghapus nilai dari penyimpanan transien setelah pemanggilan fungsi selesai.

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

  1. Perkuat audit kontrak: Harus melakukan audit dan pengujian keamanan menyeluruh terhadap kode kontrak proyek untuk menemukan dan memperbaiki potensi kerentanan.

Dampak Fatal: Sebuah Perampokan 300 Ribu Dolar di On-chain yang Dipicu oleh Penyimpanan Transien

  1. Memperbaiki verifikasi izin: Terapkan mekanisme verifikasi ganda dalam operasi penting, untuk menghindari verifikasi tunggal yang dapat dilewati.

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

  1. Memantau aktivitas yang mencurigakan: menerapkan sistem pemantauan waktu nyata untuk mendeteksi dan merespons transaksi yang mencurigakan dengan cepat.

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

Kejadian ini sekali lagi menekankan pentingnya melakukan evaluasi keamanan yang komprehensif saat mengadopsi fitur teknologi baru. Seiring dengan perkembangan teknologi blockchain yang terus menerus, pihak proyek perlu tetap waspada dan terus memperbarui praktik keamanan untuk menghadapi metode serangan yang terus berkembang.

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

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

Residual Memfatal: Sebuah pencurian on-chain senilai 300.000 dolar yang disebabkan oleh penyimpanan transien

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

WBTC-0.04%
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
  • 3
  • Bagikan
Komentar
0/400
GasBankruptervip
· 07-27 11:42
Satu lagi lubang besar yang bermasalah
Lihat AsliBalas0
WalletDivorcervip
· 07-25 07:46
Uang yang hilang adalah pelajaran.
Lihat AsliBalas0
MetaMuskRatvip
· 07-25 07:31
Pelajaran yang cukup mahal ya
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)