Analisis Peristiwa Serangan Reentrancy OrionProtocol
Pada 2 Februari 2023 sore, Orion Protocol di jaringan Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan kerugian sekitar 2,9 juta dolar AS, yang mencakup 2.844.766 USDT di Ethereum dan 191.606 BUSD di Binance Smart Chain.
Analisis Proses Serangan
Penyerang pertama-tama membuat kontrak Token dan melakukan operasi transfer dan otorisasi yang relevan untuk mempersiapkan serangan selanjutnya. Selanjutnya, penyerang meminjam melalui metode swap UNI-V2 dan memanggil metode swapThroughOrionPool dari kontrak ExchangeWithAtomic untuk menukar token. Jalur penukaran diatur sebagai USDC → Token yang dibuat oleh penyerang → USDT.
Dalam proses pertukaran, karena kontrak Token yang dibuat oleh penyerang mengandung fungsi panggilan balik, menyebabkan saat metode ExchangeWithAtomic.swapThroughOrionPool dieksekusi, melalui Token.Transfer terus memanggil metode ExchangeWithAtomic.depositAsset, yang mengakibatkan serangan reentrancy. Ini menyebabkan jumlah deposit terus bertambah, akhirnya penyerang menyelesaikan keuntungan melalui operasi penarikan.
Arus 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, sementara sisanya telah dipindahkan melalui layanan pencampuran.
Analisis Kerentanan
Masalah inti dari celah muncul dalam fungsi doSwapThroughOrionPool. Fungsi ini memanggil fungsi _doSwapTokens, di mana operasi transfer token terjadi sebelum pembaruan curBalance. Penyerang memanfaatkan fungsi callback yang ditambahkan dalam fungsi transfer Token kustom, dengan memanggil kembali fungsi depositAsset sebelum pembaruan curBalance, yang mengakibatkan pembaruan curBalance yang salah. Akhirnya, setelah melunasi pinjaman kilat, penyerang menarik dana dengan memanggil fungsi withdraw untuk menyelesaikan serangan.
Saran Pencegahan
Desain kontrak harus mempertimbangkan risiko potensial yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.
Mengikuti spesifikasi pengkodean "memeriksa terlebih dahulu, kemudian memperbarui variabel, dan terakhir melakukan panggilan eksternal" (pola Checks-Effects-Interactions) dapat secara efektif meningkatkan keamanan kontrak.
Dalam mengimplementasikan fungsi pertukaran token, perlu diperhatikan risiko serangan reentrancy, dapat mempertimbangkan penggunaan mekanisme penguncian reentrancy untuk perlindungan.
Untuk fungsi-fungsi kunci yang melibatkan operasi dana, disarankan untuk melakukan audit keamanan dan pengujian secara menyeluruh, termasuk simulasi berbagai kondisi batas dan skenario luar biasa.
Secara berkala melakukan pemeriksaan keamanan kontrak, serta segera memperbarui dan memperbaiki potensi kerentanan.
Dengan mengambil langkah-langkah ini, risiko serangan terhadap kontrak pintar dapat secara signifikan dikurangi, meningkatkan keselamatan keseluruhan proyek. Dalam ekosistem Web3, keamanan selalu menjadi salah satu pertimbangan terpenting.
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.
8 Suka
Hadiah
8
5
Posting ulang
Bagikan
Komentar
0/400
AirdropBuffet
· 08-12 21:06
Satu lagi smart contract yang gagal~
Lihat AsliBalas0
ZenMiner
· 08-12 21:05
Celah sebesar ini, kenapa tidak mengajak saya untuk audit?
Lihat AsliBalas0
HallucinationGrower
· 08-12 21:00
Sekali lagi kesempatan untuk Rug Pull
Lihat AsliBalas0
TokenStorm
· 08-12 20:57
Aduh, skripnya sudah ditulis, tinggal satu langkah lagi.
OrionProtocol mengalami serangan reentrancy yang mengakibatkan kerugian sebesar 2,9 juta dolar aset enkripsi.
Analisis Peristiwa Serangan Reentrancy OrionProtocol
Pada 2 Februari 2023 sore, Orion Protocol di jaringan Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, dengan kerugian sekitar 2,9 juta dolar AS, yang mencakup 2.844.766 USDT di Ethereum dan 191.606 BUSD di Binance Smart Chain.
Analisis Proses Serangan
Penyerang pertama-tama membuat kontrak Token dan melakukan operasi transfer dan otorisasi yang relevan untuk mempersiapkan serangan selanjutnya. Selanjutnya, penyerang meminjam melalui metode swap UNI-V2 dan memanggil metode swapThroughOrionPool dari kontrak ExchangeWithAtomic untuk menukar token. Jalur penukaran diatur sebagai USDC → Token yang dibuat oleh penyerang → USDT.
Dalam proses pertukaran, karena kontrak Token yang dibuat oleh penyerang mengandung fungsi panggilan balik, menyebabkan saat metode ExchangeWithAtomic.swapThroughOrionPool dieksekusi, melalui Token.Transfer terus memanggil metode ExchangeWithAtomic.depositAsset, yang mengakibatkan serangan reentrancy. Ini menyebabkan jumlah deposit terus bertambah, akhirnya penyerang menyelesaikan keuntungan melalui operasi penarikan.
Arus 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, sementara sisanya telah dipindahkan melalui layanan pencampuran.
Analisis Kerentanan
Masalah inti dari celah muncul dalam fungsi doSwapThroughOrionPool. Fungsi ini memanggil fungsi _doSwapTokens, di mana operasi transfer token terjadi sebelum pembaruan curBalance. Penyerang memanfaatkan fungsi callback yang ditambahkan dalam fungsi transfer Token kustom, dengan memanggil kembali fungsi depositAsset sebelum pembaruan curBalance, yang mengakibatkan pembaruan curBalance yang salah. Akhirnya, setelah melunasi pinjaman kilat, penyerang menarik dana dengan memanggil fungsi withdraw untuk menyelesaikan serangan.
Saran Pencegahan
Desain kontrak harus mempertimbangkan risiko potensial yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.
Mengikuti spesifikasi pengkodean "memeriksa terlebih dahulu, kemudian memperbarui variabel, dan terakhir melakukan panggilan eksternal" (pola Checks-Effects-Interactions) dapat secara efektif meningkatkan keamanan kontrak.
Dalam mengimplementasikan fungsi pertukaran token, perlu diperhatikan risiko serangan reentrancy, dapat mempertimbangkan penggunaan mekanisme penguncian reentrancy untuk perlindungan.
Untuk fungsi-fungsi kunci yang melibatkan operasi dana, disarankan untuk melakukan audit keamanan dan pengujian secara menyeluruh, termasuk simulasi berbagai kondisi batas dan skenario luar biasa.
Secara berkala melakukan pemeriksaan keamanan kontrak, serta segera memperbarui dan memperbaiki potensi kerentanan.
Dengan mengambil langkah-langkah ini, risiko serangan terhadap kontrak pintar dapat secara signifikan dikurangi, meningkatkan keselamatan keseluruhan proyek. Dalam ekosistem Web3, keamanan selalu menjadi salah satu pertimbangan terpenting.