Analisis Insiden Serangan Reentrancy pada OrionProtocol
Pada tanggal 2 Februari 2023 sore, Orion Protocol di Ethereum dan Binance Smart Chain terkena serangan reentrancy karena kerentanan kontrak, yang mengakibatkan kerugian sekitar 2,9 juta dolar. Penyerang memanfaatkan fungsi callback dari kontrak token yang mereka buat untuk memanggil fungsi penyetoran berulang kali selama proses transaksi, yang menyebabkan dana salah terakumulasi dan kemudian ditarik.
Proses Serangan
Penyerang pertama-tama membuat kontrak Token kustom dan melakukan operasi transfer dan otorisasi yang diperlukan.
Token yang dibuat oleh penyerang
Dalam proses penukaran, kontrak Token penyerang menggunakan fungsi transfer untuk memicu panggilan balik, yang menyebabkan fungsi ExchangeWithAtomic.depositAsset dipanggil berulang kali, mengakibatkan jumlah setoran salah terakumulasi.
Terakhir, penyerang menarik dana berlebih melalui fungsi withdraw, menyelesaikan serangan.
Analisis Kerentanan
Kerentanan terutama terdapat pada fungsi doSwapThroughOrionPool dan _doSwapTokens dari kontrak ExchangeWithAtomic. Masalah kunci adalah:
Kontrak hanya memperbarui variabel curBalance setelah melakukan transfer.
Tidak berhasil mencegah serangan reentrancy, memungkinkan eksekusi fungsi callback selama proses transfer.
Ini menyebabkan penyerang dapat memanggil fungsi depositAsset berulang kali sebelum curBalance diperbarui, mengakibatkan kesalahan perhitungan dana.
Pengaruh Serangan
Kehilangan 2.844.766 USDT di jaringan Ethereum
Kehilangan 191.606 BUSD di Binance Smart Chain
Total sekitar 2.9 juta dolar AS
Aliran Dana
Dari 1.651 ETH yang diperoleh oleh penyerang, 657,5 ETH masih tersisa di alamat dompet, sedangkan sisanya telah dipindahkan melalui layanan pencampuran tertentu. Sumber dana awal berasal dari akun dompet panas di suatu platform perdagangan.
Saran Keamanan
Ikuti dengan ketat pola "Pemeriksaan-Dampak-Interaksi" (Checks-Effects-Interactions) dalam penulisan kontrak pintar.
Mewujudkan kunci reentrancy, untuk mencegah fungsi dipanggil ulang selama proses eksekusi.
Saat melakukan pertukaran token, pertimbangkan berbagai kemungkinan jenis Token dan jalur pertukaran, serta siapkan penanganan untuk situasi yang tidak normal.
Secara berkala melakukan audit keamanan kontrak pintar, untuk segera menemukan dan memperbaiki potensi celah.
Peristiwa ini kembali mengingatkan pihak proyek bahwa saat mengembangkan kontrak pintar yang melibatkan interaksi dana, sangat penting untuk memperhatikan keamanan, mengambil langkah-langkah perlindungan yang komprehensif, dan meminimalkan risiko kontrak sebanyak mungkin.
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.
20 Suka
Hadiah
20
8
Bagikan
Komentar
0/400
AirdropHustler
· 07-18 17:53
Zek, kontrak pintar ini rapuh seperti kertas.
Lihat AsliBalas0
MerkleDreamer
· 07-18 06:45
Kembali dicuri? Sudah biasa.
Lihat AsliBalas0
rekt_but_resilient
· 07-16 11:57
Lagi-lagi sudah mendapatkan 290w
Lihat AsliBalas0
LiquidationWatcher
· 07-15 21:48
Ini adalah serangan reentrancy lagi, tidak belajar dengan baik ya.
Lihat AsliBalas0
ForkTongue
· 07-15 21:48
Proyek yang dapat diandalkan semua meledak, kapan ini akan berakhir?
OrionProtocol mengalami serangan reentrancy dengan kerugian sebesar 2,9 juta dolar AS, ETH dan BSC terdampak.
Analisis Insiden Serangan Reentrancy pada OrionProtocol
Pada tanggal 2 Februari 2023 sore, Orion Protocol di Ethereum dan Binance Smart Chain terkena serangan reentrancy karena kerentanan kontrak, yang mengakibatkan kerugian sekitar 2,9 juta dolar. Penyerang memanfaatkan fungsi callback dari kontrak token yang mereka buat untuk memanggil fungsi penyetoran berulang kali selama proses transaksi, yang menyebabkan dana salah terakumulasi dan kemudian ditarik.
Proses Serangan
Token yang dibuat oleh penyerang
Dalam proses penukaran, kontrak Token penyerang menggunakan fungsi transfer untuk memicu panggilan balik, yang menyebabkan fungsi ExchangeWithAtomic.depositAsset dipanggil berulang kali, mengakibatkan jumlah setoran salah terakumulasi.
Terakhir, penyerang menarik dana berlebih melalui fungsi withdraw, menyelesaikan serangan.
Analisis Kerentanan
Kerentanan terutama terdapat pada fungsi doSwapThroughOrionPool dan _doSwapTokens dari kontrak ExchangeWithAtomic. Masalah kunci adalah:
Ini menyebabkan penyerang dapat memanggil fungsi depositAsset berulang kali sebelum curBalance diperbarui, mengakibatkan kesalahan perhitungan dana.
Pengaruh Serangan
Aliran Dana
Dari 1.651 ETH yang diperoleh oleh penyerang, 657,5 ETH masih tersisa di alamat dompet, sedangkan sisanya telah dipindahkan melalui layanan pencampuran tertentu. Sumber dana awal berasal dari akun dompet panas di suatu platform perdagangan.
Saran Keamanan
Peristiwa ini kembali mengingatkan pihak proyek bahwa saat mengembangkan kontrak pintar yang melibatkan interaksi dana, sangat penting untuk memperhatikan keamanan, mengambil langkah-langkah perlindungan yang komprehensif, dan meminimalkan risiko kontrak sebanyak mungkin.