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

robot
Pembuatan abstrak sedang berlangsung

Analisis Peristiwa Serangan Reentrancy OrionProtocol

Pada 2 Februari 2023 sore, Orion Protocol di jaringan Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan kerugian sekitar 2,9 juta dolar AS, yang mencakup 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 membuat kontrak Token dan melakukan operasi transfer dan otorisasi yang relevan untuk mempersiapkan serangan selanjutnya. Selanjutnya, penyerang meminjam melalui metode swap UNI-V2 dan memanggil metode swapThroughOrionPool dari kontrak ExchangeWithAtomic untuk menukar token. Jalur penukaran diatur sebagai USDC → Token yang dibuat oleh penyerang → USDT.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Dalam proses pertukaran, karena kontrak Token yang dibuat oleh penyerang mengandung fungsi panggilan balik, menyebabkan saat metode ExchangeWithAtomic.swapThroughOrionPool dieksekusi, melalui Token.Transfer terus memanggil metode ExchangeWithAtomic.depositAsset, yang mengakibatkan serangan reentrancy. Ini menyebabkan jumlah deposit terus bertambah, akhirnya penyerang menyelesaikan keuntungan melalui operasi penarikan.

OrionProtocol Analisis Serangan Reentrancy dengan PoC

Arus Dana

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

Analisis serangan reentrancy OrionProtocol dengan PoC

Analisis Kerentanan

Masalah inti dari celah muncul dalam fungsi doSwapThroughOrionPool. Fungsi ini memanggil fungsi _doSwapTokens, di mana operasi transfer token terjadi sebelum pembaruan curBalance. Penyerang memanfaatkan fungsi callback yang ditambahkan dalam fungsi transfer Token kustom, dengan memanggil kembali fungsi depositAsset sebelum pembaruan curBalance, yang mengakibatkan pembaruan curBalance yang salah. Akhirnya, setelah melunasi pinjaman kilat, penyerang menarik dana dengan memanggil fungsi withdraw untuk menyelesaikan serangan.

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

Analisis Serangan Re-Entrant OrionProtocol dengan PoC

Analisis Serangan Re-Entrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Saran Pencegahan

  1. Desain kontrak harus mempertimbangkan risiko potensial yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.

  2. Mengikuti spesifikasi pengkodean "memeriksa terlebih dahulu, kemudian memperbarui variabel, dan terakhir melakukan panggilan eksternal" (pola Checks-Effects-Interactions) dapat secara efektif meningkatkan keamanan kontrak.

  3. Dalam mengimplementasikan fungsi pertukaran token, perlu diperhatikan risiko serangan reentrancy, dapat mempertimbangkan penggunaan mekanisme penguncian reentrancy untuk perlindungan.

  4. Untuk fungsi-fungsi kunci yang melibatkan operasi dana, disarankan untuk melakukan audit keamanan dan pengujian secara menyeluruh, termasuk simulasi berbagai kondisi batas dan skenario luar biasa.

  5. Secara berkala melakukan pemeriksaan keamanan kontrak, serta segera memperbarui dan memperbaiki potensi kerentanan.

Dengan mengambil langkah-langkah ini, risiko serangan terhadap kontrak pintar dapat secara signifikan dikurangi, meningkatkan keselamatan keseluruhan proyek. Dalam ekosistem Web3, keamanan selalu menjadi salah satu pertimbangan terpenting.

TOKEN0.35%
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
  • 5
  • Posting ulang
  • Bagikan
Komentar
0/400
AirdropBuffetvip
· 08-12 21:06
Satu lagi smart contract yang gagal~
Lihat AsliBalas0
ZenMinervip
· 08-12 21:05
Celah sebesar ini, kenapa tidak mengajak saya untuk audit?
Lihat AsliBalas0
HallucinationGrowervip
· 08-12 21:00
Sekali lagi kesempatan untuk Rug Pull
Lihat AsliBalas0
TokenStormvip
· 08-12 20:57
Aduh, skripnya sudah ditulis, tinggal satu langkah lagi.
Lihat AsliBalas0
ZKProofEnthusiastvip
· 08-12 20:36
Satu lagi Rug Pull jebakan?
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)