OrionProtocol mengalami serangan reentrancy dengan kerugian 2,9 juta dolar AS. Keamanan smart contract kembali menjadi peringatan.

Analisis Kejadian Serangan Re-entrancy pada OrionProtocol

Pada 2 Februari 2023 sore, OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan total kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan fungsi callback dari kontrak token yang mereka buat, berhasil melewati mekanisme keamanan bursa.

Proses Serangan

  1. Penyerang pertama-tama membuat kontrak token khusus.

  2. Meminjam dana melalui bursa terdesentralisasi tertentu dan menggunakan fungsi pertukaran token OrionProtocol.

  3. Selama proses penukaran, kontrak token penyerang memicu callback, yang mengakibatkan pemanggilan fungsi deposit secara berulang, menyebabkan sistem secara keliru menambahkan jumlah deposit.

  4. Terakhir, penyerang menarik dana berlebih dan menyelesaikan serangan.

Analisis Serangan Re-entrancy OrionProtocol dengan PoC

Analisis Kerentanan

Masalah utama terletak pada fungsi doSwapThroughOrionPool dari OrionProtocol. Fungsi ini memperbarui saldo setelah melakukan transfer token, tetapi tidak mempertimbangkan risiko reentrancy yang mungkin ada. Penyerang dengan membuat token palsu yang memiliki fungsi callback dapat memanggil fungsi depositAsset berulang kali selama proses transfer, sehingga mengakibatkan perhitungan saldo yang salah.

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Serangan Re-Entry OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Serangan Re-entrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Arah Aliran Dana

Dari 1651 ETH yang diperoleh dari serangan, 657,5 ETH masih tersisa di dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran. Sumber dana awal berasal dari dompet panas salah satu platform perdagangan besar.

Analisis serangan reentrancy OrionProtocol dengan PoC

Saran Keamanan

  1. Tulis kontrak pintar mengikuti pola "Cek-Dampak-Interaksi" (Checks-Effects-Interactions).

  2. Untuk fungsi yang melibatkan pertukaran token, perlu mempertimbangkan secara menyeluruh berbagai jenis token dan potensi risiko keamanan yang mungkin ditimbulkan oleh jalur pertukaran.

  3. Menerapkan mekanisme pembaruan saldo yang lebih ketat untuk mencegah serangan reentrancy.

  4. Melakukan audit keamanan pihak ketiga secara berkala untuk mendeteksi dan memperbaiki kerentanan yang mungkin ada.

Kejadian kali ini mengingatkan kita bahwa keamanan kontrak pintar sangat penting dalam ekosistem DeFi yang kompleks. Pihak proyek perlu terus memperbaiki langkah-langkah keamanan untuk menghadapi metode serangan yang semakin kompleks.

Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Hadiah
  • 7
  • Bagikan
Komentar
0/400
FUDwatchervip
· 8jam yang lalu
Jebakan terlalu lama, sangat pump.
Lihat AsliBalas0
GhostChainLoyalistvip
· 07-03 09:43
Masalah yang sudah sering dibicarakan.
Lihat AsliBalas0
TooScaredToSellvip
· 07-02 03:57
Kontrak telah disikat lagi
Lihat AsliBalas0
HalfIsEmptyvip
· 07-02 03:57
Satu lagi orang baru yang dipermainkan
Lihat AsliBalas0
PonziDetectorvip
· 07-02 03:53
Kasus serangan reentrancy lainnya
Lihat AsliBalas0
GasFeeVictimvip
· 07-02 03:51
Jebakan lama datang lagi
Lihat AsliBalas0
RetiredMinervip
· 07-02 03:31
Operasi reentrancy klasik
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)