Analisis Insiden Serangan Re-Entry pada OrionProtocol
Pada 2 Februari 2023 sore, kontrak OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat adanya celah, dengan kerugian sekitar 2,9 juta dolar AS, termasuk 2.844.766 USDT di rantai Ethereum dan 191.606 BUSD di rantai BSC.
Analisis Proses Serangan
Penyerang pertama-tama membuat sebuah kontrak Token khusus dan melakukan serangkaian persiapan. Selanjutnya, penyerang memanfaatkan fungsi swap dari DEX tertentu untuk meminjam, dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Jalur penukaran mencakup alamat kontrak Token yang dibuat oleh penyerang, yang menyiapkan dasar untuk serangan callback selanjutnya.
Dalam proses penukaran, kontrak Token penyerang memicu callback melalui fungsi Transfer, yang secara berulang memanggil fungsi depositAsset dari OrionProtocol, mengakibatkan jumlah setoran terus bertambah. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran 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, sedangkan sisanya telah dipindahkan melalui layanan pencampuran.
Analisis Kerentanan
Inti dari kerentanan terletak pada implementasi fungsi doSwapThroughOrionPool dan _doSwapTokens. Kontrak memperbarui variabel curBalance setelah operasi transfer, yang menciptakan kondisi untuk serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, yang menyebabkan curBalance diperbarui secara salah, akhirnya memungkinkan penyerang untuk menarik dana tambahan setelah mengembalikan pinjaman kilat.
Reproduksi Serangan
Peneliti menyediakan sebagian kode POC yang mensimulasikan proses serangan. Hasil pengujian menunjukkan bahwa penyerang berhasil memanfaatkan celah untuk mendapatkan USDT tambahan.
Saran Keamanan
Dalam merancang kontrak, perlu mempertimbangkan kemungkinan situasi tak terduga yang dapat ditimbulkan oleh berbagai Token dan jalur pertukaran.
Ikuti "penilaian terlebih dahulu, kemudian simpan dalam variabel, lalu lakukan panggilan eksternal" sebagai standar pengkodean (mode Checks-Effects-Interactions).
Meningkatkan pembatasan dan pemeriksaan terhadap panggilan eksternal, terutama yang melibatkan operasi transfer dana.
Lakukan audit keamanan secara berkala untuk mendeteksi dan memperbaiki kerentanan yang mungkin ada.
Terapkan langkah-langkah keamanan tambahan seperti tanda tangan ganda untuk mencegah titik kegagalan tunggal.
Kejadian ini sekali lagi menyoroti tantangan keamanan yang dihadapi oleh proyek DeFi. Pengembang harus selalu waspada dan terus meningkatkan keamanan kontrak untuk melindungi aset pengguna dan reputasi proyek.
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.
17 Suka
Hadiah
17
6
Bagikan
Komentar
0/400
SellLowExpert
· 1jam yang lalu
Sekali lagi reentry, koin ini sudah seharusnya runtuh.
Lihat AsliBalas0
WalletWhisperer
· 07-31 16:43
Satu lagi proyek yang terjebak
Lihat AsliBalas0
SatoshiHeir
· 07-30 13:22
Perlu dicatat bahwa risiko reentrancy dari smart contract sudah dijelaskan di halaman pertama buku teks Solidity, tampaknya sekali lagi sebuah tim proyek tidak melakukan pekerjaan rumah...
OrionProtocol mengalami serangan reentrancy dengan kerugian sebesar 2,9 juta dolar AS
Analisis Insiden Serangan Re-Entry pada OrionProtocol
Pada 2 Februari 2023 sore, kontrak OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat adanya celah, dengan kerugian sekitar 2,9 juta dolar AS, termasuk 2.844.766 USDT di rantai Ethereum dan 191.606 BUSD di rantai BSC.
Analisis Proses Serangan
Penyerang pertama-tama membuat sebuah kontrak Token khusus dan melakukan serangkaian persiapan. Selanjutnya, penyerang memanfaatkan fungsi swap dari DEX tertentu untuk meminjam, dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Jalur penukaran mencakup alamat kontrak Token yang dibuat oleh penyerang, yang menyiapkan dasar untuk serangan callback selanjutnya.
Dalam proses penukaran, kontrak Token penyerang memicu callback melalui fungsi Transfer, yang secara berulang memanggil fungsi depositAsset dari OrionProtocol, mengakibatkan jumlah setoran terus bertambah. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran 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, sedangkan sisanya telah dipindahkan melalui layanan pencampuran.
Analisis Kerentanan
Inti dari kerentanan terletak pada implementasi fungsi doSwapThroughOrionPool dan _doSwapTokens. Kontrak memperbarui variabel curBalance setelah operasi transfer, yang menciptakan kondisi untuk serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, yang menyebabkan curBalance diperbarui secara salah, akhirnya memungkinkan penyerang untuk menarik dana tambahan setelah mengembalikan pinjaman kilat.
Reproduksi Serangan
Peneliti menyediakan sebagian kode POC yang mensimulasikan proses serangan. Hasil pengujian menunjukkan bahwa penyerang berhasil memanfaatkan celah untuk mendapatkan USDT tambahan.
Saran Keamanan
Kejadian ini sekali lagi menyoroti tantangan keamanan yang dihadapi oleh proyek DeFi. Pengembang harus selalu waspada dan terus meningkatkan keamanan kontrak untuk melindungi aset pengguna dan reputasi proyek.