Analisis Insiden Serangan Re-entrancy pada OrionProtocol
Pada 2 Februari 2023 sore, proyek OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan total kerugian sekitar 2,9 juta dolar AS dalam aset kripto, termasuk 2.844.766 USDT (Ethereum) dan 191.606 BUSD (BSC).
Analisis Proses Serangan
Penyerang pertama-tama menerapkan kontrak Token kustom dan melakukan operasi transfer dan otorisasi yang sesuai untuk mempersiapkan serangan selanjutnya. Selanjutnya, penyerang meminjam dana melalui fungsi swap dari suatu bursa terdesentralisasi dan memanggil metode OrionProtocol's ExchangeWithAtomic.swapThroughOrionPool untuk menukar token. Jalur pertukaran diatur menjadi USDC → Token Kustom Penyerang → USDT.
Dalam proses penukaran, penyerang memanfaatkan fungsi callback dalam kontrak Token kustom, secara berulang memanggil metode ExchangeWithAtomic.depositAsset, yang mengakibatkan jumlah setoran bertambah. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Arus Dana
Sumber dana awal penyerang berasal dari dompet panas di sebuah platform perdagangan besar. Dari 1.651 ETH yang didapat, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan menggunakan alat pencampuran.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool dari kontrak ExchangeWithAtomic. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, yang menciptakan kondisi untuk serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, yang menyebabkan pemanggilan ulang fungsi depositAsset, sehingga curBalance diperbarui secara tidak benar. Pada akhirnya, penyerang menarik dana berlebih melalui fungsi withdraw setelah melunasi pinjaman kilat.
Saran Pencegahan
Pengembangan kontrak harus mengikuti pola "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), menghindari pemanggilan eksternal sebelum pembaruan status.
Dalam mengimplementasikan fungsi pertukaran token, perlu mempertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai jenis Token dan jalur pertukaran.
Menambahkan mekanisme keamanan seperti kunci re-entry untuk mencegah serangan re-entry.
Terapkan kontrol akses dan langkah-langkah pembatasan untuk operasi kunci.
Melakukan audit keamanan menyeluruh, dengan fokus khusus pada fungsi inti yang melibatkan operasi dana.
Peristiwa ini sekali lagi menekankan pentingnya keamanan kontrak pintar. Pihak proyek harus terus memperhatikan keamanan kontrak, secara berkala melakukan audit kode dan perbaikan kerentanan, untuk memastikan keamanan aset pengguna. Pada saat yang sama, pengguna juga harus tetap waspada saat berpartisipasi dalam proyek baru, memperhatikan kondisi keamanan proyek dan laporan audit.
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.
13 Suka
Hadiah
13
6
Bagikan
Komentar
0/400
ShamedApeSeller
· 07-24 12:02
Sekali lagi sudah dingin
Lihat AsliBalas0
CoffeeOnChain
· 07-24 09:46
Tidak melakukan audit kontrak? Layak dicabut!
Lihat AsliBalas0
FlippedSignal
· 07-23 09:34
Sekali lagi terkena serangan
Lihat AsliBalas0
SchrodingersFOMO
· 07-23 09:26
Belum selesai trading koin, koinnya sudah meledak lagi?
Lihat AsliBalas0
ETHReserveBank
· 07-23 09:25
Lagi-lagi, pelatihan online untuk ahli 0day
Lihat AsliBalas0
FlatlineTrader
· 07-23 09:15
Belum bisa mencegah serangan reentrancy? Sangat bodoh.
OrionProtocol mengalami serangan reentrancy dengan kerugian aset enkripsi sebesar 2,9 juta dolar.
Analisis Insiden Serangan Re-entrancy pada OrionProtocol
Pada 2 Februari 2023 sore, proyek OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan total kerugian sekitar 2,9 juta dolar AS dalam aset kripto, termasuk 2.844.766 USDT (Ethereum) dan 191.606 BUSD (BSC).
Analisis Proses Serangan
Penyerang pertama-tama menerapkan kontrak Token kustom dan melakukan operasi transfer dan otorisasi yang sesuai untuk mempersiapkan serangan selanjutnya. Selanjutnya, penyerang meminjam dana melalui fungsi swap dari suatu bursa terdesentralisasi dan memanggil metode OrionProtocol's ExchangeWithAtomic.swapThroughOrionPool untuk menukar token. Jalur pertukaran diatur menjadi USDC → Token Kustom Penyerang → USDT.
Dalam proses penukaran, penyerang memanfaatkan fungsi callback dalam kontrak Token kustom, secara berulang memanggil metode ExchangeWithAtomic.depositAsset, yang mengakibatkan jumlah setoran bertambah. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Arus Dana
Sumber dana awal penyerang berasal dari dompet panas di sebuah platform perdagangan besar. Dari 1.651 ETH yang didapat, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan menggunakan alat pencampuran.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool dari kontrak ExchangeWithAtomic. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, yang menciptakan kondisi untuk serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, yang menyebabkan pemanggilan ulang fungsi depositAsset, sehingga curBalance diperbarui secara tidak benar. Pada akhirnya, penyerang menarik dana berlebih melalui fungsi withdraw setelah melunasi pinjaman kilat.
Saran Pencegahan
Pengembangan kontrak harus mengikuti pola "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), menghindari pemanggilan eksternal sebelum pembaruan status.
Dalam mengimplementasikan fungsi pertukaran token, perlu mempertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai jenis Token dan jalur pertukaran.
Menambahkan mekanisme keamanan seperti kunci re-entry untuk mencegah serangan re-entry.
Terapkan kontrol akses dan langkah-langkah pembatasan untuk operasi kunci.
Melakukan audit keamanan menyeluruh, dengan fokus khusus pada fungsi inti yang melibatkan operasi dana.
Peristiwa ini sekali lagi menekankan pentingnya keamanan kontrak pintar. Pihak proyek harus terus memperhatikan keamanan kontrak, secara berkala melakukan audit kode dan perbaikan kerentanan, untuk memastikan keamanan aset pengguna. Pada saat yang sama, pengguna juga harus tetap waspada saat berpartisipasi dalam proyek baru, memperhatikan kondisi keamanan proyek dan laporan audit.