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.
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.
Proses Serangan
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.
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.
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.
Membuat kontrak jahat: Penyerang membuat alamat yang memiliki kontrak jahat dengan jumlah yang sama dengan yang dicetak dalam penyimpanan sementara.
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.
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.
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.
Saran Keamanan
Gunakan penyimpanan transien dengan bijak: Pihak proyek harus segera menggunakan tstore(key, 0) untuk menghapus nilai dari penyimpanan transien setelah pemanggilan fungsi selesai.
Perkuat audit kontrak: Harus melakukan audit dan pengujian keamanan menyeluruh terhadap kode kontrak proyek untuk menemukan dan memperbaiki potensi kerentanan.
Memperbaiki verifikasi izin: Terapkan mekanisme verifikasi ganda dalam operasi penting, untuk menghindari verifikasi tunggal yang dapat dilewati.
Memantau aktivitas yang mencurigakan: menerapkan sistem pemantauan waktu nyata untuk mendeteksi dan merespons transaksi yang mencurigakan dengan cepat.
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.
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.
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.
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.
Proses Serangan
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.
Saran Keamanan
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.