Analisis Insiden Serangan Re-Entrant pada OrionProtocol
Pada tanggal 2 Februari 2023 sore, Orion Protocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, yang mengakibatkan kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan kerentanan dalam kontrak dengan membuat kontrak Token khusus untuk melakukan operasi callback, sehingga berhasil melakukan serangan reentrancy.
Analisis Proses Serangan
Penyerang pertama-tama membuat kontrak Token khusus, dan melakukan operasi transfer dan otorisasi terkait. Selanjutnya, penyerang meminjam melalui metode swap di DEX tertentu, dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Selama proses penukaran, penyerang memanfaatkan kontrak Token yang mereka buat untuk melakukan callback, memanggil metode depositAsset secara berulang, yang menyebabkan jumlah deposit terakumulasi. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Arus Dana
Modal awal penyerang berasal dari akun dompet panas di suatu platform perdagangan. Dari 1651 ETH yang diperoleh, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui alat pencampuran koin.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, tetapi tidak mempertimbangkan risiko serangan reentrancy yang mungkin ada. Penyerang dapat menambahkan logika callback dalam fungsi transfer token kustom, yang menyebabkan curBalance diperbarui secara salah, sehingga memungkinkan terjadinya serangan.
Reproduksi Serangan
Para peneliti telah menyediakan sebagian kode POC yang mensimulasikan proses serangan. Hasil pengujian menunjukkan bahwa dengan memanfaatkan celah dalam kontrak, mereka berhasil mereplikasi aliran dana yang mirip dengan serangan yang sebenarnya.
Saran Keamanan
Dalam pengembangan kontrak, harus mempertimbangkan risiko potensial yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran.
Mematuhi standar pengkodean "Cek-Dampak-Interaksi" (Checks-Effects-Interactions), lakukan penilaian terlebih dahulu, kemudian perbarui variabel status, dan terakhir lakukan panggilan eksternal.
Perkuat langkah-langkah perlindungan terhadap serangan reentrancy, seperti menggunakan kunci reentrancy dan metode lainnya.
Melakukan audit keamanan yang menyeluruh, dengan perhatian khusus pada fungsi-fungsi yang mungkin dapat dimanfaatkan untuk serangan reentrancy.
Secara berkala memperbarui dan mengoptimalkan kode kontrak, serta segera memperbaiki celah yang ditemukan.
Kejadian ini sekali lagi mengingatkan pihak proyek Web3 untuk sangat memperhatikan keamanan kontrak pintar. Pengembang kontrak harus lebih berhati-hati dalam menangani logika yang melibatkan transfer dana, dan mempertimbangkan berbagai kemungkinan skenario serangan. Selain itu, melakukan audit keamanan secara berkala dan program bug bounty juga merupakan cara efektif untuk menjaga keamanan proyek.
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.
18 Suka
Hadiah
18
7
Bagikan
Komentar
0/400
MevTears
· 07-23 02:41
Bodoh! Sekali lagi tentang reentrancy yang sudah basi
Lihat AsliBalas0
MetaMisery
· 07-21 02:18
Sudah datang lagi untuk dianggap bodoh, menyedihkan
Lihat AsliBalas0
RetailTherapist
· 07-20 20:40
还有 siapa terjebak
Lihat AsliBalas0
PositionPhobia
· 07-20 03:55
Sekali lagi kontrak pintar mengalami kegagalan.
Lihat AsliBalas0
CryptoTherapist
· 07-20 03:55
mari kita lakukan beberapa pernapasan sadar sebelum kita membahas trauma masuk kembali ini
Lihat AsliBalas0
RektCoaster
· 07-20 03:45
Skema rekurisi masuk ulang klasik, sudah sering dibahas.
OrionProtocol mengalami serangan reentrancy dengan kerugian 2,9 juta dolar AS. Analisis kerentanan keamanan dan saran pencegahan.
Analisis Insiden Serangan Re-Entrant pada OrionProtocol
Pada tanggal 2 Februari 2023 sore, Orion Protocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak, yang mengakibatkan kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan kerentanan dalam kontrak dengan membuat kontrak Token khusus untuk melakukan operasi callback, sehingga berhasil melakukan serangan reentrancy.
Analisis Proses Serangan
Penyerang pertama-tama membuat kontrak Token khusus, dan melakukan operasi transfer dan otorisasi terkait. Selanjutnya, penyerang meminjam melalui metode swap di DEX tertentu, dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Selama proses penukaran, penyerang memanfaatkan kontrak Token yang mereka buat untuk melakukan callback, memanggil metode depositAsset secara berulang, yang menyebabkan jumlah deposit terakumulasi. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Arus Dana
Modal awal penyerang berasal dari akun dompet panas di suatu platform perdagangan. Dari 1651 ETH yang diperoleh, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui alat pencampuran koin.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, tetapi tidak mempertimbangkan risiko serangan reentrancy yang mungkin ada. Penyerang dapat menambahkan logika callback dalam fungsi transfer token kustom, yang menyebabkan curBalance diperbarui secara salah, sehingga memungkinkan terjadinya serangan.
Reproduksi Serangan
Para peneliti telah menyediakan sebagian kode POC yang mensimulasikan proses serangan. Hasil pengujian menunjukkan bahwa dengan memanfaatkan celah dalam kontrak, mereka berhasil mereplikasi aliran dana yang mirip dengan serangan yang sebenarnya.
Saran Keamanan
Kejadian ini sekali lagi mengingatkan pihak proyek Web3 untuk sangat memperhatikan keamanan kontrak pintar. Pengembang kontrak harus lebih berhati-hati dalam menangani logika yang melibatkan transfer dana, dan mempertimbangkan berbagai kemungkinan skenario serangan. Selain itu, melakukan audit keamanan secara berkala dan program bug bounty juga merupakan cara efektif untuk menjaga keamanan proyek.