OrionProtocol mengalami serangan reentrancy senilai 2,9 juta dolar AS, merusak kedua rantai ETH dan BSC.

robot
Pembuatan abstrak sedang berlangsung

Analisis Peristiwa Serangan Reentrancy pada OrionProtocol

Ringkasan Acara

Pada 2 Februari 2023, OrionProtocol mengalami serangan reentrancy di Ethereum dan Binance Smart Chain, yang mengakibatkan kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan celah kontrak untuk mencuri 2.844.766 USDT di jaringan Ethereum dan 191.606 BUSD di jaringan Binance Smart Chain.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Proses Serangan

  1. Penyerang pertama-tama menyebarkan kontrak Token kustom untuk mempersiapkan serangan selanjutnya.

  2. Melakukan pinjaman melalui metode swap UNI-V2, dan memanggil metode ExchangeWithAtomic.swapThroughOrionPool untuk pertukaran token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.

  3. Saat menjalankan metode swapThroughOrionPool, penyerang memanfaatkan fungsi callback dalam kontrak Token kustom untuk memanggil kembali metode ExchangeWithAtomic.depositAsset, yang menyebabkan jumlah setoran dijumlahkan berkali-kali.

  4. Terakhir, penyerang menyelesaikan keuntungan melalui operasi penarikan.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Aliran Dana

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

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Kerentanan

Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini saat menjalankan _doSwapTokens, pertama melakukan operasi transfer, lalu memperbarui variabel curBalance. Penyerang memanfaatkan fungsi transfer dari Token kustom yang menambahkan callback, dan sebelum curBalance diperbarui, memanggil kembali fungsi depositAsset, yang mengakibatkan kesalahan perhitungan saldo.

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-Entrancy OrionProtocol dengan PoC

Analisis Serangan Re-Entrancy OrionProtocol dengan PoC

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Saran Pencegahan

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

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

  3. Menambahkan mekanisme keamanan seperti penguncian reentrancy untuk mencegah serangan reentrancy.

  4. Melakukan audit kode dan pemindaian kerentanan secara berkala, serta segera memperbaiki potensi risiko keamanan.

  5. Membatasi jumlah maksimum transaksi per sekali, menetapkan batasan frekuensi transaksi, dan langkah-langkah lainnya untuk mengurangi kerugian yang disebabkan oleh potensi serangan.

Dengan mengambil langkah-langkah ini, pihak proyek dapat secara signifikan meningkatkan keamanan kontrak dan mengurangi risiko mengalami serangan serupa. Memperhatikan keamanan kontrak pintar secara berkelanjutan sangat penting untuk menjaga perkembangan sehat ekosistem Web3.

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
  • 3
  • Bagikan
Komentar
0/400
FreeRidervip
· 07-12 19:16
Satu lagi kontributor baru suckers
Lihat AsliBalas0
WenMoon42vip
· 07-12 19:09
Satu proyek lagi gg.
Lihat AsliBalas0
LiquidationSurvivorvip
· 07-12 19:08
Kontrak lagi-lagi diambil, tidak bisa berkata apa-apa.
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)