OrionProtocol mengalami serangan reentrancy yang mengakibatkan kerugian aset sebesar 2,9 juta dolar AS

robot
Pembuatan abstrak sedang berlangsung

Analisis Peristiwa Serangan Reentrancy OrionProtocol

Pada 2 Februari 2023 sore, proyek OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat celah kontrak, dengan total kerugian sekitar 2,9 juta dolar AS, termasuk 2.844.766 USDT di Ethereum dan 191.606 BUSD di Binance Smart Chain.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Proses Serangan

Penyerang pertama-tama menyebarkan kontrak Token khusus dan melakukan serangkaian persiapan. Selanjutnya, penyerang meminjam dana melalui fungsi swap di suatu DEX, dan memanggil metode OrionProtocol's ExchangeWithAtomic.swapThroughOrionPool untuk menukar token. Jalur penukaran mencakup alamat kontrak Token yang dibuat oleh penyerang, yang mempersiapkan untuk serangan callback selanjutnya.

Dalam proses penukaran, karena kontrak Token penyerang mengandung logika callback, menyebabkan pemanggilan ulang metode ExchangeWithAtomic.depositAsset saat operasi transfer. Serangan reentrancy ini menyebabkan jumlah setoran terus bertambah, dan akhirnya penyerang memperoleh dana yang melebihi batas normal melalui operasi penarikan.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Aliran Dana

Sumber dana awal penyerang berasal dari dompet panas suatu platform perdagangan. Dari 1.651 ETH yang didapatkan dari serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui alat pencampuran.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Kerentanan

Masalah inti dari serangan terletak pada fungsi doSwapThroughOrionPool pada kontrak ExchangeWithAtomic. Fungsi ini tidak menangani situasi reentrancy dengan benar saat memproses pertukaran token. Secara spesifik, dalam fungsi _doSwapTokens, variabel curBalance hanya diperbarui setelah operasi transfer token, yang memberikan kesempatan bagi penyerang.

Penyerang menambahkan logika callback di fungsi transfer Token kustom, yang memicu pemanggilan fungsi depositAsset setiap kali transfer dilakukan, menyebabkan variabel curBalance diperbarui secara tidak benar. Akhirnya, setelah mengembalikan pinjaman kilat, penyerang menarik dana berlebih melalui fungsi withdraw.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Serangan Re-entrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Serangan Re-Entrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Reproduksi Kerentanan

Peneliti telah menyediakan sebagian kode POC yang menunjukkan bagaimana memanfaatkan kerentanan ini untuk melakukan serangan. Kode ini terutama mensimulasikan prosedur operasi penyerang, termasuk membuat Token palsu, mengatur kolam likuiditas, melakukan pinjaman kilat, dan langkah-langkah serangan re-entry.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Saran Keamanan

Untuk menghindari serangan serupa, pihak proyek harus memperhatikan hal-hal berikut saat merancang kontrak:

  1. Dalam mengimplementasikan fungsi pertukaran token, perlu mempertimbangkan potensi risiko yang mungkin ditimbulkan oleh berbagai jenis Token dan jalur pertukaran.

  2. Ikuti pola "Pemeriksaan-Efek-Interaksi" (Checks-Effects-Interactions) saat menulis kode kontrak, yaitu pertama melakukan pemeriksaan kondisi, kemudian memperbarui variabel status, dan terakhir melakukan panggilan eksternal.

  3. Gunakan kunci reentrancy atau mekanisme pencegahan reentrancy lainnya untuk melindungi fungsi kunci.

  4. Melakukan audit keamanan secara berkala untuk mendeteksi dan memperbaiki potensi kerentanan dengan cepat.

  5. Pertimbangkan untuk memperkenalkan batasan jumlah transaksi atau batasan frekuensi transaksi untuk mengurangi dampak potensi serangan.

Dengan mengambil langkah-langkah ini, proyek dapat secara signifikan meningkatkan keamanan kontrak dan mengurangi risiko serangan. Dalam ekosistem Web3, keamanan harus selalu menjadi pertimbangan utama.

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
  • 4
  • Bagikan
Komentar
0/400
SleepTradervip
· 4jam yang lalu
又一个合约pemula挨揍了
Lihat AsliBalas0
StablecoinEnjoyervip
· 4jam yang lalu
Lagi-lagi pergi, tidak belajar dari pengalaman ya.
Lihat AsliBalas0
GetRichLeekvip
· 4jam yang lalu
Hari-hari dicomot kupon klip kontrak hahaha
Lihat AsliBalas0
MemeEchoervip
· 4jam yang lalu
Kembali berbaring ya, sepertinya smart contract memang harus ditulis dengan serius.
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)