Kerentanan penyimpanan sementara menyebabkan proyek Ethereum diserang hacker senilai 300.000 dolar.

robot
Pembuatan abstrak sedang berlangsung

Sebuah Perampokan On-Chain yang Dipicu oleh Penyimpanan Transien: Di Balik Kerugian $300.000

Pada 30 Maret 2025, sebuah proyek perdagangan leverage di jaringan Ethereum yang bernama SIR.trading diserang, mengakibatkan kerugian aset lebih dari 300.000 dolar AS. Tim keamanan melakukan analisis mendalam terhadap peristiwa ini, mengungkapkan rincian dan penyebab serangan tersebut.

Dampak Mematikan: Sebuah perampokan 300.000 dolar on-chain yang dipicu oleh penyimpanan sementara

Latar Belakang Peristiwa

Penyerang memanfaatkan fitur penyimpanan transien yang diperkenalkan dalam versi Solidity 0.8.24. Lokasi penyimpanan data baru ini bertujuan untuk menyediakan cara penyimpanan sementara yang efektif selama transaksi dengan biaya rendah. Karakteristik utama dari penyimpanan transien meliputi:

  1. Biaya gas rendah: Biaya transaksi tetap sebesar 100 gas.
  2. Persistensi dalam transaksi: Data tetap valid selama periode transaksi.
  3. Penghapusan otomatis: Setelah transaksi selesai, penyimpanan secara otomatis direset menjadi nol.

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

Sumber Serangan

Penyebab utama serangan adalah bahwa nilai yang disimpan secara sementara menggunakan tstore dalam fungsi tidak dihapus setelah pemanggilan fungsi selesai. Hal ini memungkinkan penyerang untuk membangun alamat jahat tertentu, melewati pemeriksaan izin dan mentransfer token.

Dampak Fatal: Sebuah perampokan on-chain senilai 300.000 dolar yang dipicu oleh penyimpanan transien

Proses Serangan

  1. Penyerang membuat dua token jahat A dan B, dan membuat kolam untuk kedua token tersebut di suatu DEX serta menyuntikkan likuiditas.

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

  3. Penyerang memanggil fungsi mint dari kontrak Vault, menyimpan token utang B untuk mencetak token leverage. Selama proses ini, alamat kolam DEX dan jumlah yang dicetak disimpan secara sementara.

  4. Penyerang membuat kontrak jahat dengan alamat yang sama dengan jumlah pencetakan yang disimpan secara transien sebelumnya.

  5. Penyerang menggunakan kontrak jahat untuk memanggil fungsi callback dari kontrak Vault, dan karena nilai dalam penyimpanan sementara tidak dihapus, mereka berhasil melewati pemeriksaan izin.

  6. Terakhir, penyerang secara langsung memanggil fungsi callback dari kontrak Vault melalui kontrak serangan, untuk mentransfer token lain (seperti WBTC, WETH) dan mendapatkan keuntungan.

Kejahatan On-Chain Senilai $300.000 yang Dipicu oleh Penyimpanan Transien

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

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

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

Residue Mematikan: Sebuah Perampokan 300 Ribu Dolar yang Dipicu oleh Penyimpanan Transien

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

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

Kejahatan $300,000 on-chain yang disebabkan oleh penyimpanan transien

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

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

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

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

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

Analisis Aliran Dana

Menurut data dari alat analisis on-chain, penyerang mencuri aset senilai sekitar 300.000 dolar AS, termasuk:

  • 17.814,8626 USDC
  • 1.4085 WBTC
  • 119.871 WETH

Aset-aset ini kemudian dikonversi menjadi WETH, dan akhirnya dipindahkan ke alat anonim tertentu. Sumber dana awal penyerang adalah 0.3 ETH yang dipindahkan dari alat tersebut.

Kejahatan on-chain senilai 300.000 dolar yang disebabkan oleh penyimpanan sementara

Saran Keamanan

Untuk mencegah serangan serupa, pihak proyek harus:

  1. Segera gunakan tstore(key, 0) untuk menghapus nilai di penyimpanan sementara setelah pemanggilan fungsi selesai.
  2. Memperkuat audit kode kontrak dan pengujian keamanan.
  3. Gunakan fitur bahasa yang baru diperkenalkan dengan hati-hati, dan pahami risiko potensialnya.

Peristiwa ini sekali lagi menekankan pentingnya menjaga keseimbangan antara keamanan dan penerapan teknologi baru dalam pengembangan proyek blockchain. Seiring dengan evolusi teknologi yang terus-menerus, pengembang dan ahli keamanan perlu tetap waspada untuk mengidentifikasi dan menghadapi tantangan keamanan baru dengan cepat.

ETH4.74%
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
MemeTokenGeniusvip
· 08-07 07:48
Bodoh banget menarik perhatian, langsung diluncurkan tanpa pengujian?
Lihat AsliBalas0
quiet_lurkervip
· 08-07 07:48
Satu proyek lagi ditekan ke tanah dan digosok.
Lihat AsliBalas0
PumpBeforeRugvip
· 08-07 07:48
Dengar-dengar kali ini langsung kabur~smart contract kecil celah
Lihat AsliBalas0
MEVHuntervip
· 08-07 07:48
30w ini terlalu murah, Pinjaman Flash saja malas untuk dijalankan.
Lihat AsliBalas0
ContractSurrendervip
· 08-07 07:44
Proyek lama Semua fitur baru Keren...
Lihat AsliBalas0
MissedAirdropAgainvip
· 08-07 07:42
Hah, hanya 30w yang main-main.
Lihat AsliBalas0
NeverPresentvip
· 08-07 07:27
Bug sekelas ini bisa mengecoh?
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)