OrionProtocol mengalami serangan reentrancy dan mengalami kerugian hampir 2,9 juta dolar AS

robot
Pembuatan abstrak sedang berlangsung

Analisis Insiden Serangan Re-Entrant pada OrionProtocol

Pada tanggal 2 Februari 2023 pukul 15:40, Orion Protocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan total kerugian sekitar 2,9 juta dolar AS, di mana kerugian di jaringan Ethereum mencapai 2.844.766 USDT, dan kerugian di jaringan Binance Smart Chain mencapai 191.606 BUSD.

Analisis Proses Serangan

Penyerang pertama-tama menyebarkan kontrak Token kustom, dan melakukan operasi transfer dan otorisasi yang relevan, untuk mempersiapkan serangan selanjutnya. Kemudian, penyerang melakukan peminjaman melalui metode swap UNI-V2, dan memanggil metode swapThroughOrionPool dari kontrak ExchangeWithAtomic untuk pertukaran token. Jalur pertukaran diatur menjadi [USDC, Token penyerang, USDT].

Selama proses pertukaran, karena kontrak Token penyerang mengandung fungsi callback, menyebabkan pemanggilan kembali metode ExchangeWithAtomic.depositAsset selama proses Token.Transfer, yang mengakibatkan serangan reentrant. Ini menyebabkan jumlah setoran terakumulasi, dan akhirnya penyerang menyelesaikan keuntungan melalui operasi penarikan.

Analisis serangan reentrancy OrionProtocol dengan PoC

Aliran Dana

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

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis Kerentanan

Inti dari celah terletak pada fungsi doSwapThroughOrionPool dalam kontrak ExchangeWithAtomic dan fungsi _doSwapTokens yang dipanggilnya. Fungsi-fungsi ini hanya memperbarui variabel curBalance setelah melaksanakan transfer Token, memberikan kesempatan kepada penyerang untuk memanfaatkan serangan reentrancy.

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, sehingga fungsi depositAsset dipanggil lagi selama proses transfer. Ini menyebabkan pembaruan variabel curBalance yang salah, memungkinkan penyerang untuk menarik dana berlebih melalui fungsi withdraw setelah melunasi pinjaman kilat.

Analisis serangan reentrancy 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

Analisis Serangan Reentrancy OrionProtocol dengan PoC

Analisis serangan reentrancy OrionProtocol dengan PoC

Saran Keamanan

Untuk proyek yang memiliki fungsi pertukaran token, perlu mempertimbangkan hal-hal berikut:

  1. Pertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.
  2. Ikuti pola pengkodean "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), yaitu melakukan pemeriksaan status terlebih dahulu, kemudian memperbarui status kontrak, dan terakhir berinteraksi dengan kontrak eksternal.
  3. Gunakan kunci reentrancy atau mekanisme serupa saat melakukan operasi penting untuk mencegah serangan reentrancy.
  4. Lakukan pemeriksaan dan penanganan yang ketat terhadap nilai kembali dari pemanggilan eksternal.
  5. Melakukan audit kode dan pengujian keamanan secara berkala, serta segera memperbaiki kerentanan yang ditemukan.

Dengan mengambil langkah-langkah ini, proyek dapat secara signifikan mengurangi risiko mengalami serangan serupa, serta meningkatkan keamanan dan stabilitas kontrak.

TOKEN3.86%
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
CryptoSurvivorvip
· 07-09 04:25
Sudah cukup, satu lagi tumor.
Lihat AsliBalas0
GateUser-5854de8bvip
· 07-06 19:22
Aduh, saya sudah kena Kupon Klip lagi.
Lihat AsliBalas0
SurvivorshipBiasvip
· 07-06 19:21
Sudah ada celah kontrak lagi...
Lihat AsliBalas0
CoconutWaterBoyvip
· 07-06 19:08
Tidak melakukan audit kode, pantas rugi.
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)