OrionProtocol mengalami serangan reentrancy dengan kerugian sekitar 2,9 juta dolar AS

Analisis Insiden Serangan Re-entrancy pada OrionProtocol

Pada tanggal 2 Februari 2023 pukul 15:40:20 UTC, OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak. Penyerang memperoleh keuntungan sebesar 2.844.766 USDT dari jaringan Ethereum dan 191.606 BUSD dari Binance Smart Chain, dengan total kerugian sekitar 2,9 juta dolar AS.

Analisis Proses Serangan

Penyerang pertama-tama menerapkan kontrak Token kustom dan melakukan serangkaian persiapan. Selanjutnya, penyerang meminjam dana melalui fungsi swap dari DEX tertentu, dan memanggil metode OrionProtocol's ExchangeWithAtomic.swapThroughOrionPool untuk menukar token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang, yang menanamkan benih untuk serangan callback selanjutnya.

Dalam proses pertukaran, karena kontrak Token penyerang mengandung logika callback, setiap transfer akan memicu panggilan reentrancy ke metode ExchangeWithAtomic.depositAsset. Ini menyebabkan jumlah setoran terakumulasi berkali-kali, dan akhirnya penyerang mendapatkan keuntungan berlebih melalui operasi penarikan.

Analisis serangan reentrancy OrionProtocol beserta PoC

Arah Aliran Dana

Modal awal penyerang berasal dari dompet panas di suatu platform perdagangan. Setelah serangan berhasil, dari 1.651 ETH yang diperoleh, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran koin.

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Kerentanan

Inti dari celah tersebut terletak pada fungsi doSwapThroughOrionPool dan _doSwapTokens dalam kontrak ExchangeWithAtomic. Fungsi-fungsi ini hanya memperbarui variabel curBalance setelah melakukan transfer token, memberikan kesempatan bagi penyerang untuk melakukan serangan reentrancy. Penyerang dengan menambahkan logika callback di fungsi transfer Token kustom, menyebabkan curBalance diperbarui secara salah, sehingga setelah mengembalikan pinjaman kilat, mereka masih dapat menarik dana tambahan.

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Serangan Re-entrancy OrionProtocol dengan PoC

Analisis Serangan Re-Entrancy OrionProtocol dengan PoC

Reproduksi Serangan

Peneliti telah menyediakan sebagian kode POC yang mensimulasikan proses serangan. Hasil pengujian menunjukkan bahwa penyerang berhasil memanfaatkan celah kontrak untuk mendapatkan USDT tambahan.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Saran Keamanan

Untuk serangan semacam ini, disarankan kepada pihak proyek:

  1. Saat mengimplementasikan fungsi pertukaran token dalam kontrak, perlu mempertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai jenis Token dan jalur pertukaran.
  2. Mematuhi dengan ketat pola pengkodean "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), yaitu terlebih dahulu melakukan pemeriksaan kondisi, kemudian memperbarui variabel status, dan akhirnya melakukan panggilan eksternal.
  3. Gunakan kunci re-entrancy atau mekanisme serupa sebelum memperbarui variabel status penting untuk mencegah serangan re-entrancy.
  4. Melakukan audit kode dan pengujian keamanan secara berkala untuk mendeteksi dan memperbaiki potensi kerentanan secara tepat waktu.

Kejadian ini sekali lagi menyoroti pentingnya keamanan kontrak pintar. Pihak proyek harus terus memperhatikan masalah keamanan, mengambil langkah-langkah perlindungan yang komprehensif, untuk memastikan keamanan aset pengguna dan perkembangan stabil jangka panjang proyek.

TOKEN1.17%
ETH0.75%
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
  • 10
  • Posting ulang
  • Bagikan
Komentar
0/400
ColdWalletGuardianvip
· 08-14 12:21
Kelemahan sulit untuk dihindari.
Lihat AsliBalas0
NestedFoxvip
· 08-14 11:36
Ini benar-benar mengejutkan, ya?
Lihat AsliBalas0
ImpermanentLossEnjoyervip
· 08-14 11:01
Impermanent Loss sehari-hari
Lihat AsliBalas0
rug_connoisseurvip
· 08-12 04:38
Satu lagi smart contract gagal.
Lihat AsliBalas0
SchroedingerGasvip
· 08-11 18:57
Siapa yang dicukur lagi?
Lihat AsliBalas0
DAOTruantvip
· 08-11 18:57
Satu lagi kontrak telah dicuri.
Lihat AsliBalas0
MainnetDelayedAgainvip
· 08-11 18:56
Satu lagi kasus yang masuk ke database statistik, seharusnya tidak terjadi.
Lihat AsliBalas0
GateUser-5854de8bvip
· 08-11 18:51
Kontrak dicuri lagi...
Lihat AsliBalas0
MEV_Whisperervip
· 08-11 18:51
Ini adalah re-entry, aku pergi!
Lihat AsliBalas0
SignatureVerifiervip
· 08-11 18:37
*sigh* kegagalan reentrancy buku teks lainnya. secara statistik tidak terhindarkan dengan pemeriksaan validasi yang tidak memadai. jujur saja, saya sudah melihat ini datang.
Lihat AsliBalas0
Lihat Lebih Banyak
  • 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)