Analisis Peristiwa Serangan Reentrancy pada OrionProtocol
Ringkasan Acara
Pada 2 Februari 2023, OrionProtocol mengalami serangan reentrancy di Ethereum dan Binance Smart Chain, yang mengakibatkan kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan celah kontrak untuk mencuri 2.844.766 USDT di jaringan Ethereum dan 191.606 BUSD di jaringan Binance Smart Chain.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom untuk mempersiapkan serangan selanjutnya.
Melakukan pinjaman melalui metode swap UNI-V2, dan memanggil metode ExchangeWithAtomic.swapThroughOrionPool untuk pertukaran token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.
Saat menjalankan metode swapThroughOrionPool, penyerang memanfaatkan fungsi callback dalam kontrak Token kustom untuk memanggil kembali metode ExchangeWithAtomic.depositAsset, yang menyebabkan jumlah setoran dijumlahkan berkali-kali.
Terakhir, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran Dana
Modal awal penyerang berasal dari dompet panas suatu platform perdagangan. Dari 1.651 ETH yang diperoleh, 657,5 ETH masih tersisa di dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran koin.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini saat menjalankan _doSwapTokens, pertama melakukan operasi transfer, lalu memperbarui variabel curBalance. Penyerang memanfaatkan fungsi transfer dari Token kustom yang menambahkan callback, dan sebelum curBalance diperbarui, memanggil kembali fungsi depositAsset, yang mengakibatkan kesalahan perhitungan saldo.
Saran Pencegahan
Desain kontrak harus mempertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.
Ikuti pola "Pemeriksaan-Efek-Interaksi" (Checks-Effects-Interactions) saat menulis kode kontrak, yaitu melakukan pemeriksaan kondisi terlebih dahulu, kemudian memperbarui variabel status, dan terakhir melakukan panggilan eksternal.
Menambahkan mekanisme keamanan seperti penguncian reentrancy untuk mencegah serangan reentrancy.
Melakukan audit kode dan pemindaian kerentanan secara berkala, serta segera memperbaiki potensi risiko keamanan.
Membatasi jumlah maksimum transaksi per sekali, menetapkan batasan frekuensi transaksi, dan langkah-langkah lainnya untuk mengurangi kerugian yang disebabkan oleh potensi serangan.
Dengan mengambil langkah-langkah ini, pihak proyek dapat secara signifikan meningkatkan keamanan kontrak dan mengurangi risiko mengalami serangan serupa. Memperhatikan keamanan kontrak pintar secara berkelanjutan sangat penting untuk menjaga perkembangan sehat ekosistem Web3.
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
5
Bagikan
Komentar
0/400
StakeOrRegret
· 07-15 17:28
Ini adalah jebakan smart contract lagi.
Lihat AsliBalas0
TokenEconomist
· 07-15 07:15
biarkan saya menjelaskan ini: kerentanan reentrancy klasik, pada dasarnya arbitrase ekonomi tetapi dengan cacat kontrak pintar
Lihat AsliBalas0
FreeRider
· 07-12 19:16
Satu lagi kontributor baru suckers
Lihat AsliBalas0
WenMoon42
· 07-12 19:09
Satu proyek lagi gg.
Lihat AsliBalas0
LiquidationSurvivor
· 07-12 19:08
Kontrak lagi-lagi diambil, tidak bisa berkata apa-apa.
OrionProtocol mengalami serangan reentrancy senilai 2,9 juta dolar AS, merusak kedua rantai ETH dan BSC.
Analisis Peristiwa Serangan Reentrancy pada OrionProtocol
Ringkasan Acara
Pada 2 Februari 2023, OrionProtocol mengalami serangan reentrancy di Ethereum dan Binance Smart Chain, yang mengakibatkan kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan celah kontrak untuk mencuri 2.844.766 USDT di jaringan Ethereum dan 191.606 BUSD di jaringan Binance Smart Chain.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom untuk mempersiapkan serangan selanjutnya.
Melakukan pinjaman melalui metode swap UNI-V2, dan memanggil metode ExchangeWithAtomic.swapThroughOrionPool untuk pertukaran token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.
Saat menjalankan metode swapThroughOrionPool, penyerang memanfaatkan fungsi callback dalam kontrak Token kustom untuk memanggil kembali metode ExchangeWithAtomic.depositAsset, yang menyebabkan jumlah setoran dijumlahkan berkali-kali.
Terakhir, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran Dana
Modal awal penyerang berasal dari dompet panas suatu platform perdagangan. Dari 1.651 ETH yang diperoleh, 657,5 ETH masih tersisa di dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran koin.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini saat menjalankan _doSwapTokens, pertama melakukan operasi transfer, lalu memperbarui variabel curBalance. Penyerang memanfaatkan fungsi transfer dari Token kustom yang menambahkan callback, dan sebelum curBalance diperbarui, memanggil kembali fungsi depositAsset, yang mengakibatkan kesalahan perhitungan saldo.
Saran Pencegahan
Desain kontrak harus mempertimbangkan risiko keamanan yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.
Ikuti pola "Pemeriksaan-Efek-Interaksi" (Checks-Effects-Interactions) saat menulis kode kontrak, yaitu melakukan pemeriksaan kondisi terlebih dahulu, kemudian memperbarui variabel status, dan terakhir melakukan panggilan eksternal.
Menambahkan mekanisme keamanan seperti penguncian reentrancy untuk mencegah serangan reentrancy.
Melakukan audit kode dan pemindaian kerentanan secara berkala, serta segera memperbaiki potensi risiko keamanan.
Membatasi jumlah maksimum transaksi per sekali, menetapkan batasan frekuensi transaksi, dan langkah-langkah lainnya untuk mengurangi kerugian yang disebabkan oleh potensi serangan.
Dengan mengambil langkah-langkah ini, pihak proyek dapat secara signifikan meningkatkan keamanan kontrak dan mengurangi risiko mengalami serangan serupa. Memperhatikan keamanan kontrak pintar secara berkelanjutan sangat penting untuk menjaga perkembangan sehat ekosistem Web3.