OrionProtocol mengalami serangan reentrancy yang menyebabkan kerugian sebesar 2,9 juta dolar
Pada 2 Februari 2023, OrionProtocol mengalami serangan reentrancy akibat kerentanan kontrak di Ethereum dan Binance Smart Chain, dengan total kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan kontrak Token yang mereka ciptakan untuk melakukan callback, berhasil melewati mekanisme keamanan kontrak.
Analisis Proses Serangan
Penyerang pertama-tama membuat kontrak Token kustom dan melakukan serangkaian persiapan. Kemudian, penyerang meminjam melalui metode swap dari DEX tertentu dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Jalur penukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.
Dalam proses pertukaran, penyerang memanfaatkan metode transfer Token yang mereka buat untuk memicu callback, kemudian memanggil metode depositAsset dari OrionProtocol sekali lagi. Ini menyebabkan jumlah setoran dihitung ulang, sehingga penyerang dapat menarik dana melebihi jumlah yang sebenarnya disetorkan.
Aliran Dana
Modal awal penyerang berasal dari dompet panas di suatu platform perdagangan. Dari 1651 ETH yang diperoleh dari serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran.
Analisis Kerentanan
Inti dari kerentanan terletak pada fungsi doSwapThroughOrionPool dan _doSwapTokens. Kontrak hanya memperbarui variabel curBalance setelah melakukan operasi transfer, yang memberi kesempatan kepada penyerang untuk memanfaatkan serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, yang menyebabkan curBalance diperbarui secara salah, akhirnya memungkinkan penarikan berlebih.
Reproduksi Serangan
Para peneliti telah menyediakan sebagian kode POC, yang menunjukkan bagaimana memanfaatkan kerentanan tersebut untuk melakukan serangan. Hasil pengujian konsisten dengan tumpukan panggilan serangan yang sebenarnya, mengkonfirmasi adanya dan dapat dimanfaatkannya kerentanan tersebut.
Saran Keamanan
Untuk kontrak pintar yang memiliki fungsi pertukaran token, pengembang perlu mempertimbangkan berbagai risiko keamanan yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran. Disarankan untuk mengikuti norma pengkodean "periksa terlebih dahulu, kemudian tulis variabel, lalu lakukan panggilan eksternal" (model Checks-Effects-Interactions), untuk meningkatkan keamanan dan stabilitas kontrak.
Kejadian ini sekali lagi menekankan pentingnya memperhatikan keamanan dalam pengembangan kontrak pintar, terutama saat menangani aliran dana. Pihak proyek harus memperkuat audit kode dan mempertimbangkan untuk melibatkan tim keamanan blockchain profesional untuk melakukan evaluasi menyeluruh guna meminimalkan risiko potensial.
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.
10 Suka
Hadiah
10
3
Posting ulang
Bagikan
Komentar
0/400
ZeroRushCaptain
· 4jam yang lalu
Kartu penarikan lain membuatku belajar tentang mundur di medan perang
Lihat AsliBalas0
AirdropChaser
· 4jam yang lalu
Datang lagi satu?
Lihat AsliBalas0
ForkLibertarian
· 4jam yang lalu
Jika dicabut, ya memang seharusnya, siapa suruh tampil begitu angkuh.
OrionProtocol mengalami serangan reentrancy dengan kerugian sebesar 2,9 juta dolar AS
OrionProtocol mengalami serangan reentrancy yang menyebabkan kerugian sebesar 2,9 juta dolar
Pada 2 Februari 2023, OrionProtocol mengalami serangan reentrancy akibat kerentanan kontrak di Ethereum dan Binance Smart Chain, dengan total kerugian sekitar 2,9 juta dolar AS. Penyerang memanfaatkan kontrak Token yang mereka ciptakan untuk melakukan callback, berhasil melewati mekanisme keamanan kontrak.
Analisis Proses Serangan
Penyerang pertama-tama membuat kontrak Token kustom dan melakukan serangkaian persiapan. Kemudian, penyerang meminjam melalui metode swap dari DEX tertentu dan memanggil metode swapThroughOrionPool dari OrionProtocol untuk menukar token. Jalur penukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.
Dalam proses pertukaran, penyerang memanfaatkan metode transfer Token yang mereka buat untuk memicu callback, kemudian memanggil metode depositAsset dari OrionProtocol sekali lagi. Ini menyebabkan jumlah setoran dihitung ulang, sehingga penyerang dapat menarik dana melebihi jumlah yang sebenarnya disetorkan.
Aliran Dana
Modal awal penyerang berasal dari dompet panas di suatu platform perdagangan. Dari 1651 ETH yang diperoleh dari serangan, 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran.
Analisis Kerentanan
Inti dari kerentanan terletak pada fungsi doSwapThroughOrionPool dan _doSwapTokens. Kontrak hanya memperbarui variabel curBalance setelah melakukan operasi transfer, yang memberi kesempatan kepada penyerang untuk memanfaatkan serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer Token kustom, yang menyebabkan curBalance diperbarui secara salah, akhirnya memungkinkan penarikan berlebih.
Reproduksi Serangan
Para peneliti telah menyediakan sebagian kode POC, yang menunjukkan bagaimana memanfaatkan kerentanan tersebut untuk melakukan serangan. Hasil pengujian konsisten dengan tumpukan panggilan serangan yang sebenarnya, mengkonfirmasi adanya dan dapat dimanfaatkannya kerentanan tersebut.
Saran Keamanan
Untuk kontrak pintar yang memiliki fungsi pertukaran token, pengembang perlu mempertimbangkan berbagai risiko keamanan yang mungkin ditimbulkan oleh berbagai Token dan jalur pertukaran. Disarankan untuk mengikuti norma pengkodean "periksa terlebih dahulu, kemudian tulis variabel, lalu lakukan panggilan eksternal" (model Checks-Effects-Interactions), untuk meningkatkan keamanan dan stabilitas kontrak.
Kejadian ini sekali lagi menekankan pentingnya memperhatikan keamanan dalam pengembangan kontrak pintar, terutama saat menangani aliran dana. Pihak proyek harus memperkuat audit kode dan mempertimbangkan untuk melibatkan tim keamanan blockchain profesional untuk melakukan evaluasi menyeluruh guna meminimalkan risiko potensial.