Pada 2 Februari 2023 sore, kontrak OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy karena adanya celah. Penyerang meraih keuntungan sebesar 2.844.766 USDT di jaringan Ethereum dan 191.606 BUSD di jaringan Binance Smart Chain, dengan total sekitar 2,9 juta dolar AS.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom dan melakukan persiapan terkait. Selanjutnya, penyerang melakukan pinjaman melalui fungsi swap dari suatu DEX, dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang, yang mempersiapkan serangan callback di kemudian hari.
Saat menjalankan metode swapThroughOrionPool, serangan terjadi karena kontrak Token penyerang mengandung logika callback, yang menyebabkan serangan reentrancy selama proses transfer. Penyerang memanfaatkan metode Token.Transfer untuk memanggil fungsi ExchangeWithAtomic.depositAsset berulang kali, sehingga jumlah setoran terus bertambah. Akhirnya, penyerang berhasil mendapatkan keuntungan melalui operasi penarikan.
Aliran Dana
Modal awal penyerang berasal dari dompet panas suatu platform perdagangan. 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 Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini memiliki cacat logika saat menjalankan operasi _doSwapTokens. Secara spesifik, kontrak hanya memperbarui variabel curBalance setelah transfer selesai, yang memberi kesempatan bagi penyerang. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, secara berulang memanggil fungsi depositAsset, yang menyebabkan pembaruan curBalance menjadi salah. Akhirnya, setelah melunasi pinjaman kilat, penyerang berhasil menarik dana yang berlebihan.
Saran Pencegahan
Untuk menghindari serangan serupa, pihak proyek harus memperhatikan hal-hal berikut saat merancang kontrak:
Saat mengimplementasikan fungsi pertukaran mata uang digital, perlu mempertimbangkan secara menyeluruh berbagai jenis Token dan potensi risiko keamanan yang mungkin ditimbulkan oleh jalur pertukaran.
Ikuti secara ketat standar pengkodean "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), yaitu melakukan pemeriksaan status terlebih dahulu, kemudian memperbarui status kontrak, dan terakhir melakukan panggilan eksternal.
Terapkan penguncian reentrancy dalam operasi kunci untuk mencegah terjadinya serangan reentrancy.
Lakukan audit kode secara berkala untuk mendeteksi dan memperbaiki potensi kerentanan keamanan dengan tepat waktu.
Pertimbangkan untuk memperkenalkan mekanisme penarikan yang tertunda, untuk memberikan kesempatan intervensi manual pada transaksi yang mencurigakan.
Dengan mengambil langkah-langkah ini, keamanan kontrak pintar dapat ditingkatkan secara signifikan dan risiko serangan dapat dikurangi. Dalam ekosistem Web3, keamanan selalu menjadi faktor yang paling utama.
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.
16 Suka
Hadiah
16
8
Bagikan
Komentar
0/400
LidoStakeAddict
· 07-17 03:22
Ini adalah babi lagi.
Lihat AsliBalas0
NervousFingers
· 07-14 05:42
又一项目被Kupon Klip啊...
Lihat AsliBalas0
TokenUnlocker
· 07-14 04:00
Satu lagi kerentanan reentrancy yang tidak terkunci?
Lihat AsliBalas0
GasSavingMaster
· 07-14 03:59
Teknologi saat ini juga tidak terlalu bagus.
Lihat AsliBalas0
PanicSeller69
· 07-14 03:58
Lagi meledak, ya Tuhan
Lihat AsliBalas0
PortfolioAlert
· 07-14 03:37
Satu lagi korban dari celah kontrak...
Lihat AsliBalas0
SerumSqueezer
· 07-14 03:36
Ini sudah berapa kali bocor dan berlubang lagi?
Lihat AsliBalas0
ForkTongue
· 07-14 03:33
Ini lagi serangan reentrancy, apakah proyek-proyek ini tidak belajar dari pelajaran?
OrionProtocol mengalami serangan reentrancy dengan 2,9 juta dolar AS dana dicuri
Analisis Serangan Reentrancy pada OrionProtocol
Pada 2 Februari 2023 sore, kontrak OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy karena adanya celah. Penyerang meraih keuntungan sebesar 2.844.766 USDT di jaringan Ethereum dan 191.606 BUSD di jaringan Binance Smart Chain, dengan total sekitar 2,9 juta dolar AS.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom dan melakukan persiapan terkait. Selanjutnya, penyerang melakukan pinjaman melalui fungsi swap dari suatu DEX, dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang, yang mempersiapkan serangan callback di kemudian hari.
Saat menjalankan metode swapThroughOrionPool, serangan terjadi karena kontrak Token penyerang mengandung logika callback, yang menyebabkan serangan reentrancy selama proses transfer. Penyerang memanfaatkan metode Token.Transfer untuk memanggil fungsi ExchangeWithAtomic.depositAsset berulang kali, sehingga jumlah setoran terus bertambah. Akhirnya, penyerang berhasil mendapatkan keuntungan melalui operasi penarikan.
Aliran Dana
Modal awal penyerang berasal dari dompet panas suatu platform perdagangan. 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 Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini memiliki cacat logika saat menjalankan operasi _doSwapTokens. Secara spesifik, kontrak hanya memperbarui variabel curBalance setelah transfer selesai, yang memberi kesempatan bagi penyerang. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, secara berulang memanggil fungsi depositAsset, yang menyebabkan pembaruan curBalance menjadi salah. Akhirnya, setelah melunasi pinjaman kilat, penyerang berhasil menarik dana yang berlebihan.
Saran Pencegahan
Untuk menghindari serangan serupa, pihak proyek harus memperhatikan hal-hal berikut saat merancang kontrak:
Saat mengimplementasikan fungsi pertukaran mata uang digital, perlu mempertimbangkan secara menyeluruh berbagai jenis Token dan potensi risiko keamanan yang mungkin ditimbulkan oleh jalur pertukaran.
Ikuti secara ketat standar pengkodean "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), yaitu melakukan pemeriksaan status terlebih dahulu, kemudian memperbarui status kontrak, dan terakhir melakukan panggilan eksternal.
Terapkan penguncian reentrancy dalam operasi kunci untuk mencegah terjadinya serangan reentrancy.
Lakukan audit kode secara berkala untuk mendeteksi dan memperbaiki potensi kerentanan keamanan dengan tepat waktu.
Pertimbangkan untuk memperkenalkan mekanisme penarikan yang tertunda, untuk memberikan kesempatan intervensi manual pada transaksi yang mencurigakan.
Dengan mengambil langkah-langkah ini, keamanan kontrak pintar dapat ditingkatkan secara signifikan dan risiko serangan dapat dikurangi. Dalam ekosistem Web3, keamanan selalu menjadi faktor yang paling utama.