Analisis Insiden Serangan Re-entrancy pada OrionProtocol
Ringkasan Peristiwa
Menurut data pemantauan di blockchain, pada tanggal 2 Februari 2023 pukul 15:40:20 UTC, OrionProtocol mengalami serangan reentrancy akibat celah kontrak di Ethereum dan Binance Smart Chain. Penyerang memperoleh keuntungan sebesar 2.844.766 USDT dari jaringan Ethereum dan 191.606 BUSD dari Binance Smart Chain, dengan total sekitar 2,9 juta dolar.
Analisis Proses Serangan
Detail serangan di jaringan Ethereum
Token kustom
Dalam proses pertukaran, karena kontrak Token yang dibuat oleh penyerang mencakup fungsi callback, penyerang dapat memanggil kembali fungsi ExchangeWithAtomic.depositAsset melalui metode Token.Transfer secara berulang selama pelaksanaan ExchangeWithAtomic.swapThroughOrionPool. Ini menyebabkan jumlah setoran terus meningkat, dan akhirnya penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran Dana
Sumber dana awal penyerang berasal dari dompet panas di suatu platform trading besar. Dari 1.651 ETH yang diperoleh dalam serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pengadukan.
Analisis Kerentanan
Masalah inti dari kerentanan muncul di dalam fungsi doSwapThroughOrionPool. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, tanpa mengikuti pola "Cek-Dampak-Interaksi" (Checks-Effects-Interactions). Penyerang memanfaatkan mekanisme callback yang ditambahkan di dalam fungsi transfer dari Token kustom, dengan memanggil fungsi depositAsset secara berulang sebelum curBalance diperbarui, menyebabkan kesalahan dalam perhitungan saldo.
Saran Pencegahan
Pihak proyek dalam merancang kontrak yang melibatkan fungsi pertukaran token perlu mempertimbangkan berbagai jenis Token dan risiko keamanan yang mungkin ditimbulkan oleh jalur pertukaran.
Ikuti dengan ketat standar pengkodean "Pemeriksaan-Efek-Interaksi", yaitu melakukan pemeriksaan kondisi terlebih dahulu, kemudian memperbarui variabel status, dan terakhir melakukan panggilan eksternal.
Untuk fungsi yang mungkin memiliki risiko reentrancy, gunakan mekanisme perlindungan seperti reentrancy lock.
Tambahkan pemeriksaan saldo sebelum dan sesudah operasi kunci untuk memastikan atomisitas dan konsistensi transaksi.
Secara berkala melakukan audit kode dan pengujian keamanan, untuk segera menemukan dan memperbaiki potensi kerentanan.
Pertimbangkan untuk menerapkan batasan jumlah transaksi atau batasan frekuensi transaksi untuk mengurangi kerugian yang disebabkan oleh serangan tunggal.
Dengan mengambil langkah-langkah ini, proyek dapat secara signifikan meningkatkan keamanan kontrak dan mengurangi risiko terkena serangan serupa. Dalam ekosistem Web3 yang berkembang pesat, keamanan selalu harus menjadi faktor yang dipertimbangkan dengan serius.
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
4
Bagikan
Komentar
0/400
BearMarketGardener
· 11jam yang lalu
Sekali lagi reentrancy, semua sayuran telah habis.
Lihat AsliBalas0
Token_Sherpa
· 21jam yang lalu
ugh... hari lain, serangan reentrancy lain. kapan para pengembang akan belajar untuk memeriksa efek-interaksi smh
OrionProtocol mengalami serangan reentrancy senilai 2,9 juta dolar AS, analisis kerentanan dan saran pencegahan
Analisis Insiden Serangan Re-entrancy pada OrionProtocol
Ringkasan Peristiwa
Menurut data pemantauan di blockchain, pada tanggal 2 Februari 2023 pukul 15:40:20 UTC, OrionProtocol mengalami serangan reentrancy akibat celah kontrak di Ethereum dan Binance Smart Chain. Penyerang memperoleh keuntungan sebesar 2.844.766 USDT dari jaringan Ethereum dan 191.606 BUSD dari Binance Smart Chain, dengan total sekitar 2,9 juta dolar.
Analisis Proses Serangan
Detail serangan di jaringan Ethereum
Token kustom
Dalam proses pertukaran, karena kontrak Token yang dibuat oleh penyerang mencakup fungsi callback, penyerang dapat memanggil kembali fungsi ExchangeWithAtomic.depositAsset melalui metode Token.Transfer secara berulang selama pelaksanaan ExchangeWithAtomic.swapThroughOrionPool. Ini menyebabkan jumlah setoran terus meningkat, dan akhirnya penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran Dana
Sumber dana awal penyerang berasal dari dompet panas di suatu platform trading besar. Dari 1.651 ETH yang diperoleh dalam serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pengadukan.
Analisis Kerentanan
Masalah inti dari kerentanan muncul di dalam fungsi doSwapThroughOrionPool. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, tanpa mengikuti pola "Cek-Dampak-Interaksi" (Checks-Effects-Interactions). Penyerang memanfaatkan mekanisme callback yang ditambahkan di dalam fungsi transfer dari Token kustom, dengan memanggil fungsi depositAsset secara berulang sebelum curBalance diperbarui, menyebabkan kesalahan dalam perhitungan saldo.
Saran Pencegahan
Pihak proyek dalam merancang kontrak yang melibatkan fungsi pertukaran token perlu mempertimbangkan berbagai jenis Token dan risiko keamanan yang mungkin ditimbulkan oleh jalur pertukaran.
Ikuti dengan ketat standar pengkodean "Pemeriksaan-Efek-Interaksi", yaitu melakukan pemeriksaan kondisi terlebih dahulu, kemudian memperbarui variabel status, dan terakhir melakukan panggilan eksternal.
Untuk fungsi yang mungkin memiliki risiko reentrancy, gunakan mekanisme perlindungan seperti reentrancy lock.
Tambahkan pemeriksaan saldo sebelum dan sesudah operasi kunci untuk memastikan atomisitas dan konsistensi transaksi.
Secara berkala melakukan audit kode dan pengujian keamanan, untuk segera menemukan dan memperbaiki potensi kerentanan.
Pertimbangkan untuk menerapkan batasan jumlah transaksi atau batasan frekuensi transaksi untuk mengurangi kerugian yang disebabkan oleh serangan tunggal.
Dengan mengambil langkah-langkah ini, proyek dapat secara signifikan meningkatkan keamanan kontrak dan mengurangi risiko terkena serangan serupa. Dalam ekosistem Web3 yang berkembang pesat, keamanan selalu harus menjadi faktor yang dipertimbangkan dengan serius.