Analisis Insiden Serangan Re-entrance pada OrionProtocol
Pada 2 Februari 2023 sore, proyek OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak. Penyerang mencuri sekitar 2,84 juta USDT dari rantai Ethereum dan sekitar 190 ribu BUSD dari Binance Smart Chain, dengan total kerugian bernilai sekitar 2,9 juta dolar AS.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom, dan melakukan serangkaian persiapan. Setelah itu, penyerang meminjam dana melalui fungsi swap dari DEX tertentu, memanggil metode OrionProtocol ExchangeWithAtomic.swapThroughOrionPool untuk menukar token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.
Dalam proses pertukaran, penyerang memanfaatkan fungsi callback dari kontrak Token kustom untuk memanggil metode ExchangeWithAtomic.depositAsset berulang kali, yang menyebabkan jumlah setoran terakumulasi beberapa kali. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran Dana
Menurut pelacakan, dana awal penyerang berasal dari dompet panas suatu platform perdagangan. Dari 1651 ETH yang dihasilkan dari serangan, sekitar 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran koin.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool dari kontrak ExchangeWithAtomic. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, yang menciptakan peluang untuk serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer dari Token kustom, memanggil fungsi depositAsset berulang kali, yang menyebabkan curBalance diperbarui secara tidak benar.
Penyerang memanfaatkan celah ini untuk berhasil menarik dana berlebih setelah membayar kembali pinjaman kilat.
Reproduksi Serangan
Peneliti menyediakan sebagian kode PoC yang mensimulasikan proses serangan. Kode tersebut mencakup langkah-langkah untuk membuat Token kustom, membangun kolam likuiditas, memberikan otorisasi untuk operasi, dan melaksanakan serangan. Hasil pengujian menunjukkan bahwa serangan berhasil direproduksi, konsisten dengan hasil tumpukan panggilan dari serangan yang sebenarnya.
Saran Keamanan
Dalam desain kontrak, perlu mempertimbangkan potensi risiko keamanan yang dapat ditimbulkan oleh berbagai Token dan jalur pertukaran.
Mengikuti pola pengkodean "Pemeriksaan-Dampak-Interaksi" (Checks-Effects-Interactions), yaitu melakukan pemeriksaan kondisi terlebih dahulu, kemudian memperbarui variabel status, dan terakhir berinteraksi dengan kontrak eksternal.
Saat menangani panggilan eksternal, harus sangat berhati-hati, terutama yang melibatkan operasi transfer dana.
Melakukan audit keamanan secara berkala untuk mendeteksi dan memperbaiki potensi kerentanan tepat waktu.
Melaksanakan kontrol akses dan mekanisme batasan yang wajar untuk mengurangi kerugian yang mungkin disebabkan oleh serangan tunggal.
Kejadian ini mengingatkan kembali kepada tim pengembang proyek Web3 bahwa dalam mengejar inovasi, mereka harus sangat memperhatikan keamanan kontrak pintar. Hanya dengan membangun infrastruktur yang lebih aman dan dapat diandalkan, kita dapat mendorong perkembangan industri secara sehat.
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
8
Bagikan
Komentar
0/400
ShadowStaker
· 07-08 21:29
hari lain, eksploitasi defi lainnya... kapan para pengembang akan belajar untuk memeriksa reentrancy smh
Lihat AsliBalas0
TokenTherapist
· 07-07 15:54
Satu lagi jatuh.
Lihat AsliBalas0
GasWaster
· 07-06 14:26
Sekali lagi dicuri
Lihat AsliBalas0
SigmaBrain
· 07-05 22:13
Ini adalah serangan reentrancy lagi, tampaknya pertahanan sudah jebol.
Lihat AsliBalas0
ponzi_poet
· 07-05 22:13
Keamanan bagaimana? Kemana saja?
Lihat AsliBalas0
GetRichLeek
· 07-05 22:13
Barisan depan makan semangka, audit kontrak tidak bisa dilakukan dengan baik, rugi parah.
Lihat AsliBalas0
BearMarketGardener
· 07-05 22:07
Kontraknya meledak lagi, sigh.
Lihat AsliBalas0
DaoGovernanceOfficer
· 07-05 22:00
*sigh* secara empiris, 99% dari peretasan ini berasal dari kelalaian dasar dalam pengelolaan status...
OrionProtocol mengalami serangan reentrancy dengan kerugian sebesar 2,9 juta dolar, analisis mendalam
Analisis Insiden Serangan Re-entrance pada OrionProtocol
Pada 2 Februari 2023 sore, proyek OrionProtocol di Ethereum dan Binance Smart Chain mengalami serangan reentrancy akibat kerentanan kontrak. Penyerang mencuri sekitar 2,84 juta USDT dari rantai Ethereum dan sekitar 190 ribu BUSD dari Binance Smart Chain, dengan total kerugian bernilai sekitar 2,9 juta dolar AS.
Analisis Proses Serangan
Penyerang pertama-tama menyebarkan kontrak Token kustom, dan melakukan serangkaian persiapan. Setelah itu, penyerang meminjam dana melalui fungsi swap dari DEX tertentu, memanggil metode OrionProtocol ExchangeWithAtomic.swapThroughOrionPool untuk menukar token. Jalur pertukaran mencakup alamat kontrak Token yang dibuat oleh penyerang.
Dalam proses pertukaran, penyerang memanfaatkan fungsi callback dari kontrak Token kustom untuk memanggil metode ExchangeWithAtomic.depositAsset berulang kali, yang menyebabkan jumlah setoran terakumulasi beberapa kali. Akhirnya, penyerang menyelesaikan keuntungan melalui operasi penarikan.
Aliran Dana
Menurut pelacakan, dana awal penyerang berasal dari dompet panas suatu platform perdagangan. Dari 1651 ETH yang dihasilkan dari serangan, sekitar 657,5 ETH masih tersisa di alamat dompet penyerang, sementara sisanya telah dipindahkan melalui layanan pencampuran koin.
Analisis Kerentanan
Masalah inti terletak pada fungsi doSwapThroughOrionPool dari kontrak ExchangeWithAtomic. Fungsi ini memperbarui variabel curBalance setelah melakukan transfer token, yang menciptakan peluang untuk serangan reentrancy. Penyerang menambahkan logika callback dalam fungsi transfer dari Token kustom, memanggil fungsi depositAsset berulang kali, yang menyebabkan curBalance diperbarui secara tidak benar.
Penyerang memanfaatkan celah ini untuk berhasil menarik dana berlebih setelah membayar kembali pinjaman kilat.
Reproduksi Serangan
Peneliti menyediakan sebagian kode PoC yang mensimulasikan proses serangan. Kode tersebut mencakup langkah-langkah untuk membuat Token kustom, membangun kolam likuiditas, memberikan otorisasi untuk operasi, dan melaksanakan serangan. Hasil pengujian menunjukkan bahwa serangan berhasil direproduksi, konsisten dengan hasil tumpukan panggilan dari serangan yang sebenarnya.
Saran Keamanan
Dalam desain kontrak, perlu mempertimbangkan potensi risiko keamanan yang dapat ditimbulkan oleh berbagai Token dan jalur pertukaran.
Mengikuti pola pengkodean "Pemeriksaan-Dampak-Interaksi" (Checks-Effects-Interactions), yaitu melakukan pemeriksaan kondisi terlebih dahulu, kemudian memperbarui variabel status, dan terakhir berinteraksi dengan kontrak eksternal.
Saat menangani panggilan eksternal, harus sangat berhati-hati, terutama yang melibatkan operasi transfer dana.
Melakukan audit keamanan secara berkala untuk mendeteksi dan memperbaiki potensi kerentanan tepat waktu.
Melaksanakan kontrol akses dan mekanisme batasan yang wajar untuk mengurangi kerugian yang mungkin disebabkan oleh serangan tunggal.
Kejadian ini mengingatkan kembali kepada tim pengembang proyek Web3 bahwa dalam mengejar inovasi, mereka harus sangat memperhatikan keamanan kontrak pintar. Hanya dengan membangun infrastruktur yang lebih aman dan dapat diandalkan, kita dapat mendorong perkembangan industri secara sehat.