Analisis Insiden Serangan Reentrancy pada OrionProtocol
Pada 2 Februari 2023 sore, kontrak OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy karena adanya celah. Penyerang berhasil mencuri dana sekitar 2,9 juta dolar AS, termasuk 2.844.766 USDT di jalur Ethereum dan 191.606 BUSD di jalur Binance Smart Chain.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom, dan melakukan operasi transfer dan otorisasi pada Token tersebut, mempersiapkan untuk serangan selanjutnya. Kemudian, penyerang memanfaatkan fungsi swap Uniswap V2 untuk meminjam, dan memanggil metode ExchangeWithAtomic.swapThroughOrionPool dari OrionProtocol untuk menukarkan token.
Dalam proses penukaran, karena kontrak Token kustom penyerang mencakup fungsi callback, saat transfer Token dilakukan, metode ExchangeWithAtomic.depositAsset dapat dipanggil kembali. Serangan reentrancy ini menyebabkan jumlah deposit dihitung ulang, yang akhirnya memungkinkan penyerang untuk menarik dana yang melebihi jumlah yang sebenarnya disetorkan.
Aliran Dana
Sumber dana awal penyerang berasal dari dompet panas suatu platform perdagangan besar. Dari 1.651 ETH yang diperoleh melalui serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisa jumlahnya telah dipindahkan melalui layanan pencampuran koin.
Analisis Kerentanan
Masalah inti dari kerentanan muncul dalam fungsi doSwapThroughOrionPool. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, yang menciptakan kondisi untuk serangan reentrancy. Penyerang dengan menambahkan logika callback dalam fungsi transfer Token kustom dapat memanggil fungsi depositAsset secara berulang sebelum curBalance diperbarui, yang menyebabkan kesalahan dalam perhitungan saldo.
Saran Pencegahan
Untuk mencegah serangan serupa, pihak proyek harus memperhatikan hal-hal berikut:
Terapkan kontrol akses dan manajemen hak yang ketat.
Ikuti pola "Pemeriksaan-Dampak-Interaksi" (Checks-Effects-Interactions) saat menulis kontrak pintar.
Gunakan pengunci reentrancy atau mekanisme serupa untuk mencegah serangan reentrancy.
Untuk fungsi yang melibatkan pertukaran token, perlu mempertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai jenis Token dan jalur pertukaran.
Lakukan audit keamanan yang komprehensif, termasuk analisis statis, pengujian dinamis, dan tinjauan manual.
Memantau aktivitas kontrak secara berkelanjutan, membangun mekanisme respons cepat.
Kejadian ini sekali lagi menekankan bahwa keamanan harus selalu menjadi prioritas utama dalam pengembangan dan penerapan kontrak pintar. Pihak proyek perlu terus meningkatkan langkah-langkah keamanan untuk melindungi aset pengguna dan menjaga reputasi platform.
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.
12 Suka
Hadiah
12
6
Posting ulang
Bagikan
Komentar
0/400
FUD_Vaccinated
· 08-14 03:57
Sekali lagi Dianggap Bodoh
Lihat AsliBalas0
GateUser-aa7df71e
· 08-13 22:35
Sekali lagi, para suckers, lihat analisis kelas kecil di belakang saya.
Lihat AsliBalas0
CoinBasedThinking
· 08-13 22:34
Ini lagi permainan lama reentrancy.
Lihat AsliBalas0
HalfBuddhaMoney
· 08-13 22:29
Satu lagi klasik kegagalan smart contract, uang para suckers tidak aman lagi.
Lihat AsliBalas0
NewPumpamentals
· 08-13 22:26
Ini adalah serangan reentrancy lagi, kapan ini akan berakhir?
OrionProtocol mengalami serangan reentrancy sebesar 2,9 juta dolar AS, analisis pencurian dana dan saran pencegahan
Analisis Insiden Serangan Reentrancy pada OrionProtocol
Pada 2 Februari 2023 sore, kontrak OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy karena adanya celah. Penyerang berhasil mencuri dana sekitar 2,9 juta dolar AS, termasuk 2.844.766 USDT di jalur Ethereum dan 191.606 BUSD di jalur Binance Smart Chain.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom, dan melakukan operasi transfer dan otorisasi pada Token tersebut, mempersiapkan untuk serangan selanjutnya. Kemudian, penyerang memanfaatkan fungsi swap Uniswap V2 untuk meminjam, dan memanggil metode ExchangeWithAtomic.swapThroughOrionPool dari OrionProtocol untuk menukarkan token.
Jalur pertukaran diatur sebagai: USDC → Token Kustom Penyerang → USDT
Dalam proses penukaran, karena kontrak Token kustom penyerang mencakup fungsi callback, saat transfer Token dilakukan, metode ExchangeWithAtomic.depositAsset dapat dipanggil kembali. Serangan reentrancy ini menyebabkan jumlah deposit dihitung ulang, yang akhirnya memungkinkan penyerang untuk menarik dana yang melebihi jumlah yang sebenarnya disetorkan.
Aliran Dana
Sumber dana awal penyerang berasal dari dompet panas suatu platform perdagangan besar. Dari 1.651 ETH yang diperoleh melalui serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisa jumlahnya telah dipindahkan melalui layanan pencampuran koin.
Analisis Kerentanan
Masalah inti dari kerentanan muncul dalam fungsi doSwapThroughOrionPool. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, yang menciptakan kondisi untuk serangan reentrancy. Penyerang dengan menambahkan logika callback dalam fungsi transfer Token kustom dapat memanggil fungsi depositAsset secara berulang sebelum curBalance diperbarui, yang menyebabkan kesalahan dalam perhitungan saldo.
Saran Pencegahan
Untuk mencegah serangan serupa, pihak proyek harus memperhatikan hal-hal berikut:
Kejadian ini sekali lagi menekankan bahwa keamanan harus selalu menjadi prioritas utama dalam pengembangan dan penerapan kontrak pintar. Pihak proyek perlu terus meningkatkan langkah-langkah keamanan untuk melindungi aset pengguna dan menjaga reputasi platform.